Skip to content

Commit

Permalink
test data model
Browse files Browse the repository at this point in the history
  • Loading branch information
jsjiang committed Aug 4, 2023
1 parent b6cc9fa commit 1b27db0
Showing 1 changed file with 77 additions and 0 deletions.
77 changes: 77 additions & 0 deletions tests/test_minter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Copyright©2021, Regents of the University of California
# http://creativecommons.org/licenses/BSD

"""Test the minter data modle
"""
import time
import logging

from django.core.exceptions import ValidationError

import ezidapp.models.minter
import tests.util.sample as sample
import tests.util.util

log = logging.getLogger(__name__)


class TestMinter:
def test_1000(self, caplog):
"""Validate the minter data model - invalid values"""
caplog.set_level(logging.INFO)

expected_validation_errors ={
'createTime': ["Ensure this value is greater than or equal to 0."],
'updateTime': ["Ensure this value is greater than or equal to 0."],
'minterState': ["This field cannot be blank."],
'prefix': ["Invalid shoulder."],
}

prefix='XYZark:/91101/r01/'
minter = ezidapp.models.minter.Minter(prefix=prefix, createTime=-1, updateTime=-1, minterState='')
try:
minter.full_clean()
except ValidationError as e:
for field_name, err_msg_list in e.message_dict.items():
assert expected_validation_errors.get(field_name).sort() == err_msg_list.sort()

def test_1010(self, caplog):
"""Validate the minter data model - field size"""
caplog.set_level(logging.INFO)

expected_validation_errors = {
'prefix': ['Invalid shoulder.', 'Ensure this value has at most 255 characters (it has 256).'],
'minterState': ['This field cannot be blank.'],
}

prefix='X' * 256
minter = ezidapp.models.minter.Minter(prefix=prefix)
try:
minter.full_clean()
except ValidationError as e:
for field_name, err_msg_list in e.message_dict.items():
assert expected_validation_errors.get(field_name).sort() == err_msg_list.sort()


def test_1020(self, caplog):
"""Validate default values"""
assert not ezidapp.models.minter.Minter.objects.filter(
prefix='ark:/91101/r01/'
).exists()

prefix='ark:/91101/r01/'
t = int(time.time())
minter = ezidapp.models.minter.Minter.objects.create(prefix=prefix, minterState={})

assert ezidapp.models.minter.Minter.objects.filter(
prefix='ark:/91101/r01/'
).exists()

minter = ezidapp.models.minter.Minter.objects.get(prefix='ark:/91101/r01/')
assert minter.prefix == 'ark:/91101/r01/'
assert minter.createTime == minter.updateTime
assert (t - minter.createTime) <= 1
assert minter.minterState == {}



0 comments on commit 1b27db0

Please sign in to comment.