You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_mixins.py 2.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. from django import forms
  2. from django.test import TestCase
  3. from oscar.apps.address.models import UserAddress
  4. from oscar.forms.mixins import PhoneNumberMixin
  5. class PhoneNumberMixinTestCase(TestCase):
  6. def test_mixin_adds_phone_number_field(self):
  7. class TestForm(PhoneNumberMixin, forms.Form):
  8. pass
  9. form = TestForm()
  10. self.assertIn('phone_number', form.fields)
  11. def test_mixin_adds_all_phone_number_fields(self):
  12. class TestForm(PhoneNumberMixin, forms.Form):
  13. phone_number_fields = {
  14. 'phone_number': {
  15. 'required': False,
  16. 'help_text': '',
  17. 'max_length': 32,
  18. 'label': 'Phone number'
  19. },
  20. 'another_phone_number': {
  21. 'required': False,
  22. 'help_text': 'Another phone number help text',
  23. 'max_length': 32,
  24. 'label': 'Another phone number'
  25. },
  26. 'one_more_phone_number': {
  27. 'required': False,
  28. 'help_text': '',
  29. 'max_length': 32,
  30. 'label': 'One more phone number'
  31. },
  32. }
  33. form = TestForm()
  34. self.assertIn('phone_number', form.fields)
  35. self.assertIn('another_phone_number', form.fields)
  36. self.assertIn('one_more_phone_number', form.fields)
  37. field = form.fields['another_phone_number']
  38. self.assertEqual(field.help_text, 'Another phone number help text')
  39. def test_mixin_retains_existing_field_properties(self):
  40. class TestForm(PhoneNumberMixin, forms.ModelForm):
  41. class Meta:
  42. model = UserAddress
  43. fields = ['country', 'phone_number']
  44. # Override default label and help text
  45. labels = {'phone_number': 'Special number'}
  46. help_texts = {'phone_number': 'Special help text'}
  47. form = TestForm()
  48. field = form.fields['phone_number']
  49. self.assertEqual(field.label, 'Special number')
  50. self.assertEqual(field.help_text, 'Special help text')