1
0

Accepting request 1125175 from devel:languages: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.

OBS-URL: https://build.opensuse.org/request/show/1125175
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-factory_boy?expand=0&rev=20
This commit is contained in:
Ana Guerrero 2023-11-13 21:15:47 +00:00 committed by Git OBS Bridge
commit 9efcbee070
5 changed files with 50 additions and 100 deletions

BIN
factory_boy-3.2.1.tar.gz (Stored with Git LFS)

Binary file not shown.

3
factory_boy-3.3.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:bc76d97d1a65bbd9842a6d722882098eb549ec8ee1081f9fb2e8ff29f0c300f1
size 163604

View File

@ -1,3 +1,46 @@
-------------------------------------------------------------------
Thu Nov 9 11:32:25 UTC 2023 - ecsos <ecsos@opensuse.org>
- 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 <dmueller@suse.com>

View File

@ -16,20 +16,17 @@
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%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 +49,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

View File

@ -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):