summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChuck Short <chuck.short@canonical.com>2013-07-10 10:47:58 -0400
committerBrian Waldon <bcwaldon@gmail.com>2013-07-23 07:10:27 -0700
commit1a0de8a67df8282c42f71014cc871684e8d7c0cf (patch)
treeacfe48131d2a62c10e48da88af90553d76dd7734
parent460080eb27fd8598c6b00f0df70e597058152323 (diff)
downloadwarlock-1a0de8a67df8282c42f71014cc871684e8d7c0cf.tar.gz
Add python3 supportbaserock/morph
Signed-off-by: Chuck Short <chuck.short@canonical.com>
-rw-r--r--requirements.txt1
-rw-r--r--test/test_core.py10
-rw-r--r--tox.ini2
-rw-r--r--warlock/core.py2
-rw-r--r--warlock/model.py7
5 files changed, 13 insertions, 9 deletions
diff --git a/requirements.txt b/requirements.txt
index ab39211..e499923 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
jsonschema>=0.7,<3
jsonpatch>=0.10,<2
+six
diff --git a/test/test_core.py b/test/test_core.py
index d146b4f..6b3be39 100644
--- a/test/test_core.py
+++ b/test/test_core.py
@@ -15,6 +15,8 @@
import copy
import unittest
+import six
+
import warlock
@@ -44,7 +46,7 @@ class TestCore(unittest.TestCase):
def test_class_name_from_unicode_schema_name(self):
fixture_copy = copy.deepcopy(fixture)
- fixture_copy['name'] = unicode(fixture_copy['name'])
+ fixture_copy['name'] = six.text_type(fixture_copy['name'])
# Can't set class.__name__ to a unicode object, ensure warlock
# does some magic to make it possible
warlock.model_factory(fixture_copy)
@@ -81,7 +83,7 @@ class TestCore(unittest.TestCase):
def test_items(self):
Country = warlock.model_factory(fixture)
sweden = Country(name='Sweden', population=9379116)
- self.assertEqual(set(list(sweden.iteritems())),
+ self.assertEqual(set(list(six.iteritems(sweden))),
set([('name', 'Sweden'), ('population', 9379116)]))
self.assertEqual(set(sweden.items()),
set([('name', 'Sweden'), ('population', 9379116)]))
@@ -104,7 +106,7 @@ class TestCore(unittest.TestCase):
mike_1['sub']['foo'] = 'james'
self.assertEquals(mike.sub['foo'], 'mike')
- mike_2 = dict(mike.iteritems())
+ mike_2 = dict(six.iteritems(mike))
mike_2['sub']['foo'] = 'james'
self.assertEquals(mike.sub['foo'], 'mike')
@@ -112,7 +114,7 @@ class TestCore(unittest.TestCase):
mike_2['sub']['foo'] = 'james'
self.assertEquals(mike.sub['foo'], 'mike')
- mike_3_sub = list(mike.itervalues())[0]
+ mike_3_sub = list(six.itervalues(mike))[0]
mike_3_sub['foo'] = 'james'
self.assertEquals(mike.sub['foo'], 'mike')
diff --git a/tox.ini b/tox.ini
index 5a48c46..7cf3514 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py26,py27,pep8
+envlist = py26,py27,py33,pep8
[testenv]
deps=pytest
diff --git a/warlock/core.py b/warlock/core.py
index 349c681..fa996d2 100644
--- a/warlock/core.py
+++ b/warlock/core.py
@@ -16,7 +16,7 @@
import copy
-import model
+from . import model
def model_factory(schema, base_class=model.Model):
diff --git a/warlock/model.py b/warlock/model.py
index 9ce1a01..1bc3f76 100644
--- a/warlock/model.py
+++ b/warlock/model.py
@@ -19,8 +19,9 @@ import warnings
import jsonpatch
import jsonschema
+import six
-import exceptions
+from . import exceptions
class Model(dict):
@@ -98,13 +99,13 @@ class Model(dict):
dict.update(self, other)
def iteritems(self):
- return copy.deepcopy(dict(self)).iteritems()
+ return six.iteritems(copy.deepcopy(dict(self)))
def items(self):
return copy.deepcopy(dict(self)).items()
def itervalues(self):
- return copy.deepcopy(dict(self)).itervalues()
+ return six.itervalues(copy.deepcopy(dict(self)))
def values(self):
return copy.deepcopy(dict(self)).values()