summaryrefslogtreecommitdiff
path: root/docs/changelog.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/changelog.rst')
-rw-r--r--docs/changelog.rst247
1 files changed, 247 insertions, 0 deletions
diff --git a/docs/changelog.rst b/docs/changelog.rst
new file mode 100644
index 0000000..173c40f
--- /dev/null
+++ b/docs/changelog.rst
@@ -0,0 +1,247 @@
+ChangeLog
+=========
+
+2.0.2 (2013-04-16)
+------------------
+
+*New:*
+
+ - When :attr:`~factory.DjangoModelFactory.FACTORY_DJANGO_GET_OR_CREATE` is
+ empty, use ``Model.objects.create()`` instead of ``Model.objects.get_or_create``.
+
+
+2.0.1 (2013-04-16)
+------------------
+
+*New:*
+
+ - Don't push ``defaults`` to ``get_or_create`` when
+ :attr:`~factory.DjangoModelFactory.FACTORY_DJANGO_GET_OR_CREATE` is not set.
+
+
+2.0.0 (2013-04-15)
+------------------
+
+*New:*
+
+ - Allow overriding the base factory class for :func:`~factory.make_factory` and friends.
+ - Add support for Python3 (Thanks to `kmike <https://github.com/kmike>`_ and `nkryptic <https://github.com/nkryptic>`_)
+ - The default :attr:`~factory.Sequence.type` for :class:`~factory.Sequence` is now :obj:`int`
+ - Fields listed in :attr:`~factory.Factory.FACTORY_HIDDEN_ARGS` won't be passed to
+ the associated class' constructor
+ - Add support for ``get_or_create`` in :class:`~factory.DjangoModelFactory`,
+ through :attr:`~factory.DjangoModelFactory.FACTORY_DJANGO_GET_OR_CREATE`.
+ - Add support for :mod:`~factory.fuzzy` attribute definitions.
+ - The :class:`Sequence` counter can be overridden when calling a generating function
+ - Add :class:`~factory.Dict` and :class:`~factory.List` declarations (Closes #18).
+
+*Removed:*
+
+ - Remove associated class discovery
+ - Remove :class:`~factory.InfiniteIterator` and :func:`~factory.infinite_iterator`
+ - Remove :class:`~factory.CircularSubFactory`
+ - Remove ``extract_prefix`` kwarg to post-generation hooks.
+ - Stop defaulting to Django's ``Foo.objects.create()`` when "creating" instances
+ - Remove STRATEGY_*
+ - Remove :meth:`~factory.Factory.set_building_function` / :meth:`~factory.Factory.set_creation_function`
+
+
+1.3.0 (2013-03-11)
+------------------
+
+.. warning:: This version deprecates many magic or unexplicit features that will be
+ removed in v2.0.0.
+
+ Please read the :ref:`changelog-1-3-0-upgrading` section, then run your
+ tests with ``python -W default`` to see all remaining warnings.
+
+New
+"""
+
+- **Global:**
+ - Rewrite the whole documentation
+ - Provide a dedicated :class:`~factory.MogoFactory` subclass of :class:`~factory.Factory`
+
+- **The Factory class:**
+ - Better creation/building customization hooks at :meth:`factory.Factory._build` and :meth:`factory.Factory.create`
+ - Add support for passing non-kwarg parameters to a :class:`~factory.Factory`
+ wrapped class through :attr:`~factory.Factory.FACTORY_ARG_PARAMETERS`.
+ - Keep the :attr:`~factory.Factory.FACTORY_FOR` attribute in :class:`~factory.Factory` classes
+
+- **Declarations:**
+ - Allow :class:`~factory.SubFactory` to solve circular dependencies between factories
+ - Enhance :class:`~factory.SelfAttribute` to handle "container" attribute fetching
+ - Add a :attr:`~factory.Iterator.getter` to :class:`~factory.Iterator`
+ declarations
+ - A :class:`~factory.Iterator` may be prevented from cycling by setting
+ its :attr:`~factory.Iterator.cycle` argument to ``False``
+ - Allow overriding default arguments in a :class:`~factory.PostGenerationMethodCall`
+ when generating an instance of the factory
+ - An object created by a :class:`~factory.DjangoModelFactory` will be saved
+ again after :class:`~factory.PostGeneration` hooks execution
+
+
+Pending deprecation
+"""""""""""""""""""
+
+The following features have been deprecated and will be removed in an upcoming release.
+
+- **Declarations:**
+ - :class:`~factory.InfiniteIterator` is deprecated in favor of :class:`~factory.Iterator`
+ - :class:`~factory.CircularSubFactory` is deprecated in favor of :class:`~factory.SubFactory`
+ - The ``extract_prefix`` argument to :meth:`~factory.post_generation` is now deprecated
+
+- **Factory:**
+ - Usage of :meth:`~factory.Factory.set_creation_function` and :meth:`~factory.Factory.set_building_function`
+ are now deprecated
+ - Implicit associated class discovery is no longer supported, you must set the :attr:`~factory.Factory.FACTORY_FOR`
+ attribute on all :class:`~factory.Factory` subclasses
+
+
+.. _changelog-1-3-0-upgrading:
+
+Upgrading
+"""""""""
+
+This version deprecates a few magic or undocumented features.
+All warnings will turn into errors starting from v2.0.0.
+
+In order to upgrade client code, apply the following rules:
+
+- Add a ``FACTORY_FOR`` attribute pointing to the target class to each
+ :class:`~factory.Factory`, instead of relying on automagic associated class
+ discovery
+- When using factory_boy for Django models, have each factory inherit from
+ :class:`~factory.DjangoModelFactory`
+- Replace ``factory.CircularSubFactory('some.module', 'Symbol')`` with
+ ``factory.SubFactory('some.module.Symbol')``
+- Replace ``factory.InfiniteIterator(iterable)`` with ``factory.Iterator(iterable)``
+- Replace ``@factory.post_generation()`` with ``@factory.post_generation``
+- Replace ``factory.set_building_function(SomeFactory, building_function)`` with
+ an override of the :meth:`~factory.Factory._build` method of ``SomeFactory``
+- Replace ``factory.set_creation_function(SomeFactory, creation_function)`` with
+ an override of the :meth:`~factory.Factory._create` method of ``SomeFactory``
+
+
+
+1.2.0 (2012-09-08)
+------------------
+
+*New:*
+
+ - Add :class:`~factory.CircularSubFactory` to solve circular dependencies between factories
+
+1.1.5 (2012-07-09)
+------------------
+
+*Bugfix:*
+
+ - Fix :class:`~factory.PostGenerationDeclaration` and derived classes.
+
+1.1.4 (2012-06-19)
+------------------
+
+*New:*
+
+ - Add :meth:`~factory.use_strategy` decorator to override a
+ :class:`~factory.Factory`'s default strategy
+ - Improve test running (tox, python2.6/2.7)
+ - Introduce :class:`~factory.PostGeneration` and
+ :class:`~factory.RelatedFactory`
+
+1.1.3 (2012-03-09)
+------------------
+
+*Bugfix:*
+
+ - Fix packaging rules
+
+1.1.2 (2012-02-25)
+------------------
+
+*New:*
+
+ - Add :class:`~factory.Iterator` and :class:`~factory.InfiniteIterator` for :class:`~factory.Factory` attribute declarations.
+ - Provide :func:`~factory.Factory.generate` and :func:`~factory.Factory.simple_generate`, that allow specifying the instantiation strategy directly.
+ Also provides :func:`~factory.Factory.generate_batch` and :func:`~factory.Factory.simple_generate_batch`.
+
+1.1.1 (2012-02-24)
+------------------
+
+*New:*
+
+ - Add :func:`~factory.Factory.build_batch`, :func:`~factory.Factory.create_batch` and :func:`~factory.Factory.stub_batch`, to instantiate factories in batch
+
+1.1.0 (2012-02-24)
+------------------
+
+*New:*
+
+ - Improve the :class:`~factory.SelfAttribute` syntax to fetch sub-attributes using the ``foo.bar`` syntax;
+ - Add :class:`~factory.ContainerAttribute` to fetch attributes from the container of a :class:`~factory.SubFactory`.
+ - Provide the :func:`~factory.make_factory` helper: ``MyClassFactory = make_factory(MyClass, x=3, y=4)``
+ - Add :func:`~factory.build`, :func:`~factory.create`, :func:`~factory.stub` helpers
+
+*Bugfix:*
+
+ - Allow classmethod/staticmethod on factories
+
+*Deprecation:*
+
+ - Auto-discovery of :attr:`~factory.Factory.FACTORY_FOR` based on class name is now deprecated
+
+1.0.4 (2011-12-21)
+------------------
+
+*New:*
+
+ - Improve the algorithm for populating a :class:`~factory.Factory` attributes dict
+ - Add ``python setup.py test`` command to run the test suite
+ - Allow custom build functions
+ - Introduce :data:`~factory.MOGO_BUILD` build function
+ - Add support for inheriting from multiple :class:`~factory.Factory`
+ - Base :class:`~factory.Factory` classes can now be declared :attr:`abstract <factory.Factory.ABSTRACT_FACTORY>`.
+ - Provide :class:`~factory.DjangoModelFactory`, whose :class:`~factory.Sequence` counter starts at the next free database id
+ - Introduce :class:`~factory.SelfAttribute`, a shortcut for ``factory.LazyAttribute(lambda o: o.foo.bar.baz``.
+
+*Bugfix:*
+
+ - Handle nested :class:`~factory.SubFactory`
+ - Share sequence counter between parent and subclasses
+ - Fix :class:`~factory.SubFactory` / :class:`~factory.Sequence` interferences
+
+1.0.2 (2011-05-16)
+------------------
+
+*New:*
+
+ - Introduce :class:`~factory.SubFactory`
+
+1.0.1 (2011-05-13)
+------------------
+
+*New:*
+
+ - Allow :class:`~factory.Factory` inheritance
+ - Improve handling of custom build/create functions
+
+*Bugfix:*
+
+ - Fix concurrency between :class:`~factory.LazyAttribute` and :class:`~factory.Sequence`
+
+1.0.0 (2010-08-22)
+------------------
+
+*New:*
+
+ - First version of factory_boy
+
+
+Credits
+-------
+
+* Initial version by Mark Sandstrom (2010)
+* Developed by Raphaƫl Barrois since 2011
+
+
+.. vim:et:ts=4:sw=4:tw=119:ft=rst: