From 5f8330f4a611ca17e100068c95ab8d35173ca14f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Freitag?= Date: Mon, 2 Nov 2020 11:45:04 +0100 Subject: [PATCH] Define test factories strategy in FactoryOptions Instead of assigning to Factory._meta.strategy. Keeps overrides focused on a single class and remove need to save and restore global default strategy. --- tests/test_base.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/tests/test_base.py b/tests/test_base.py index 4759bd1e..0b9ffa15 100644 --- a/tests/test_base.py +++ b/tests/test_base.py @@ -362,18 +362,11 @@ class SubTestObjectFactory(self.TestObjectFactory): class FactoryDefaultStrategyTestCase(unittest.TestCase): - def setUp(self): - self.default_strategy = base.Factory._meta.strategy - - def tearDown(self): - base.Factory._meta.strategy = self.default_strategy - def test_build_strategy(self): - base.Factory._meta.strategy = enums.BUILD_STRATEGY - class TestModelFactory(base.Factory): class Meta: model = TestModel + strategy = enums.BUILD_STRATEGY one = 'one' @@ -395,11 +388,10 @@ class Meta: self.assertTrue(test_model.id) def test_stub_strategy(self): - base.Factory._meta.strategy = enums.STUB_STRATEGY - class TestModelFactory(base.Factory): class Meta: model = TestModel + strategy = enums.STUB_STRATEGY one = 'one' @@ -408,11 +400,10 @@ class Meta: self.assertFalse(hasattr(test_model, 'id')) # We should have a plain old object def test_unknown_strategy(self): - base.Factory._meta.strategy = 'unknown' - class TestModelFactory(base.Factory): class Meta: model = TestModel + strategy = 'unknown' one = 'one' @@ -423,11 +414,10 @@ def test_stub_with_create_strategy(self): class TestModelFactory(base.StubFactory): class Meta: model = TestModel + strategy = enums.CREATE_STRATEGY one = 'one' - TestModelFactory._meta.strategy = enums.CREATE_STRATEGY - with self.assertRaises(base.StubFactory.UnsupportedStrategy): TestModelFactory() @@ -435,20 +425,20 @@ def test_stub_with_build_strategy(self): class TestModelFactory(base.StubFactory): class Meta: model = TestModel + strategy = enums.BUILD_STRATEGY one = 'one' - TestModelFactory._meta.strategy = enums.BUILD_STRATEGY obj = TestModelFactory() # For stubs, build() is an alias of stub(). self.assertFalse(isinstance(obj, TestModel)) def test_change_strategy(self): - @base.use_strategy(enums.CREATE_STRATEGY) class TestModelFactory(base.StubFactory): class Meta: model = TestModel + strategy = enums.CREATE_STRATEGY one = 'one'