paperwork: Add basic tests for CertifiersReport and CertificationCountReport
This commit is contained in:
parent
d59318e2a5
commit
9568a32b00
@ -7,7 +7,14 @@ from hypothesis import given
|
||||
from hypothesis import strategies as st
|
||||
from hypothesis.extra.django import TestCase, from_model
|
||||
|
||||
from paperwork.models import InstructorOrVendor, Waiver
|
||||
from paperwork.models import (
|
||||
Certification,
|
||||
CertificationDefinition,
|
||||
CertificationVersion,
|
||||
Department,
|
||||
InstructorOrVendor,
|
||||
Waiver,
|
||||
)
|
||||
|
||||
|
||||
class PermissionRequiredViewTestCaseMixin:
|
||||
@ -68,3 +75,56 @@ class InstructorOrVendorReportTestCase(PermissionRequiredViewTestCaseMixin, Test
|
||||
self.client.force_login(self.user_with_permission)
|
||||
response = self.client.get(self.path)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
@st.composite
|
||||
def random_certifications(draw):
|
||||
departments = draw(st.lists(from_model(Department), min_size=1))
|
||||
definitions = draw(
|
||||
st.lists(
|
||||
from_model(
|
||||
CertificationDefinition, department=st.sampled_from(departments)
|
||||
),
|
||||
min_size=1,
|
||||
)
|
||||
)
|
||||
certification_versions = draw(
|
||||
st.lists(
|
||||
from_model(CertificationVersion, definition=st.sampled_from(definitions)),
|
||||
min_size=1,
|
||||
)
|
||||
)
|
||||
|
||||
return draw(
|
||||
st.lists(
|
||||
from_model(
|
||||
Certification,
|
||||
number=st.none(),
|
||||
certification_version=st.sampled_from(certification_versions),
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class CertifiersReportTestCase(PermissionRequiredViewTestCaseMixin, TestCase):
|
||||
permissions = [{"model": Certification, "codename": "view_certification"}]
|
||||
path = "/paperwork/certifiers"
|
||||
|
||||
@given(certifications=random_certifications())
|
||||
def test_certifers_report(self, certifications: list[Certification]) -> None:
|
||||
self.client.force_login(self.user_with_permission)
|
||||
response = self.client.get(self.path)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
||||
|
||||
class CertificationCountReportTestCase(PermissionRequiredViewTestCaseMixin, TestCase):
|
||||
permissions = [{"model": Certification, "codename": "view_certification"}]
|
||||
path = "/paperwork/certification-count"
|
||||
|
||||
@given(certifications=random_certifications())
|
||||
def test_certification_count_report(
|
||||
self, certifications: list[Certification]
|
||||
) -> None:
|
||||
self.client.force_login(self.user_with_permission)
|
||||
response = self.client.get(self.path)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
|
Loading…
Reference in New Issue
Block a user