summaryrefslogtreecommitdiff
path: root/tests/test_using.py
diff options
context:
space:
mode:
authorRaphaël Barrois <raphael.barrois@polytechnique.org>2012-11-14 23:42:46 +0100
committerRaphaël Barrois <raphael.barrois@polytechnique.org>2012-11-15 00:03:37 +0100
commit5ec4a50edc67073e54218549d6985f934f94b88f (patch)
tree4a68d1367731a29e198090715cfe1cf7b039bba9 /tests/test_using.py
parenta19f64cbfadc0e36b2ff9812980e23955276632c (diff)
downloadfactory-boy-5ec4a50edc67073e54218549d6985f934f94b88f.tar
factory-boy-5ec4a50edc67073e54218549d6985f934f94b88f.tar.gz
Add an extension point for kwargs mangling.
Signed-off-by: Raphaël Barrois <raphael.barrois@polytechnique.org>
Diffstat (limited to 'tests/test_using.py')
-rw-r--r--tests/test_using.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/test_using.py b/tests/test_using.py
index 38c9e9e..f489f28 100644
--- a/tests/test_using.py
+++ b/tests/test_using.py
@@ -741,6 +741,28 @@ class NonKwargParametersTestCase(unittest.TestCase):
self.assertEqual({'three': 3}, obj.kwargs)
+class KwargAdjustTestCase(unittest.TestCase):
+ """Tests for the _adjust_kwargs method."""
+
+ def test_build(self):
+ class TestObject(object):
+ def __init__(self, *args, **kwargs):
+ self.args = args
+ self.kwargs = kwargs
+
+ class TestObjectFactory(factory.Factory):
+ FACTORY_FOR = TestObject
+
+ @classmethod
+ def _adjust_kwargs(cls, **kwargs):
+ kwargs['foo'] = len(kwargs)
+ return kwargs
+
+ obj = TestObjectFactory.build(x=1, y=2, z=3)
+ self.assertEqual({'x': 1, 'y': 2, 'z': 3, 'foo': 3}, obj.kwargs)
+ self.assertEqual((), obj.args)
+
+
class SubFactoryTestCase(unittest.TestCase):
def testSubFactory(self):
class TestModel2(FakeModel):