test_forms.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from django.contrib.contenttypes.models import ContentType
  2. from django.test import TestCase
  3. from circuits.forms import CircuitTerminationForm
  4. from circuits.models import Circuit, CircuitType, Provider, ProviderNetwork
  5. class CircuitTerminationFormTestCase(TestCase):
  6. @classmethod
  7. def setUpTestData(cls):
  8. provider = Provider.objects.create(name='Provider 1', slug='provider-1')
  9. circuit_type = CircuitType.objects.create(name='Circuit Type 1', slug='circuit-type-1')
  10. cls.circuit = Circuit.objects.create(
  11. cid='Circuit 1',
  12. provider=provider,
  13. type=circuit_type,
  14. )
  15. cls.provider_network = ProviderNetwork.objects.create(
  16. name='Provider Network 1',
  17. provider=provider,
  18. )
  19. def test_termination_required_when_termination_type_is_selected(self):
  20. """
  21. Selecting a termination type without a target object should report a
  22. validation error against the visible form field.
  23. """
  24. provider_network_type = ContentType.objects.get_for_model(ProviderNetwork)
  25. form = CircuitTerminationForm(
  26. data={
  27. 'circuit': self.circuit.pk,
  28. 'term_side': 'A',
  29. 'termination_content_type': provider_network_type.pk,
  30. 'termination_object_id': '',
  31. }
  32. )
  33. self.assertFalse(form.is_valid())
  34. self.assertIn('termination', form.errors)
  35. self.assertIn('Please select a provider network.', form.errors['termination'])
  36. self.assertNotIn('termination_object_id', form.errors)