From 3505f915c5ba0b0d5992d234363be1ec84aa7b36 Mon Sep 17 00:00:00 2001 From: Jon Date: Fri, 16 May 2025 02:17:31 +0930 Subject: [PATCH] refactor(Access): Update Functional Serializer to use PyTest for Contact Model ref: #761 #730 --- .../test_functional_contact_serializer.py | 115 +++--------------- 1 file changed, 16 insertions(+), 99 deletions(-) diff --git a/app/access/tests/functional/contact/test_functional_contact_serializer.py b/app/access/tests/functional/contact/test_functional_contact_serializer.py index c4b278d3..73c6dc5f 100644 --- a/app/access/tests/functional/contact/test_functional_contact_serializer.py +++ b/app/access/tests/functional/contact/test_functional_contact_serializer.py @@ -1,129 +1,46 @@ import pytest -from django.test import TestCase - from rest_framework.exceptions import ValidationError -from access.serializers.entity_contact import ( - Contact, - ModelSerializer -) from access.tests.functional.person.test_functional_person_serializer import ( + MockView, PersonSerializerInheritedCases ) -class SerializerTestCases( - PersonSerializerInheritedCases, +class ContactSerializerTestCases( + PersonSerializerInheritedCases ): - duplicate_f_name_l_name_dob = { - 'email': 'contactentityduplicateone@unit.test', + + parameterized_test_data: dict = { + "email": { + 'will_create': False, + 'exception_key': 'required' + } } - kwargs_create_item: dict = { - 'email': 'ipfunny@unit.test', - } - - kwargs_create_item_duplicate_f_name_l_name_dob = { - 'email': 'contactentityduplicatetwo@unit.test', - } - - model = Contact - """Model to test""" - - create_model_serializer = ModelSerializer - """Serializer to test""" - valid_data: dict = { - 'email': 'ipweird@unit.test', + 'email': 'contactentityduplicatetwo@unit.test', } - - - - def test_serializer_validation_no_email_exception(self): - """Serializer Validation Check - - Ensure that when creating with valid data and field email is missing - a validation error occurs. - """ - - data = self.valid_data.copy() - - del data['email'] - - with pytest.raises(ValidationError) as err: - - serializer = self.create_model_serializer( - data = data - ) - - serializer.is_valid(raise_exception = True) - - assert err.value.get_codes()['email'][0] == 'required' + """Valid data used by serializer to create object""" class ContactSerializerInheritedCases( - SerializerTestCases, + ContactSerializerTestCases, ): - create_model_serializer = None - """Serializer to test""" - - duplicate_f_name_l_name_dob: dict = None - """ Duplicate model serializer dict - - used for testing for duplicate f_name, l_name and dob fields. - """ - - kwargs_create_item: dict = None - """ Model kwargs to create item""" - - kwargs_create_item_duplicate_f_name_l_name_dob: dict = None - """model kwargs to create object - - **None:** Ensure that the fields of sub-model to person do not match - `self.duplicate_f_name_l_name_dob`. if they do the wrong exception will be thrown. - - used for testing for duplicate f_name, l_name and dob fields. - """ - - model = None - """Model to test""" + parameterized_test_data: dict = None valid_data: dict = None """Valid data used by serializer to create object""" - @classmethod - def setUpTestData(self): - """Setup Test""" - self.duplicate_f_name_l_name_dob.update( - super().duplicate_f_name_l_name_dob - ) - - self.kwargs_create_item_duplicate_f_name_l_name_dob.update( - super().kwargs_create_item_duplicate_f_name_l_name_dob - ) - - self.kwargs_create_item.update( - super().kwargs_create_item - ) - - self.valid_data.update( - super().valid_data - ) - - super().setUpTestData() - - - -class ContactSerializerTest( - SerializerTestCases, - TestCase, +class ContactSerializerPyTest( + ContactSerializerTestCases, ): - pass + parameterized_test_data: dict = None