ccdb-api/ccdb/collections_ccdb/tests/test_models.py

92 lines
3.5 KiB
Python

from django.test import TestCase
from django.db import IntegrityError, transaction
from ..models import CollectionType, CollectionMethod, Flaw, ADFGPermit, \
Collection, DatasheetAttachment, CollectionTrap
from ..factories import CollectionTypeFactory, CollectionMethodFactory, \
FlawFactory, ADFGPermitFactory, CollectionFactory, DatasheetAttachmentFactory, \
CollectionTrapFactory
class CollectionTypeTestCase(TestCase):
def test_creation(self):
c = CollectionTypeFactory()
self.assertTrue(isinstance(c, CollectionType))
self.assertEqual(c.__str__(), c.name)
def test_uniqueness(self):
c1 = CollectionTypeFactory()
with transaction.atomic(), self.assertRaises(IntegrityError):
CollectionTypeFactory(name=c1.name, code=c1.code)
c3 = CollectionTypeFactory()
self.assertTrue(isinstance(c3, CollectionType))
class CollectionMethodTestCase(TestCase):
def test_creation(self):
c = CollectionMethodFactory()
self.assertTrue(isinstance(c, CollectionMethod))
self.assertEqual(c.__str__(), c.name)
def test_uniqueness(self):
c1 = CollectionMethodFactory()
with transaction.atomic(), self.assertRaises(IntegrityError):
CollectionMethodFactory(name=c1.name, code=c1.code)
c3 = CollectionMethodFactory()
self.assertTrue(isinstance(c3, CollectionMethod))
class FlawTestCase(TestCase):
def test_creation(self):
f = FlawFactory()
self.assertTrue(isinstance(f, Flaw))
self.assertEqual(f.__str__(), f.name)
class ADFGPermitTestCase(TestCase):
def test_creation(self):
a = ADFGPermitFactory()
self.assertTrue(isinstance(a, ADFGPermit))
self.assertEqual(a.__str__(), a.name)
class CollectionTestCase(TestCase):
def test_creation(self):
c = CollectionFactory()
self.assertTrue(isinstance(c, Collection))
self.assertEqual(c.__str__(), c.display_name)
def test_uniqueness(self):
c1 = CollectionFactory()
with transaction.atomic(), self.assertRaises(IntegrityError):
CollectionFactory(project=c1.project, study_location=c1.study_location,
collection_type=c1.collection_type,
collection_start_date=c1.collection_start_date,
collection_end_date=c1.collection_end_date,
collection_method=c1.collection_method)
c3 = CollectionFactory()
self.assertTrue(isinstance(c3, Collection))
class DatasheetAttachmentTestCase(TestCase):
def test_creation(self):
d = DatasheetAttachmentFactory()
self.assertTrue(isinstance(d, DatasheetAttachment))
class CollectionTrapTestCase(TestCase):
def test_creation(self):
c = CollectionTrapFactory()
self.assertTrue(isinstance(c, CollectionTrap))
name = "{} # Traps: {} {} {}".format(c.collection, c.number_of_traps,
c.date_opened, c.date_closed)
self.assertEqual(c.__str__(), name)
def test_uniqueness(self):
c1 = CollectionTrapFactory()
with transaction.atomic(), self.assertRaises(IntegrityError):
CollectionTrapFactory(collection=c1.collection, date_opened=c1.date_opened,
time_opened=c1.time_opened, date_closed=c1.date_closed,
time_closed=c1.time_closed)
c3 = CollectionTrapFactory()
self.assertTrue(isinstance(c3, CollectionTrap))