class TestBirthdayField(TestField): required_field = BirthDayField(required=True, nullable=True) non_required_field = BirthDayField(required=False, nullable=True) # valid cases @cases([ "01.01.1990", "01.01.2000", ]) def test_valid_values(self, bdate_value): super().test_valid_values(bdate_value) # invalid cases @cases(["01.01.1890", 'XXX']) def test_invalid_values(self, bdate_value): super().test_invalid_values(bdate_value)
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_birthday_field(self, value): with self.assertRaises(DataFieldError): BirthDayField().validate(value)
def test_right_birthday_field(self, value): self.assertEqual(BirthDayField().validate(value), datetime.datetime.strptime(value, "%d.%m.%Y"))
def test_valid_invalid_format_date(self, value): field = BirthDayField(format='%Y.%m.%d') with self.assertRaises(ValidateFieldError): field.parse(value)
def test_valid_format_date(self, value): field = BirthDayField(format='%Y.%m.%d') self.assertEqual(field.parse(value), value)
def test_invalid(self, value): field = BirthDayField() with self.assertRaises(ValidateFieldError): field.parse(value)
def test_valid(self, value): field = BirthDayField() self.assertEqual(field.parse(value), value)
def test_good_value(self, test_case): instance = BirthDayField(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 = BirthDayField(required=test_case['required'], nullable=test_case['nullable']) self.assertRaises(ValueError, instance.parse_validate, test_case['value'])
def test_invalid_date(self, value): max_days = 365.25 * 71 value = value - dt.timedelta(max_days) value = value.strftime('%d.%m.%Y') with self.assertRaises(ValueError): BirthDayField().parse(value)
def test_valid_date(self, value): self.assertIsNotNone(BirthDayField().parse(value)) self.assertEqual(BirthDayField().parse(value).strftime('%d.%m.%Y'), value)