No Description
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_regex.py 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import unittest
  2. from lodel.exceptions import *
  3. from lodel.leapi.datahandlers.datas import Regex, Varchar, Integer
  4. class RegexTestCase(unittest.TestCase):
  5. def test_check_correct_data_value(self):
  6. test_value = '126.205.255.12'
  7. test_regex = Regex('^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$',
  8. max_length=100)
  9. value = test_regex._check_data_value(test_value)
  10. self.assertEqual(value, test_value)
  11. def test_check_bad_data_value(self):
  12. test_regex = Regex('^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$',
  13. max_length=15)
  14. for test_value in ['800.9.10.5', 'test_string_value', '999.999.999.999']:
  15. with self.assertRaises(FieldValidationError):
  16. test_regex._check_data_value(test_value)
  17. def test_check_bad_compile_regex(self):
  18. test_max_length = 15
  19. test_regex = Regex('^\d[a-z]+8?', max_length=15)
  20. for test_value in ['cccc8']:
  21. with self.assertRaises(FieldValidationError):
  22. test_regex._check_data_value(test_value)
  23. def test_check_bad_max_length(self):
  24. test_max_length = 15
  25. test_regex = Regex('[a-z]+8?', max_length=15)
  26. for test_value in ['ccccccccccccccccccccccccccccccccc8']:
  27. with self.assertRaises(FieldValidationError):
  28. test_regex._check_data_value(test_value)
  29. def test_check_good_max_length(self):
  30. test_max_length = 15
  31. test_regex = Regex('^\d[a-z]+8?', max_length=15)
  32. for test_value in ['3ccccccccc8']:
  33. value = test_regex._check_data_value(test_value)
  34. self.assertEqual(value, test_value)
  35. def test_can_override(self):
  36. test_regex = Regex('^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$',
  37. max_length=15)
  38. for test_varchar in [Varchar(), Varchar(max_length=15), Varchar(max_length=9)]:
  39. if test_regex.max_length == test_varchar.max_length:
  40. self.assertTrue(test_regex.can_override(test_varchar))
  41. else:
  42. self.assertFalse(test_regex.can_override(test_varchar))
  43. def test_cant_override(self):
  44. test_regex = Regex('^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$',
  45. max_length=15)
  46. test_int = Integer()
  47. self.assertFalse(test_regex.can_override(test_int))