From 6efa57cf38f945c55214a94e0e7c12cc7eff474f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Barrois?= Date: Thu, 16 Aug 2012 20:28:21 +0200 Subject: Refactor building_function/creation_function handling. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Rely on inheritance instead of handwritten set_creation_function and such. Signed-off-by: Raphaƫl Barrois --- tests/test_base.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'tests/test_base.py') diff --git a/tests/test_base.py b/tests/test_base.py index 5cbb31b..7ec3d0e 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -35,19 +35,25 @@ class TestObject(object): self.four = four class FakeDjangoModel(object): - class FakeDjangoManager(object): - def create(self, **kwargs): - fake_model = FakeDjangoModel(**kwargs) - fake_model.id = 1 - return fake_model - - objects = FakeDjangoManager() + @classmethod + def create(cls, **kwargs): + instance = cls(**kwargs) + instance.id = 1 + return instance def __init__(self, **kwargs): for name, value in kwargs.iteritems(): setattr(self, name, value) self.id = None +class FakeModelFactory(base.Factory): + ABSTRACT_FACTORY = True + + @classmethod + def _create(cls, target_class, *args, **kwargs): + return target_class.create(**kwargs) + + class TestModel(FakeDjangoModel): pass @@ -114,7 +120,7 @@ class FactoryDefaultStrategyTestCase(unittest.TestCase): def testCreateStrategy(self): # Default default_strategy - class TestModelFactory(base.Factory): + class TestModelFactory(FakeModelFactory): FACTORY_FOR = TestModel one = 'one' @@ -215,7 +221,7 @@ class FactoryCreationTestCase(unittest.TestCase): self.assertEqual(TestFactory.default_strategy, base.STUB_STRATEGY) def testCustomCreation(self): - class TestModelFactory(base.Factory): + class TestModelFactory(FakeModelFactory): FACTORY_FOR = TestModel @classmethod -- cgit v1.2.3