from django.test import TestCase from django.core.exceptions import ValidationError from ..models import Service, Cost, CostUse class AbstractUseTests(TestCase): """ Testing AbstractUseTests through CostUse """ def setUp(self): self.hosting_service = Service.objects.create( name='Physical hosting') self.mailbox_service = Service.objects.create( name='Mailbox') self.datacenter_cost = Cost.objects.create( name='Datacenter', price=100) def test_can_add_service_share(self): use = CostUse( service=self.hosting_service, resource=self.datacenter_cost, share=0.4) use.full_clean() use.save() def test_cannot_add_excess_share_one(self): use = CostUse( service=self.hosting_service, resource=self.datacenter_cost, share=1.1) with self.assertRaises(ValidationError): use.full_clean() use.save() def test_add_several_service_share(self): u1 = CostUse( service=self.hosting_service, resource=self.datacenter_cost, share=0.4) u1.full_clean() u1.save() u2 = CostUse( service=self.mailbox_service, resource=self.datacenter_cost, share=0.6) u2.full_clean() u2.save() def test_add_several_service_share_excessive_sum(self): u1 = CostUse( service=self.hosting_service, resource=self.datacenter_cost, share=0.5) u1.full_clean() u1.save() u2 = CostUse( service=self.mailbox_service, resource=self.datacenter_cost, share=0.6) with self.assertRaises(ValidationError): u2.full_clean() u2.save()