refactor(access): Update Model Contact to use PyTest for Model Test Suite
ref: #761 #730
This commit is contained in:
@ -1,100 +1,110 @@
|
|||||||
from django.db.models.fields import NOT_PROVIDED
|
import pytest
|
||||||
from django.test import TestCase
|
|
||||||
|
from django.db import models
|
||||||
|
|
||||||
from access.models.contact import Contact
|
from access.models.contact import Contact
|
||||||
from access.tests.unit.person.test_unit_person_model import (
|
from access.tests.unit.person.test_unit_person_model import (
|
||||||
Person,
|
|
||||||
PersonModelInheritedCases
|
PersonModelInheritedCases
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ModelTestCases(
|
class ContactModelTestCases(
|
||||||
PersonModelInheritedCases,
|
PersonModelInheritedCases,
|
||||||
):
|
):
|
||||||
|
|
||||||
model = Contact
|
kwargs_create_item: dict = {
|
||||||
|
|
||||||
kwargs_item_create: dict = {
|
|
||||||
'email': 'ipweird@unit.test',
|
'email': 'ipweird@unit.test',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub_model_type = 'contact'
|
||||||
|
"""Sub Model Type
|
||||||
|
|
||||||
|
sub-models must have this attribute defined in `ModelName.Meta.sub_model_type`
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
parameterized_fields: dict = {
|
||||||
|
"email": {
|
||||||
|
'field_type': models.fields.CharField,
|
||||||
|
'field_parameter_default_exists': False,
|
||||||
|
'field_parameter_verbose_name_type': str,
|
||||||
|
},
|
||||||
|
"directory": {
|
||||||
|
'field_type': models.fields.BooleanField,
|
||||||
|
'field_parameter_default_exists': True,
|
||||||
|
'field_parameter_default_value': True,
|
||||||
|
'field_parameter_verbose_name_type': str,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def test_model_field_directory_optional(self):
|
def test_class_inherits_contact(self):
|
||||||
"""Test Field
|
""" Class inheritence
|
||||||
|
|
||||||
Field `dob` must be an optional field
|
TenancyObject must inherit SaveHistory
|
||||||
"""
|
"""
|
||||||
|
|
||||||
assert self.model._meta.get_field('directory').blank
|
assert issubclass(self.model, Contact)
|
||||||
|
|
||||||
|
|
||||||
def test_model_field_directory_optional_default(self):
|
# def test_attribute_value_history_app_label(self):
|
||||||
"""Test Field
|
# """Attribute Type
|
||||||
|
|
||||||
Field `directory` default value is `True`
|
# history_app_label has been set, override this test case with the value
|
||||||
|
# of attribute `history_app_label`
|
||||||
|
# """
|
||||||
|
|
||||||
|
# assert self.model.history_app_label == 'access'
|
||||||
|
|
||||||
|
|
||||||
|
def test_attribute_value_history_model_name(self):
|
||||||
|
"""Attribute Type
|
||||||
|
|
||||||
|
history_model_name has been set, override this test case with the value
|
||||||
|
of attribute `history_model_name`
|
||||||
"""
|
"""
|
||||||
|
|
||||||
assert (
|
assert self.model.history_model_name == 'contact'
|
||||||
self.model._meta.get_field('directory').default is True
|
|
||||||
and self.model._meta.get_field('directory').null is False
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_model_field_email_mandatory(self):
|
|
||||||
"""Test Field
|
|
||||||
|
|
||||||
Field `email` must be a mandatory field
|
def test_function_value_get_url(self):
|
||||||
"""
|
|
||||||
|
|
||||||
assert(
|
|
||||||
not (
|
|
||||||
self.model._meta.get_field('email').blank
|
|
||||||
and self.model._meta.get_field('email').null
|
|
||||||
)
|
|
||||||
and self.model._meta.get_field('email').default is NOT_PROVIDED
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_model_inherits_person(self):
|
|
||||||
"""Test model inheritence
|
|
||||||
|
|
||||||
model must inherit from Entity sub-model `Person`
|
|
||||||
"""
|
|
||||||
|
|
||||||
assert issubclass(self.model, Person)
|
|
||||||
|
|
||||||
|
assert self.item.get_url() == '/api/v2/access/entity/contact/' + str(self.item.id)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ContactModelInheritedCases(
|
class ContactModelInheritedCases(
|
||||||
ModelTestCases,
|
ContactModelTestCases,
|
||||||
):
|
):
|
||||||
"""Sub-Entity Test Cases
|
"""Sub-Ticket Test Cases
|
||||||
|
|
||||||
Test Cases for Entity models that inherit from model Contact
|
Test Cases for Ticket models that inherit from model Entity
|
||||||
"""
|
"""
|
||||||
|
|
||||||
kwargs_item_create: dict = None
|
kwargs_create_item: dict = {}
|
||||||
|
|
||||||
model = None
|
model = None
|
||||||
|
|
||||||
|
sub_model_type = None
|
||||||
@classmethod
|
"""Ticket Sub Model Type
|
||||||
def setUpTestData(self):
|
|
||||||
|
Ticket sub-models must have this attribute defined in `ModelNam.Meta.sub_model_type`
|
||||||
self.kwargs_item_create.update(
|
"""
|
||||||
super().kwargs_item_create
|
|
||||||
)
|
|
||||||
|
|
||||||
super().setUpTestData()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class ContactModelTest(
|
class ContactModelPyTest(
|
||||||
ModelTestCases,
|
ContactModelTestCases,
|
||||||
TestCase,
|
|
||||||
):
|
):
|
||||||
|
|
||||||
pass
|
|
||||||
|
def test_function_value_get_related_model(self):
|
||||||
|
"""Function test
|
||||||
|
|
||||||
|
Confirm function `get_related_model` is None for base model
|
||||||
|
"""
|
||||||
|
|
||||||
|
assert self.item.get_related_model() is None
|
||||||
|
Reference in New Issue
Block a user