diff --git a/pyproject.toml b/pyproject.toml index 709790e7..952af7db 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,7 @@ [project] -requires-python = "== 3.12" +requires-python = "~= 3.12.12" +version = "3.5.0" +name= "objects-api" # Bumpversion configuration @@ -12,6 +14,9 @@ pre_commit_hooks = [ ] # Defines the files to be updated. +[[tool.bumpversion.files]] +filename = "pyproject.toml" + [[tool.bumpversion.files]] filename = "src/objects/__init__.py" diff --git a/requirements/ci.txt b/requirements/ci.txt index a734bc9e..7e820611 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -374,7 +374,7 @@ face==20.1.1 # -c requirements/base.txt # -r requirements/base.txt # glom -factory-boy==3.2.0 +factory-boy==3.3.3 # via # -r requirements/performance-tests.in # -r requirements/test-tools.in diff --git a/requirements/dev.txt b/requirements/dev.txt index 31c77624..e1e58411 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -422,7 +422,7 @@ face==20.1.1 # -c requirements/ci.txt # -r requirements/ci.txt # glom -factory-boy==3.2.0 +factory-boy==3.3.3 # via # -c requirements/ci.txt # -r requirements/ci.txt diff --git a/src/objects/accounts/tests/factories.py b/src/objects/accounts/tests/factories.py index 41263016..77ed12b2 100644 --- a/src/objects/accounts/tests/factories.py +++ b/src/objects/accounts/tests/factories.py @@ -13,7 +13,7 @@ User = get_user_model() -class UserFactory(DjangoModelFactory): +class UserFactory(DjangoModelFactory[User]): username = factory.Sequence(lambda n: f"user-{n}") first_name = factory.Faker("first_name") last_name = factory.Faker("last_name") diff --git a/src/objects/core/tests/factories.py b/src/objects/core/tests/factories.py index 427bce95..9ae6a853 100644 --- a/src/objects/core/tests/factories.py +++ b/src/objects/core/tests/factories.py @@ -11,7 +11,7 @@ from ..models import Object, ObjectRecord, ObjectType, ObjectTypeVersion -class ObjectTypeFactory(factory.django.DjangoModelFactory): +class ObjectTypeFactory(factory.django.DjangoModelFactory[ObjectType]): service = factory.SubFactory(ServiceFactory) uuid = factory.LazyFunction(uuid.uuid4) _name = factory.Faker("word") @@ -24,7 +24,7 @@ class Meta: model = ObjectType -class ObjectTypeVersionFactory(factory.django.DjangoModelFactory): +class ObjectTypeVersionFactory(factory.django.DjangoModelFactory[ObjectTypeVersion]): object_type = factory.SubFactory(ObjectTypeFactory) json_schema = { "type": "object", @@ -51,14 +51,14 @@ class ObjectDataFactory(factory.DictFactory): diameter = factory.LazyAttribute(lambda x: random.randrange(1, 10_000)) -class ObjectFactory(factory.django.DjangoModelFactory): +class ObjectFactory(factory.django.DjangoModelFactory[Object]): object_type = factory.SubFactory(ObjectTypeFactory) class Meta: model = Object -class ObjectRecordFactory(factory.django.DjangoModelFactory): +class ObjectRecordFactory(factory.django.DjangoModelFactory[ObjectRecord]): object = factory.SubFactory(ObjectFactory) version = factory.Sequence(lambda n: n) data = factory.SubFactory(ObjectDataFactory) diff --git a/src/objects/core/tests/test_admin.py b/src/objects/core/tests/test_admin.py index d09fd4fe..70aaec31 100644 --- a/src/objects/core/tests/test_admin.py +++ b/src/objects/core/tests/test_admin.py @@ -23,23 +23,23 @@ class ObjectAdminTests(WebTest): def setUp(self): super().setUp() - self.user = UserFactory(superuser=True) + self.user = UserFactory.create(superuser=True) @tag("gh-615") def test_object_changelist_filter_by_objecttype(self): - service = ServiceFactory( + service = ServiceFactory.create( api_root="http://objecttypes.local/api/v1/", auth_type=AuthTypes.api_key, header_key="Authorization", header_value="Token 5cebbb33ffa725b6ed5e9e98300061218ba98d71", ) - object_type = ObjectTypeFactory( + object_type = ObjectTypeFactory.create( service=service, uuid="71a2452a-66c3-4030-b5ec-a06035102e9e" ) # Create 100 unused ObjectTypes, which creates 100 Services as well ObjectTypeFactory.create_batch(100) - object1 = ObjectFactory(object_type=object_type) - object2 = ObjectFactory() + object1 = ObjectFactory.create(object_type=object_type) + object2 = ObjectFactory.create() # Verify that the number of queries doesn't scale with the number of objecttypes with self.assertNumQueries(22): @@ -94,20 +94,20 @@ def get_num_results(response) -> int: @tag("gh-677") def test_add_new_objectrecord(self): - service = ServiceFactory( + service = ServiceFactory.create( api_root="http://objecttypes.local/api/v1/", auth_type=AuthTypes.api_key, header_key="Authorization", header_value="Token 5cebbb33ffa725b6ed5e9e98300061218ba98d71", ) - object_type = ObjectTypeFactory( + object_type = ObjectTypeFactory.create( service=service, uuid="71a2452a-66c3-4030-b5ec-a06035102e9e" ) object_type_url = ( "http://objecttypes.local/api/v1/" "objecttypes/71a2452a-66c3-4030-b5ec-a06035102e9e/versions/1" ) - object = ObjectFactory(object_type=object_type) + object = ObjectFactory.create(object_type=object_type) self.assertEqual(object.records.count(), 0) @@ -133,23 +133,23 @@ def test_add_new_objectrecord(self): @tag("gh-621") def test_object_admin_search_json_key_operator_value(self): - object1 = ObjectFactory() - ObjectRecordFactory( + object1 = ObjectFactory.create() + ObjectRecordFactory.create( object=object1, data={"id_nummer": 1, "naam": "Boomgaard", "plantDate": "2025-01-01"}, ) - object2 = ObjectFactory() - ObjectRecordFactory( + object2 = ObjectFactory.create() + ObjectRecordFactory.create( object=object2, data={"id_nummer": 2, "naam": "Appelboom", "plantDate": "2025-06-15"}, ) - object3 = ObjectFactory() - ObjectRecordFactory( + object3 = ObjectFactory.create() + ObjectRecordFactory.create( object=object3, data={"id_nummer": 3, "naam": "Peren", "plantDate": "2025-12-31"}, ) - object4 = ObjectFactory() - ObjectRecordFactory( + object4 = ObjectFactory.create() + ObjectRecordFactory.create( object=object4, data={ "id_nummer": 4, diff --git a/src/objects/core/tests/test_import_objecttypes.py b/src/objects/core/tests/test_import_objecttypes.py index d10c1779..4f1a6653 100644 --- a/src/objects/core/tests/test_import_objecttypes.py +++ b/src/objects/core/tests/test_import_objecttypes.py @@ -117,8 +117,8 @@ def test_new_objecttypes_are_created(self): self.assertEqual(str(version.status), "published") def test_existing_objecttypes_are_updated(self): - objecttype1 = ObjectTypeFactory(service=self.service) - objecttype2 = ObjectTypeFactory(service=self.service) + objecttype1 = ObjectTypeFactory.create(service=self.service) + objecttype2 = ObjectTypeFactory.create(service=self.service) self.m.get( f"{self.url}objecttypes", diff --git a/src/objects/core/tests/test_objecttype_config.py b/src/objects/core/tests/test_objecttype_config.py index 94d3848e..5588f1d5 100644 --- a/src/objects/core/tests/test_objecttype_config.py +++ b/src/objects/core/tests/test_objecttype_config.py @@ -17,8 +17,8 @@ class ObjectTypesConfigurationStepTests(TestCase): def test_empty_database(self): - service_1 = ServiceFactory(slug="service-1") - service_2 = ServiceFactory(slug="service-2") + service_1 = ServiceFactory.create(slug="service-1") + service_2 = ServiceFactory.create(slug="service-2") test_file_path = str(TEST_FILES / "objecttypes_empty_database.yaml") @@ -43,15 +43,15 @@ def test_empty_database(self): def test_existing_objecttype(self): test_file_path = str(TEST_FILES / "objecttypes_existing_objecttype.yaml") - service_1: Service = ServiceFactory(slug="service-1") - service_2: Service = ServiceFactory(slug="service-2") + service_1: Service = ServiceFactory.create(slug="service-1") + service_2: Service = ServiceFactory.create(slug="service-2") - objecttype_1: ObjectType = ObjectTypeFactory( + objecttype_1: ObjectType = ObjectTypeFactory.create( service=service_1, uuid="b427ef84-189d-43aa-9efd-7bb2c459e281", _name="Object Type 001", ) - objecttype_2: ObjectType = ObjectTypeFactory( + objecttype_2: ObjectType = ObjectTypeFactory.create( service=service_2, uuid="b0e8553f-8b1a-4d55-ab90-6d02f1bcf2c2", _name="Object Type 002", @@ -82,9 +82,9 @@ def test_existing_objecttype(self): self.assertEqual(objecttype_3.service, service_2) def test_unknown_service(self): - service = ServiceFactory(slug="service-1") + service = ServiceFactory.create(slug="service-1") - objecttype: ObjectType = ObjectTypeFactory( + objecttype: ObjectType = ObjectTypeFactory.create( uuid="b427ef84-189d-43aa-9efd-7bb2c459e281", _name="Object Type 001", service=service, @@ -108,9 +108,9 @@ def test_unknown_service(self): def test_invalid_uuid(self): test_file_path = str(TEST_FILES / "objecttypes_invalid_uuid.yaml") - service: Service = ServiceFactory(slug="service-1") + service: Service = ServiceFactory.create(slug="service-1") - objecttype: ObjectType = ObjectTypeFactory( + objecttype: ObjectType = ObjectTypeFactory.create( service=service, uuid="b427ef84-189d-43aa-9efd-7bb2c459e281", _name="Object Type 001", @@ -131,8 +131,8 @@ def test_invalid_uuid(self): self.assertEqual(objecttype.service, service) def test_idempotent_step(self): - service_1 = ServiceFactory(slug="service-1") - service_2 = ServiceFactory(slug="service-2") + service_1 = ServiceFactory.create(slug="service-1") + service_2 = ServiceFactory.create(slug="service-2") test_file_path = str(TEST_FILES / "objecttypes_idempotent.yaml") diff --git a/src/objects/setup_configuration/tests/test_token_auth_config.py b/src/objects/setup_configuration/tests/test_token_auth_config.py index e5eb0877..83d3c599 100644 --- a/src/objects/setup_configuration/tests/test_token_auth_config.py +++ b/src/objects/setup_configuration/tests/test_token_auth_config.py @@ -21,18 +21,18 @@ class TokenTestCase(TestCase): def setUp(self): - self.service = ServiceFactory(slug="service") - ObjectTypeFactory( + self.service = ServiceFactory.create(slug="service") + ObjectTypeFactory.create( service=self.service, uuid="3a82fb7f-fc9b-4104-9804-993f639d6d0d", _name="Object Type 001", ) - ObjectTypeFactory( + ObjectTypeFactory.create( service=self.service, uuid="ca754b52-3f37-4c49-837c-130e8149e337", _name="Object Type 002", ) - ObjectTypeFactory( + ObjectTypeFactory.create( service=self.service, uuid="feeaa795-d212-4fa2-bb38-2c34996e5702", _name="Object Type 003", @@ -104,7 +104,7 @@ def test_valid_setup_complete(self): self.assertTrue(token.is_superuser) def test_valid_update_existing_tokens(self): - TokenAuthFactory( + TokenAuthFactory.create( identifier="token-1", token="18b2b74ef994314b84021d47b9422e82b685d82f", contact_person="Person 1", @@ -114,7 +114,7 @@ def test_valid_update_existing_tokens(self): administration="Administration XYZ", ) - TokenAuthFactory( + TokenAuthFactory.create( identifier="token-2", token="1cad42916dfa439af8c69000bf7b6af6a66782af", contact_person="Person 3", diff --git a/src/objects/tests/admin/test_token_permissions.py b/src/objects/tests/admin/test_token_permissions.py index 1730250b..169c804d 100644 --- a/src/objects/tests/admin/test_token_permissions.py +++ b/src/objects/tests/admin/test_token_permissions.py @@ -21,7 +21,7 @@ class AddPermissionTests(WebTest): url = reverse_lazy("admin:token_permission_add") def setUp(self): - user = UserFactory(is_superuser=True, is_staff=True) + user = UserFactory.create(is_superuser=True, is_staff=True) self.app.set_user(user) def test_add_permission_choices_without_properties(self, m): @@ -62,7 +62,7 @@ def test_get_permission_with_unavailable_objecttypes(self, m): self.assertEqual(response.status_code, 200) def test_token_auth_is_preselected_in_select(self, m): - token = TokenAuthFactory() + token = TokenAuthFactory.create() url = f"{self.url}?token_auth={token.pk}" page = self.app.get(url) diff --git a/src/objects/tests/v2/test_auth.py b/src/objects/tests/v2/test_auth.py index 819bb877..089172c6 100644 --- a/src/objects/tests/v2/test_auth.py +++ b/src/objects/tests/v2/test_auth.py @@ -49,7 +49,7 @@ class PermissionTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) def test_retrieve_no_object_permission(self): object = ObjectFactory.create() @@ -206,7 +206,7 @@ class FilterAuthTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) def test_list_objects_without_object_permissions(self): ObjectFactory.create_batch(2) @@ -425,7 +425,7 @@ def test_create_superuser_no_object_type(self, m): @requests_mock.Mocker() def test_update_superuser(self, m): - object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) record = ObjectRecordFactory.create(object__object_type=object_type, version=1) url = reverse("object-detail", args=[record.object.uuid]) data = { @@ -449,7 +449,7 @@ def test_update_superuser(self, m): @requests_mock.Mocker() def test_patch_superuser(self, m): - object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) record = ObjectRecordFactory.create( object__object_type=object_type, version=1, data__name="old" ) diff --git a/src/objects/tests/v2/test_auth_fields.py b/src/objects/tests/v2/test_auth_fields.py index 5ebe0d4e..cfd67c86 100644 --- a/src/objects/tests/v2/test_auth_fields.py +++ b/src/objects/tests/v2/test_auth_fields.py @@ -25,7 +25,7 @@ class RetrieveAuthFieldsTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) def test_retrieve_without_query(self): PermissionFactory.create( @@ -170,8 +170,8 @@ class ListAuthFieldsTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - cls.other_object_type = ObjectTypeFactory() + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) + cls.other_object_type = ObjectTypeFactory.create() def test_list_without_query_different_object_types(self): PermissionFactory.create( @@ -241,7 +241,7 @@ def test_list_without_query_different_object_types(self): ) def test_list_with_query_fields(self): - other_object_type = ObjectTypeFactory() + other_object_type = ObjectTypeFactory.create() PermissionFactory.create( object_type=self.object_type, mode=PermissionModes.read_only, @@ -388,7 +388,7 @@ class SearchAuthFieldsTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) def test_search_with_fields_auth(self): PermissionFactory.create( diff --git a/src/objects/tests/v2/test_filters.py b/src/objects/tests/v2/test_filters.py index 5eacf147..61f59faa 100644 --- a/src/objects/tests/v2/test_filters.py +++ b/src/objects/tests/v2/test_filters.py @@ -29,8 +29,10 @@ class FilterObjectTypeTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - cls.another_object_type = ObjectTypeFactory(service=cls.object_type.service) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) + cls.another_object_type = ObjectTypeFactory.create( + service=cls.object_type.service + ) PermissionFactory.create( object_type=cls.object_type, @@ -95,7 +97,7 @@ class FilterDataAttrsTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_only, @@ -443,7 +445,7 @@ class FilterDataAttrTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_only, @@ -836,7 +838,7 @@ class FilterDateTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_only, @@ -971,7 +973,7 @@ class FilterDataIcontainsTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_only, @@ -1049,7 +1051,7 @@ class FilterTypeVersionTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_only, diff --git a/src/objects/tests/v2/test_geo_headers.py b/src/objects/tests/v2/test_geo_headers.py index 3dab9547..f481648a 100644 --- a/src/objects/tests/v2/test_geo_headers.py +++ b/src/objects/tests/v2/test_geo_headers.py @@ -21,7 +21,7 @@ class GeoHeaderTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/tests/v2/test_geo_search.py b/src/objects/tests/v2/test_geo_search.py index 6c4d45c0..d375ec96 100644 --- a/src/objects/tests/v2/test_geo_search.py +++ b/src/objects/tests/v2/test_geo_search.py @@ -21,8 +21,10 @@ class GeoSearchTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - cls.another_object_type = ObjectTypeFactory(service=cls.object_type.service) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) + cls.another_object_type = ObjectTypeFactory.create( + service=cls.object_type.service + ) PermissionFactory.create( object_type=cls.object_type, diff --git a/src/objects/tests/v2/test_jsonschema.py b/src/objects/tests/v2/test_jsonschema.py index bae51e6e..d26e8d31 100644 --- a/src/objects/tests/v2/test_jsonschema.py +++ b/src/objects/tests/v2/test_jsonschema.py @@ -1,10 +1,7 @@ -from typing import cast - import requests_mock from rest_framework import status from rest_framework.test import APITestCase -from objects.core.models import ObjectType from objects.core.tests.factories import ObjectTypeFactory from objects.token.constants import PermissionModes from objects.token.tests.factories import PermissionFactory @@ -25,9 +22,7 @@ class JsonSchemaTests(TokenAuthMixin, ClearCachesMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = cast( - ObjectType, ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - ) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/tests/v2/test_metrics.py b/src/objects/tests/v2/test_metrics.py index 17787540..e70c1239 100644 --- a/src/objects/tests/v2/test_metrics.py +++ b/src/objects/tests/v2/test_metrics.py @@ -1,4 +1,3 @@ -from typing import cast from unittest.mock import MagicMock, patch import requests_mock @@ -10,7 +9,6 @@ objects_delete_counter, objects_update_counter, ) -from objects.core.models import ObjectType from objects.core.tests.factories import ( ObjectFactory, ObjectRecordFactory, @@ -32,9 +30,7 @@ class ObjectMetricsTests(TokenAuthMixin, APITestCase): @classmethod def setUpTestData(cls): super().setUpTestData() - cls.object_type = cast( - ObjectType, ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - ) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/tests/v2/test_notifications_send.py b/src/objects/tests/v2/test_notifications_send.py index 43621815..da259e7c 100644 --- a/src/objects/tests/v2/test_notifications_send.py +++ b/src/objects/tests/v2/test_notifications_send.py @@ -34,7 +34,7 @@ class SendNotifTestCase(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/tests/v2/test_object_api.py b/src/objects/tests/v2/test_object_api.py index 822c97d7..91279b1f 100644 --- a/src/objects/tests/v2/test_object_api.py +++ b/src/objects/tests/v2/test_object_api.py @@ -1,14 +1,13 @@ import json import uuid from datetime import date, timedelta -from typing import cast import requests_mock from freezegun import freeze_time from rest_framework import status from rest_framework.test import APITestCase -from objects.core.models import Object, ObjectType +from objects.core.models import Object from objects.core.tests.factories import ( ObjectFactory, ObjectRecordFactory, @@ -34,9 +33,7 @@ class ObjectApiTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = cast( - ObjectType, ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - ) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/tests/v2/test_object_api_fields.py b/src/objects/tests/v2/test_object_api_fields.py index 9caaef7a..e6addd58 100644 --- a/src/objects/tests/v2/test_object_api_fields.py +++ b/src/objects/tests/v2/test_object_api_fields.py @@ -24,7 +24,7 @@ class DynamicFieldsTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/tests/v2/test_ordering.py b/src/objects/tests/v2/test_ordering.py index dfe9158d..cc4d950d 100644 --- a/src/objects/tests/v2/test_ordering.py +++ b/src/objects/tests/v2/test_ordering.py @@ -20,7 +20,7 @@ class OrderingTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, @@ -128,7 +128,7 @@ class OrderingAllowedTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) def test_not_allowed_field(self): PermissionFactory.create( diff --git a/src/objects/tests/v2/test_pagination.py b/src/objects/tests/v2/test_pagination.py index 920711ec..80475fc3 100644 --- a/src/objects/tests/v2/test_pagination.py +++ b/src/objects/tests/v2/test_pagination.py @@ -20,8 +20,8 @@ class FilterObjectTypeTests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) - PermissionFactory( + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) + PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_only, token_auth=cls.token_auth, diff --git a/src/objects/tests/v2/test_stuf.py b/src/objects/tests/v2/test_stuf.py index 5c1cdfb2..ba29ce75 100644 --- a/src/objects/tests/v2/test_stuf.py +++ b/src/objects/tests/v2/test_stuf.py @@ -37,7 +37,7 @@ class Stuf21Tests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) cls.object = ObjectFactory.create(object_type=cls.object_type) PermissionFactory.create( object_type=cls.object_type, @@ -288,7 +288,7 @@ class Stuf22Tests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) cls.object = ObjectFactory.create(object_type=cls.object_type) cls.record_1 = ObjectRecordFactory.create( object=cls.object, @@ -417,7 +417,7 @@ class Stuf23Tests(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) cls.object = ObjectFactory.create(object_type=cls.object_type) cls.record_1 = ObjectRecordFactory.create( object=cls.object, diff --git a/src/objects/tests/v2/test_validation.py b/src/objects/tests/v2/test_validation.py index c6b23407..afdaa70f 100644 --- a/src/objects/tests/v2/test_validation.py +++ b/src/objects/tests/v2/test_validation.py @@ -28,7 +28,7 @@ class ObjectTypeValidationTests(TokenAuthMixin, ClearCachesMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write, @@ -104,7 +104,7 @@ def test_valid_create_object_check_cache(self, m): self.assertEqual(m.call_count, 2) def test_create_object_with_not_found_objecttype_url(self, m): - object_type_invalid = ObjectTypeFactory(service=self.object_type.service) + object_type_invalid = ObjectTypeFactory.create(service=self.object_type.service) PermissionFactory.create( object_type=object_type_invalid, mode=PermissionModes.read_and_write, @@ -449,7 +449,7 @@ def test_update_object_with_correction_invalid(self, m): ) def test_update_object_type_invalid(self, m): - old_object_type = ObjectTypeFactory(service=self.object_type.service) + old_object_type = ObjectTypeFactory.create(service=self.object_type.service) PermissionFactory.create( object_type=old_object_type, mode=PermissionModes.read_and_write, diff --git a/src/objects/token/tests/factories.py b/src/objects/token/tests/factories.py index 0baf0d32..bc137819 100644 --- a/src/objects/token/tests/factories.py +++ b/src/objects/token/tests/factories.py @@ -1,24 +1,24 @@ import factory -import factory.fuzzy from objects.core.tests.factories import ObjectTypeFactory from ..constants import PermissionModes +from ..models import Permission, TokenAuth -class TokenAuthFactory(factory.django.DjangoModelFactory): +class TokenAuthFactory(factory.django.DjangoModelFactory[TokenAuth]): identifier = factory.Sequence(lambda sequence: f"token-{sequence}") contact_person = factory.Faker("name") email = factory.Faker("email") class Meta: - model = "token.TokenAuth" + model = TokenAuth -class PermissionFactory(factory.django.DjangoModelFactory): +class PermissionFactory(factory.django.DjangoModelFactory[Permission]): token_auth = factory.SubFactory(TokenAuthFactory) object_type = factory.SubFactory(ObjectTypeFactory) mode = PermissionModes.read_and_write class Meta: - model = "token.Permission" + model = Permission diff --git a/src/objects/token/tests/test_admin.py b/src/objects/token/tests/test_admin.py index 0397321d..16fdcce2 100644 --- a/src/objects/token/tests/test_admin.py +++ b/src/objects/token/tests/test_admin.py @@ -17,7 +17,7 @@ class PermissionAdminTests(VCRMixin, TestCase): def setUp(self): super().setUp() - self.user = UserFactory(superuser=True) + self.user = UserFactory.create(superuser=True) self.client.force_login(self.user) self.url = reverse("admin:token_permission_add") @@ -27,13 +27,13 @@ def test_with_object_types_api_v2(self): Regression test for #449. Test if Permission admin can handle objecttypes API V2 which added pagination """ - v2_service = ServiceFactory( + v2_service = ServiceFactory.create( api_root=self.object_types_api.format(version="v2"), auth_type=AuthTypes.api_key, header_key="Authorization", header_value="Token 5cebbb33ffa725b6ed5e9e98300061218ba98d71", ) - object_type = ObjectTypeFactory( + object_type = ObjectTypeFactory.create( service=v2_service, uuid="71a2452a-66c3-4030-b5ec-a06035102e9e" ) diff --git a/src/objects/utils/tests/test_client.py b/src/objects/utils/tests/test_client.py index c7604460..701ad768 100644 --- a/src/objects/utils/tests/test_client.py +++ b/src/objects/utils/tests/test_client.py @@ -23,7 +23,7 @@ class ObjecttypesClientTest(TokenAuthMixin, APITestCase): def setUpTestData(cls): super().setUpTestData() - cls.object_type = ObjectTypeFactory(service__api_root=OBJECT_TYPES_API) + cls.object_type = ObjectTypeFactory.create(service__api_root=OBJECT_TYPES_API) PermissionFactory.create( object_type=cls.object_type, mode=PermissionModes.read_and_write,