summaryrefslogtreecommitdiff
path: root/factory
Commit message (Expand)AuthorAge
* optional forced flush on SQLAlchemyModelFactory•••fixes rbarrois/factory_boy#81 Alejandro2016-01-07
* mogo: Stop using .new, continued.•••From dc7d02095fff, spotted by @federicobond too. See #219. Raphaël Barrois2015-10-21
* Release v2.6.0v2.6.0Raphaël Barrois2015-10-20
* mogo: Stop using deprecated .new (Closes #219)•••This method has been deprecated in `mogo.model.Model` since 2012. Thanks to @federicobond for spotting this! Raphaël Barrois2015-10-20
* Lazy load django's get_model (Closes #228).•••Loading this function will, on pre-1.8 versions, load Django settings. We'll lazy-load it to avoid crashes when Django hasn't been configured yet (e.g in auto-discovery test setups). Raphaël Barrois2015-10-20
* add a way to add custom providers to Faker•••factory_boy wraps faker and it stores Faker generators in a 'private' _FAKER_REGISTRY class attribute dict. There needs to be a way to extend the Faker generators with additional custom providers (without having to access _FAKER_REGISTRY directly). This commit adds a (factory_boy) Faker.add_provider class method which calls Faker's own `add_provider` method on internally stored (via _FAKER_REGISTRY) Faker generators. Ionuț Arțăriși2015-10-20
* Improve debug logging efficiency (Closes #155).•••As suggested by @adamchainz, use lazy computation of args/kwargs pprint to only perform complex computation when running with debug. Raphaël Barrois2015-07-11
* Improve @coagulant's fixes to django signals (Closes #212).•••Signal caching didn't exist until Django 1.6. Raphaël Barrois2015-07-05
* Fix mute_signals behavior for signals with caching•••Connecting signals (with use_caching=True) inside mute_signals was breaking unmute on exit. Paused receivers were not running. This was caused by signal cache not being restored after unpatching. Workaround is to clear signal cache on exit. Fixes #212 Ilya Baryshev2015-07-05
* Improve ORM layer import paths (Closes #186).•••You may now use the following code: import factory factory.alchemy.SQLAlchemyModelFactory factory.django.DjangoModelFactory factory.mongoengine.MongoEngineFactory Raphaël Barrois2015-05-31
* Properly handle custom Django managers (Closes #201).•••The actual behavior of Django with custom managers and inherited abstract models is rather complex, so this had to be adapted to the actual Django source code. Raphaël Barrois2015-05-31
* Add lazy loading to factory.Iterator.•••factory.Iterator no longers begins iteration of its argument on declaration, since this behavior may trigger database query when that argument is, for instance, a Django queryset. The ``factory.Iterator``'s argument will only be called when the containing ``Factory`` is first evaluated; this means that factories using ``factory.Iterator(models.MyThingy.objects.all())`` will no longer call the database at import time. Raphaël Barrois2015-05-24
* Add factory.Faker()•••This relies on the ``fake-factory`` library, and provides realistic random values for most field types. Raphaël Barrois2015-05-22
* Add Meta.rename to handle name conflicts (See #206).•••Define ``Meta.rename = {'attrs': 'attributes'}`` if your model expects a ``attributes`` kwarg but you can't define it since it's already reserved by the ``Factory`` class. Raphaël Barrois2015-05-20
* Release v2.5.2v2.5.2Raphaël Barrois2015-04-21
* Remove warnings with Django 1.7 (Closes #195).•••Builds upon pull request by @shinuza: - Properly import ``get_model`` - Run ``django.setup()`` before importing any models. Raphaël Barrois2015-04-14
* Release v2.5.1v2.5.1Raphaël Barrois2015-03-27
* Support declarations in FileField/ImageField.•••Previously, the declarations (``factory.Sequence`` & co) weren't properly computed. Raphaël Barrois2015-03-27
* Respect default manager in DjangoModelFactory (Closes #192).•••The previous version tries to use ``cls._default_manager`` all the time, which breaks with ``manager.using(db_name)``. Raphaël Barrois2015-03-27
* Remove debug printsRaphaël Barrois2015-03-27
* Update header years.Raphaël Barrois2015-03-26
* Release v2.5.0v2.5.0Raphaël Barrois2015-03-26
* Turn FileField/ImageField into normal fields (Closes #141).•••Previously, they ran as post_generation hooks, meaning that they couldn't be checked in a model's ``save()`` method, for instance. Raphaël Barrois2015-03-26
* Remove limitations of factory.StubFactory (Closes #131).•••``StubFactory.build()`` is now supported, and maps to ``StubFactory.stub()``. Raphaël Barrois2015-03-26
* Add support for multidb with Django (Closes #171).•••The ``factory.django.DjangoModelFactory`` now takes an extra option: ``` class MyFactory(factory.django.DjangoModelFactory): class Meta: model = models.MyModel database = 'replica' ``` This will create all instances of ``models.Model`` in the ``'replica'`` database. Raphaël Barrois2015-03-26
* Fix issues between mute_signals() and factory inheritance (Closes #183).•••Previously, if a factory was decorated with ``@mute_signals`` and one of its descendant called another one of its descendant, signals weren't unmuted properly. Raphaël Barrois2015-03-26
* Allow lazy evaluation of FuzzyChoice's iterators (Closes #184).•••This allows the following idiom: ``user = factory.fuzzy.FuzzyChoice(User.objects.all())`` Previously, the ``User.objects.all()`` queryset would have been evaluated *at import time*; it is now evaluated with the first use of the ``FuzzyChoice``. Raphaël Barrois2015-03-26
* Fix typo in FuzzyDateTime (Closes #189).•••Thanks to @shinuza for spotting this! Raphaël Barrois2015-03-26
* Logs: Allow non-integer sequences (Closes #148).•••As pointed by @glinmac. Raphaël Barrois2015-03-03
* Fix bad default value for Factory.declarations (Closes #162).Raphaël Barrois2015-03-03
* Enable resetting factory.fuzzy's random generator (Closes #175, #185).•••Users may now call ``factory.fuzzy.get_random_state()`` to retrieve the current random generator's state (isolated from the one used in Python's ``random``). That state can then be reinjected with ``factory.fuzzy.set_random_state(state)``. Raphaël Barrois2015-02-18
* Remove deprecated features.•••This disables the ``FACTORY_FOR`` syntax and related parameters, that should be declared through ``class Meta``. Raphaël Barrois2014-11-18
* Remove automagic pk-based sequence setup•••Related to issues #78, #92, #103, #111, #153, #170 The default value of all sequences is now 0; the automagic ``_setup_next_sequence`` behavior of Django/SQLAlchemy has been removed. This feature's only goal was to allow the following scenario: 1. Run a Python script that uses MyFactory.create() a couple of times (with a unique field based on the sequence counter) 2. Run the same Python script a second time Without the magical ``_setup_next_sequence``, the Sequence counter would be set to 0 at the beginning of each script run, so both runs would generate objects with the same values for the unique field ; thus conflicting and crashing. The above behavior having only a very limited use and bringing various issues (hitting the database on ``build()``, problems with non-integer or composite primary key columns, ...), it has been removed. It could still be emulated through custom ``_setup_next_sequence`` methods, or by calling ``MyFactory.reset_sequence()``. Raphaël Barrois2014-11-16
* Release v2.4.1v2.4.12.4.1Raphaël Barrois2014-06-23
* Fix declaration inheritance.Raphaël Barrois2014-06-23
* Release v2.4.0v2.4.0Raphaël Barrois2014-06-21
* Provide readable errors when Meta.model isn't set (Closes #137).Raphaël Barrois2014-06-21
* Rename hidden/arg_parameters to exclude/inline_args.Raphaël Barrois2014-05-18
* Rename 'target' to 'model'.Raphaël Barrois2014-05-18
* Add DeprecationWarning for FACTORY_* kwargsRaphaël Barrois2014-05-18
* Remove containers.DeclarationsDict.•••Now replaced with a simple dict. Raphaël Barrois2014-05-18
* Switch tests to class Meta.Raphaël Barrois2014-05-18
* Migrate factory.alchemy to class MetaRaphaël Barrois2014-05-18
* factory.django: Fix counter inheritance with abstract models.Raphaël Barrois2014-05-18
* Switch FACTORY_FOR and related to 'class Meta'.•••This is easier to declare, avoids cluttering the namespace, and provides entry points for ORM-specific customization. Signed-off-by: Raphaël Barrois <raphael.barrois@polytechnique.org> Raphaël Barrois2014-05-18
* Merge branch 'maint/2.3.x'Raphaël Barrois2014-01-22
|\
| * Release v2.3.1v2.3.12.3.1Raphaël Barrois2014-01-22
| * Fix log_pprint for *args (Closes #127).Raphaël Barrois2014-01-22
| * Fix log_pprint (Closes #123).Raphaël Barrois2014-01-22
* | fuzzy: Add FuzzyFloat (Closes #124).•••As suggested by @savingschampion Raphaël Barrois2014-01-22