test_models.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. from django.test import TestCase
  2. from django.core.exceptions import ValidationError
  3. from ..models import Service, Cost, CostUse
  4. class AbstractUseTests(TestCase):
  5. """ Testing AbstractUseTests through CostUse
  6. """
  7. def setUp(self):
  8. self.hosting_service = Service.objects.create(
  9. name='Physical hosting')
  10. self.mailbox_service = Service.objects.create(
  11. name='Mailbox')
  12. self.datacenter_cost = Cost.objects.create(
  13. name='Datacenter', price=100)
  14. def test_can_add_service_share(self):
  15. use = CostUse(
  16. service=self.hosting_service,
  17. resource=self.datacenter_cost,
  18. share=0.4)
  19. use.full_clean()
  20. use.save()
  21. def test_cannot_add_excess_share_one(self):
  22. use = CostUse(
  23. service=self.hosting_service,
  24. resource=self.datacenter_cost,
  25. share=1.1)
  26. with self.assertRaises(ValidationError):
  27. use.full_clean()
  28. use.save()
  29. def test_add_several_service_share(self):
  30. u1 = CostUse(
  31. service=self.hosting_service,
  32. resource=self.datacenter_cost,
  33. share=0.4)
  34. u1.full_clean()
  35. u1.save()
  36. u2 = CostUse(
  37. service=self.mailbox_service,
  38. resource=self.datacenter_cost,
  39. share=0.6)
  40. u2.full_clean()
  41. u2.save()
  42. def test_add_several_service_share_excessive_sum(self):
  43. u1 = CostUse(
  44. service=self.hosting_service,
  45. resource=self.datacenter_cost,
  46. share=0.5)
  47. u1.full_clean()
  48. u1.save()
  49. u2 = CostUse(
  50. service=self.mailbox_service,
  51. resource=self.datacenter_cost,
  52. share=0.6)
  53. with self.assertRaises(ValidationError):
  54. u2.full_clean()
  55. u2.save()