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) def test_uniqueness(self): f1 = FlawFactory() with transaction.atomic(), self.assertRaises(IntegrityError): FlawFactory(name=f1.name) f3 = FlawFactory() self.assertTrue(isinstance(f3, Flaw)) class ADFGPermitTestCase(TestCase): def test_creation(self): a = ADFGPermitFactory() self.assertTrue(isinstance(a, ADFGPermit)) self.assertEqual(a.__str__(), a.name) def test_uniqueness(self): a1 = ADFGPermitFactory() with transaction.atomic(), self.assertRaises(IntegrityError): ADFGPermitFactory(name=a1.name) a3 = ADFGPermitFactory() self.assertTrue(isinstance(a3, ADFGPermit)) 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))