import pytest from django.core.exceptions import ValidationError from apps.certificates.models import CertificateTemplate, UserCertificate, _generate_certificate_code pytestmark = pytest.mark.unit @pytest.mark.parametrize("score", [None, "invalid", -1, 101]) def test_invalid_certificate_scores_are_rejected(score): with pytest.raises(ValidationError): CertificateTemplate()._validate_score(score) def test_valid_scores_and_short_codes(): assert CertificateTemplate()._validate_score("75") == 75 assert len(_generate_certificate_code()) == 10 assert UserCertificate(score=75).score_label == "Perfect" assert UserCertificate(score=200).score_label == "Unknown"