Beispiel #1
0
    def test_lazyness(self):
        f = declarations.RelatedFactory('factory.declarations.Sequence', x=3)
        self.assertEqual(None, f.factory)

        self.assertEqual({'x': 3}, f.defaults)

        factory_class = f.get_factory()
        self.assertEqual(declarations.Sequence, factory_class)
        class Ordered(base.Factory):
            class Meta:
                model = mock.MagicMock()

            a = declarations.RelatedFactory(Related)
            z = declarations.RelatedFactory(Related)

            @helpers.post_generation
            def a1(*args, **kwargs):
                postgen_results.append('a1')

            @helpers.post_generation
            def zz(*args, **kwargs):
                postgen_results.append('zz')

            @helpers.post_generation
            def aa(*args, **kwargs):
                postgen_results.append('aa')
    def test_deprecate_name(self):
        with warnings.catch_warnings(record=True) as w:

            warnings.simplefilter('always')
            f = declarations.RelatedFactory('datetime.date', name='blah')

            self.assertEqual('blah', f.name)
            self.assertEqual(1, len(w))
            self.assertIn('RelatedFactory', str(w[0].message))
            self.assertIn('factory_related_name', str(w[0].message))
Beispiel #4
0
    def test_cache(self):
        """Ensure that RelatedFactory tries to import only once."""
        orig_date = datetime.date
        f = declarations.RelatedFactory('datetime.date')
        self.assertEqual(None, f.factory)

        factory_class = f.get_factory()
        self.assertEqual(orig_date, factory_class)

        try:
            # Modify original value
            datetime.date = None
            # Repeat import
            factory_class = f.get_factory()
            self.assertEqual(orig_date, factory_class)

        finally:
            # IMPORTANT: restore attribute.
            datetime.date = orig_date