def test_not_nullable(self): f = EmailField() self.assertEqual('[email protected]', f.clean('[email protected]')) with self.assertRaisesRegex(ValueError, r'This field cannot be empty.'): f.clean('') with self.assertRaisesRegex(ValueError, r'This field cannot be empty.'): f.clean(None) with self.assertRaisesRegex(ValueError, r'Not valid email.'): f.clean('123')
class TestEmailFiled(TestField): required_field = EmailField(required=True, nullable=True) non_required_field = EmailField(required=False, nullable=True) # valid cases @cases([ '*****@*****.**', '*****@*****.**', 'くま@otus.ru', '緑@otus.ru', 'Вышеупомянутый@otus.ru' ]) def test_valid_values(self, email_value): super().test_valid_values(email_value) # invalid cases @cases([100, 200, 'stupnikov', 'stupnikovotus']) def test_invalid_values(self, email_value): super().test_invalid_values(email_value)
def test_nullable(self): f = EmailField(nullable=True) self.assertEqual('', f.clean(None)) self.assertEqual('', f.clean('')) self.assertEqual('[email protected]', f.clean('[email protected]')) with self.assertRaisesRegex(ValueError, r'Not valid email.'): f.clean('123')
class OnlineScoreRequest(unittest.TestCase): first_name = CharField(required=False, nullable=True) last_name = CharField(required=False, nullable=True) email = EmailField(required=False, nullable=True) phone = PhoneField(required=False, nullable=True) birthday = BirthDayField(required=False, nullable=True) gender = GenderField(required=True, nullable=True) @unittest.expectedFailure @cases({"param": 123}) def test_first_name_field_bad(self): self.first_name = 123 @cases({"param": 'tests'}) def test_first_name_field_good(self, param): self.first_name = param @unittest.expectedFailure @cases({"param": 123}) def test_last_name_field_bad(self, param): self.last_name = param @cases({"param": 'tests'}) def test_last_name_field_good(self, param): self.last_name = param @unittest.expectedFailure @cases({"param": 'tests@[email protected]'}) def test_email_field_bad(self, param): self.email = param @cases({"param": '*****@*****.**'}) def test_email_field_good(self, param): self.email = param @unittest.expectedFailure def test_phone_field_bad(self): self.phone = '899' def test_phone_field_good(self): self.phone = '79991231231' @unittest.expectedFailure def test_birthday_field_bad(self): self.birthday = '10/10/2000' def test_birthday_field_good(self): self.birthday = '10.10.2000' @unittest.expectedFailure def test_gender_field_bad(self): self.gender = 4 def test_gender_field_good(self): self.gender = 1
def test_wrong_email_field(self, value): with self.assertRaises(DataFieldError): EmailField().validate(value)
def test_right_email_field(self, value): self.assertEqual(EmailField().validate(value), value)
def test_invalid(self, value): field = EmailField() with self.assertRaises(ValidateFieldError): field.parse(value)
def test_valid(self, value): field = EmailField() self.assertEqual(field.parse(value), value)
def test_good_value(self, test_case): instance = EmailField(required=test_case['required'], nullable=test_case['nullable']) self.assertEqual(instance.parse_validate(test_case['value']), test_case['value'])
def test_bad_value(self, test_case): instance = EmailField(required=test_case['required'], nullable=test_case['nullable']) self.assertRaises(ValueError, instance.parse_validate, test_case['value'])
def test_invalid_email(self, value): with self.assertRaises(ValueError): EmailField().parse(value)
def test_valid_email(self, value): self.assertEqual(value, EmailField().parse(value))