From ef56998143652efd3aa6eac61c1123b2455042d99056c1cae0e069cda137b4f0 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sat, 11 Nov 2023 16:08:21 +0000 Subject: [PATCH 1/3] Accepting request 1124433 from home:ecsos:python - Update to 3.3.0 * New: - :issue:`366`: Add :class:`factory.django.Password` to generate Django :class:`~django.contrib.auth.models.User` passwords. - :issue:`304`: Add :attr:`~factory.alchemy.SQLAlchemyOptions.sqlalchemy_session_factory` to dynamically create sessions for use by the :class:`~factory.alchemy.SQLAlchemyModelFactory`. - Add support for Django 4.0 - Add support for Django 4.1 - Add support for Python 3.10 - Add support for Python 3.11 * Bugfix: - Make :meth:`~factory.django.mute_signals` mute signals during post-generation. - :issue:`775`: Change the signature for :meth:`~factory.alchemy.SQLAlchemyModelFactory._save` and :meth:`~factory.alchemy.SQLAlchemyModelFactory._get_or_create` to avoid argument names clashes with a field named session. * Deprecated: - :class:`~factory.django.DjangoModelFactory` will stop issuing a second call to :meth:`~django.db.models.Model.save` on the created instance when :ref:`post-generation-hooks` return a value. - To help with the transition, :class:`factory.django.DjangoModelFactory._after_postgeneration` raises a :class:`DeprecationWarning` when calling :meth:`~django.db.models.Model.save`. Inspect your :class:`~factory.django.DjangoModelFactory` subclasses: + If the :meth:`~django.db.models.Model.save` call is not needed after :class:`~factory.PostGeneration`, set :attr:`factory.django.DjangoOptions.skip_postgeneration_save` to True in the factory meta. + Otherwise, the instance has been modified by :class:`~factory.PostGeneration` hooks and needs to be :meth:`~django.db.models.Model.save`d. Either: - call :meth:`django.db.models.Model.save` in the :class:`~factory.PostGeneration` hook that modifies the instance, or - override :class:`~factory.django.DjangoModelFactory._after_postgeneration` to :meth:`~django.db.models.Model.save` the instance. * Removed: - Drop support for Django 2.2 - Drop support for Django 3.0 - Drop support for Django 3.1 - Drop support for Python 3.6 - Drop support for Python 3.7 - Drop tests-skip-django-py36.patch because new version need python >= 3.7. OBS-URL: https://build.opensuse.org/request/show/1124433 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-factory_boy?expand=0&rev=30 --- factory_boy-3.2.1.tar.gz | 3 --- factory_boy-3.3.0.tar.gz | 3 +++ python-factory_boy.changes | 43 ++++++++++++++++++++++++++++++++++++++ python-factory_boy.spec | 7 ++++--- 4 files changed, 50 insertions(+), 6 deletions(-) delete mode 100644 factory_boy-3.2.1.tar.gz create mode 100644 factory_boy-3.3.0.tar.gz diff --git a/factory_boy-3.2.1.tar.gz b/factory_boy-3.2.1.tar.gz deleted file mode 100644 index a4ce82b..0000000 --- a/factory_boy-3.2.1.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:a98d277b0c047c75eb6e4ab8508a7f81fb03d2cb21986f627913546ef7a2a55e -size 153483 diff --git a/factory_boy-3.3.0.tar.gz b/factory_boy-3.3.0.tar.gz new file mode 100644 index 0000000..fa7daa3 --- /dev/null +++ b/factory_boy-3.3.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc76d97d1a65bbd9842a6d722882098eb549ec8ee1081f9fb2e8ff29f0c300f1 +size 163604 diff --git a/python-factory_boy.changes b/python-factory_boy.changes index 8313183..5c7cff3 100644 --- a/python-factory_boy.changes +++ b/python-factory_boy.changes @@ -1,3 +1,46 @@ +------------------------------------------------------------------- +Thu Nov 9 11:32:25 UTC 2023 - ecsos + +- Update to 3.3.0 + * New: + - :issue:`366`: Add :class:`factory.django.Password` to generate Django + :class:`~django.contrib.auth.models.User` passwords. + - :issue:`304`: Add :attr:`~factory.alchemy.SQLAlchemyOptions.sqlalchemy_session_factory` + to dynamically create sessions for use by the :class:`~factory.alchemy.SQLAlchemyModelFactory`. + - Add support for Django 4.0 + - Add support for Django 4.1 + - Add support for Python 3.10 + - Add support for Python 3.11 + * Bugfix: + - Make :meth:`~factory.django.mute_signals` mute signals during post-generation. + - :issue:`775`: Change the signature for :meth:`~factory.alchemy.SQLAlchemyModelFactory._save` + and :meth:`~factory.alchemy.SQLAlchemyModelFactory._get_or_create` to avoid argument names + clashes with a field named session. + * Deprecated: + - :class:`~factory.django.DjangoModelFactory` will stop issuing + a second call to :meth:`~django.db.models.Model.save` on the + created instance when :ref:`post-generation-hooks` return a value. + - To help with the transition, :class:`factory.django.DjangoModelFactory._after_postgeneration` + raises a :class:`DeprecationWarning` when calling :meth:`~django.db.models.Model.save`. + Inspect your :class:`~factory.django.DjangoModelFactory` subclasses: + + If the :meth:`~django.db.models.Model.save` call is not needed after :class:`~factory.PostGeneration`, set + :attr:`factory.django.DjangoOptions.skip_postgeneration_save` to True in the factory meta. + + Otherwise, the instance has been modified by :class:`~factory.PostGeneration` + hooks and needs to be :meth:`~django.db.models.Model.save`d. Either: + - call :meth:`django.db.models.Model.save` in the :class:`~factory.PostGeneration` + hook that modifies the instance, or + - override :class:`~factory.django.DjangoModelFactory._after_postgeneration` + to :meth:`~django.db.models.Model.save` the instance. + * Removed: + - Drop support for Django 2.2 + - Drop support for Django 3.0 + - Drop support for Django 3.1 + - Drop support for Python 3.6 + - Drop support for Python 3.7 + +- Drop tests-skip-django-py36.patch because new version need + python >= 3.7. + ------------------------------------------------------------------- Fri Apr 21 12:24:55 UTC 2023 - Dirk Müller diff --git a/python-factory_boy.spec b/python-factory_boy.spec index 2660a6c..07eb49e 100644 --- a/python-factory_boy.spec +++ b/python-factory_boy.spec @@ -20,16 +20,15 @@ %define skip_python2 1 %{?sle15_python_module_pythons} Name: python-factory_boy -Version: 3.2.1 +Version: 3.3.0 Release: 0 Summary: Python test fixtures License: MIT URL: https://github.com/rbarrois/factory_boy Source: https://files.pythonhosted.org/packages/source/f/factory_boy/factory_boy-%{version}.tar.gz -# PATCH-FEATURE-OPENSUSE tests-skip-django-py36.patch -- don't test django on python36: no python36-Django 4, code@bnavigator.de -Patch0: tests-skip-django-py36.patch BuildRequires: %{python_module Faker >= 0.7.0} BuildRequires: %{python_module Pillow} +BuildRequires: %{python_module base >= 3.7} BuildRequires: %{python_module setuptools >= 0.8} BuildRequires: %{python_module typing_extensions} BuildRequires: fdupes @@ -52,6 +51,8 @@ sed -i -e '/test_mongoengine/d' tests/__init__.py # sqlalchemy hickups a lot rm tests/test_alchemy.py sed -i -e '/test_alchemy/d' tests/__init__.py +# Fix wrong version +sed -i -e 's|"3.2.1.dev0"|"3.3.0"|g' tests/test_version.py %build %python_build From 805f1b42f3ae47b3d8f025963c777b38601cc784c18bfca622162cd7d47f60fb Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sat, 11 Nov 2023 16:08:41 +0000 Subject: [PATCH 2/3] OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-factory_boy?expand=0&rev=31 --- python-factory_boy.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/python-factory_boy.spec b/python-factory_boy.spec index 07eb49e..6640031 100644 --- a/python-factory_boy.spec +++ b/python-factory_boy.spec @@ -16,8 +16,6 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} -%define skip_python2 1 %{?sle15_python_module_pythons} Name: python-factory_boy Version: 3.3.0 From 4dde887c74127b6793315d9aca64c371bec2fa82629ed78efc19f070b8cea9c0 Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Sat, 11 Nov 2023 16:09:00 +0000 Subject: [PATCH 3/3] OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-factory_boy?expand=0&rev=32 --- tests-skip-django-py36.patch | 92 ------------------------------------ 1 file changed, 92 deletions(-) delete mode 100644 tests-skip-django-py36.patch diff --git a/tests-skip-django-py36.patch b/tests-skip-django-py36.patch deleted file mode 100644 index 3119bcc..0000000 --- a/tests-skip-django-py36.patch +++ /dev/null @@ -1,92 +0,0 @@ -Index: factory_boy-3.2.0/tests/test_django.py -=================================================================== ---- factory_boy-3.2.0.orig/tests/test_django.py -+++ factory_boy-3.2.0/tests/test_django.py -@@ -7,11 +7,14 @@ import os - import unittest - from unittest import mock - --import django --from django import test as django_test --from django.conf import settings --from django.db.models import signals --from django.test import utils as django_test_utils -+try: -+ import django -+ from django import test as django_test -+ from django.conf import settings -+ from django.db.models import signals -+ from django.test import utils as django_test_utils -+except ImportError: -+ raise unittest.SkipTest("No Django installed") - - import factory.django - -Index: factory_boy-3.2.0/tests/test_using.py -=================================================================== ---- factory_boy-3.2.0.orig/tests/test_using.py -+++ factory_boy-3.2.0/tests/test_using.py -@@ -11,6 +11,7 @@ import unittest - - import factory - from factory import errors -+nodjango = not hasattr(factory, 'django') - - from . import utils - -@@ -141,6 +142,7 @@ class SimpleBuildTestCase(unittest.TestC - self.assertEqual(obj.id, None) - self.assertEqual(obj.foo, 'bar') - -+ @unittest.skipIf(nodjango, "No Django installed") - def test_create_custom_base(self): - obj = factory.create(FakeModel, foo='bar', FACTORY_CLASS=factory.django.DjangoModelFactory) - self.assertEqual(obj.id, 2) -@@ -156,6 +158,7 @@ class SimpleBuildTestCase(unittest.TestC - self.assertEqual(obj.id, None) - self.assertEqual(obj.foo, 'bar') - -+ @unittest.skipIf(nodjango, "No Django installed") - def test_create_batch_custom_base(self): - objs = factory.create_batch( - FakeModel, -@@ -196,6 +199,7 @@ class SimpleBuildTestCase(unittest.TestC - self.assertEqual(obj.id, None) - self.assertEqual(obj.foo, 'bar') - -+ @unittest.skipIf(nodjango, "No Django installed") - def test_generate_create_custom_base(self): - obj = factory.generate( - FakeModel, -@@ -231,6 +235,7 @@ class SimpleBuildTestCase(unittest.TestC - self.assertEqual(obj.id, None) - self.assertEqual(obj.foo, 'bar') - -+ @unittest.skipIf(nodjango, "No Django installed") - def test_generate_batch_create_custom_base(self): - objs = factory.generate_batch( - FakeModel, -@@ -267,6 +272,7 @@ class SimpleBuildTestCase(unittest.TestC - self.assertEqual(obj.id, None) - self.assertEqual(obj.foo, 'bar') - -+ @unittest.skipIf(nodjango, "No Django installed") - def test_simple_generate_create_custom_base(self): - obj = factory.simple_generate(FakeModel, True, foo='bar', FACTORY_CLASS=factory.django.DjangoModelFactory) - self.assertEqual(obj.id, 2) -@@ -292,6 +298,7 @@ class SimpleBuildTestCase(unittest.TestC - self.assertEqual(obj.id, None) - self.assertEqual(obj.foo, 'bar') - -+ @unittest.skipIf(nodjango, "No Django installed") - def test_simple_generate_batch_create_custom_base(self): - objs = factory.simple_generate_batch( - FakeModel, -@@ -2046,6 +2053,7 @@ class BetterFakeModel: - self.id = None - - -+@unittest.skipIf(nodjango, "No Django installed") - class DjangoModelFactoryTestCase(unittest.TestCase): - def test_simple(self): - class FakeModelFactory(factory.django.DjangoModelFactory):