68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
from django.test import TestCase
|
|
from django.db import IntegrityError, transaction
|
|
|
|
from ..models import ProcessType, Reagent, Flaw, Processing
|
|
from .factories import (ProcessTypeFactory, ReagentFactory, FlawFactory,
|
|
ProcessingFactory)
|
|
|
|
|
|
class ProcessTypeTestCase(TestCase):
|
|
def test_creation(self):
|
|
p = ProcessTypeFactory()
|
|
self.assertTrue(isinstance(p, ProcessType))
|
|
self.assertEqual(p.__str__(), p.name)
|
|
|
|
def test_uniqueness(self):
|
|
p1 = ProcessTypeFactory()
|
|
with transaction.atomic(), self.assertRaises(IntegrityError):
|
|
ProcessTypeFactory(name=p1.name, code=p1.code)
|
|
p3 = ProcessTypeFactory()
|
|
self.assertTrue(isinstance(p3, ProcessType))
|
|
|
|
|
|
class ReagentTestCase(TestCase):
|
|
def test_creation(self):
|
|
r = ReagentFactory()
|
|
self.assertTrue(isinstance(r, Reagent))
|
|
self.assertEqual(r.__str__(), r.name)
|
|
|
|
def test_uniqueness(self):
|
|
r1 = ReagentFactory()
|
|
with transaction.atomic(), self.assertRaises(IntegrityError):
|
|
ReagentFactory(name=r1.name, code=r1.code)
|
|
r3 = ReagentFactory()
|
|
self.assertTrue(isinstance(r3, Reagent))
|
|
|
|
|
|
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 ProcessingTestCase(TestCase):
|
|
def test_creation(self):
|
|
p = ProcessingFactory()
|
|
self.assertTrue(isinstance(p, Processing))
|
|
name = "{} {} {}".format(p.process_date, p.process_type,
|
|
p.container_label)
|
|
self.assertEqual(p.__str__(), name)
|
|
|
|
def test_uniqueness(self):
|
|
p1 = ProcessingFactory()
|
|
with transaction.atomic(), self.assertRaises(IntegrityError):
|
|
ProcessingFactory(process_type=p1.process_type,
|
|
container=p1.container,
|
|
container_label=p1.container_label,
|
|
process_date=p1.process_date,
|
|
process_time=p1.process_time, reagent=p1.reagent)
|
|
p3 = ProcessingFactory()
|
|
self.assertTrue(isinstance(p3, Processing))
|