from django.test import TestCase from django.db import IntegrityError, transaction from ..models import (Flaw, Experiment, ProtocolAttachment, TreatmentType, Treatment, TreatmentReplicate, AliveDeadCount) from .factories import (FlawFactory, ExperimentFactory, ProtocolAttachmentFactory, TreatmentTypeFactory, TreatmentFactory, TreatmentReplicateFactory, AliveDeadCountFactory) 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 ExperimentTestCase(TestCase): def test_creation(self): e = ExperimentFactory() self.assertTrue(isinstance(e, Experiment)) self.assertEqual(e.__str__(), e.name) def test_uniqueness(self): e1 = ExperimentFactory() with transaction.atomic(), self.assertRaises(IntegrityError): ExperimentFactory(name=e1.name, code=e1.code) e3 = ExperimentFactory() self.assertTrue(isinstance(e3, Experiment)) class ProtocolAttachmentTestCase(TestCase): def test_creation(self): p = ProtocolAttachmentFactory() self.assertTrue(isinstance(p, ProtocolAttachment)) self.assertEqual(p.__str__(), p.protocol) class TreatmentTypeTestCase(TestCase): def test_creation(self): t = TreatmentTypeFactory() self.assertTrue(isinstance(t, TreatmentType)) label = "{} {} {} {}".format(t.experiment, t.name, t.treatment_type, t.placement) self.assertEqual(t.__str__(), label) def test_uniqueness(self): t1 = TreatmentTypeFactory() with transaction.atomic(), self.assertRaises(IntegrityError): TreatmentTypeFactory(name=t1.name, experiment=t1.experiment) t3 = TreatmentTypeFactory() self.assertTrue(isinstance(t3, TreatmentType)) class TreatmentTestCase(TestCase): def test_creation(self): t = TreatmentFactory() self.assertTrue(isinstance(t, Treatment)) label = "{}_{}_{}_{}".format(t.treatment_type, t.study_location, t.species, t.sex) self.assertEqual(t.__str__(), label) def test_uniqueness(self): t1 = TreatmentFactory() with transaction.atomic(), self.assertRaises(IntegrityError): TreatmentFactory(treatment_type=t1.treatment_type, container=t1.container, study_location=t1.study_location, species=t1.species, sex=t1.sex) t3 = TreatmentFactory() self.assertTrue(isinstance(t3, Treatment)) class TreatmentReplicateTestCase(TestCase): def test_creation(self): t = TreatmentReplicateFactory() self.assertTrue(isinstance(t, TreatmentReplicate)) label = "{}_{}_{}_{}".format(t.treatment, t.setup_date, t.name, t.setup_sample_size) self.assertEqual(t.__str__(), label) def test_uniqueness(self): t1 = TreatmentReplicateFactory() with transaction.atomic(), self.assertRaises(IntegrityError): TreatmentReplicateFactory(treatment=t1.treatment, name=t1.name, setup_date=t1.setup_date, setup_time=t1.setup_time) t3 = TreatmentReplicateFactory() self.assertTrue(isinstance(t3, TreatmentReplicate)) class AliveDeadCountTestCase(TestCase): def test_creation(self): a = AliveDeadCountFactory() self.assertTrue(isinstance(a, AliveDeadCount)) label = "{}".format(a.status_date) self.assertEqual(a.__str__(), label) def test_uniqueness(self): a1 = AliveDeadCountFactory() with transaction.atomic(), self.assertRaises(IntegrityError): AliveDeadCountFactory(treatment_replicate=a1.treatment_replicate, status_date=a1.status_date, status_time=a1.status_time, count_alive=a1.count_alive, count_dead=a1.count_dead) a3 = AliveDeadCountFactory() self.assertTrue(isinstance(a3, AliveDeadCount))