Compare commits

...

1 Commits
1.1 ... main

5 changed files with 65 additions and 103 deletions

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

Binary file not shown.

BIN
factory_boy-3.3.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -1,8 +1,61 @@
-------------------------------------------------------------------
Thu Sep 26 08:40:58 UTC 2024 - Markéta Machová <mmachova@suse.com>
Thu Sep 26 10:37:04 UTC 2024 - Markéta Machová <mmachova@suse.com>
- skip testing with Django on SLFO
-------------------------------------------------------------------
Sat Aug 31 12:41:40 UTC 2024 - Dirk Müller <dmueller@suse.com>
- update to 3.3.1:
* Add support for Django 4.2
* Add support for Django 5.1
* Add support for Python 3.12
* Stop advertising and verifying support for Django 3.2, 4.0,
4.1
-------------------------------------------------------------------
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>
@ -11,7 +64,7 @@ Fri Apr 21 12:24:55 UTC 2023 - Dirk Müller <dmueller@suse.com>
-------------------------------------------------------------------
Wed Feb 1 20:48:11 UTC 2023 - Dirk Müller <dmueller@suse.com>
- skip testing with Django on SLE15
- skip testing with Django on SLE15
-------------------------------------------------------------------
Sat Jan 15 16:04:33 UTC 2022 - Dirk Müller <dmueller@suse.com>
@ -111,7 +164,7 @@ Mon Mar 16 10:31:31 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
-------------------------------------------------------------------
Mon Nov 18 00:57:55 UTC 2019 - Steve Kowalik <steven.kowalik@suse.com>
- BuildRequires on %{pythons} as setuptools no longer drags it in.
- BuildRequires on %{pythons} as setuptools no longer drags it in.
-------------------------------------------------------------------
Fri Jun 7 11:54:06 UTC 2019 - Marketa Calabkova <mcalabkova@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file for package python-factory_boy
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -18,21 +18,20 @@
%{?sle15_python_module_pythons}
Name: python-factory_boy
Version: 3.2.1
Version: 3.3.1
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
BuildRequires: python-rpm-macros
%if 0%{suse_version} >= 1699
%if 0%{suse_version} > 1600
BuildRequires: %{python_module Django}
%endif
Requires: python-Faker >= 0.7.0
@ -50,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):