From 1a0de8a67df8282c42f71014cc871684e8d7c0cf Mon Sep 17 00:00:00 2001 From: Chuck Short Date: Wed, 10 Jul 2013 10:47:58 -0400 Subject: [PATCH] Add python3 support Signed-off-by: Chuck Short --- requirements.txt | 1 + test/test_core.py | 10 ++++++---- tox.ini | 2 +- warlock/core.py | 2 +- warlock/model.py | 7 ++++--- 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()