def test_bad_gender_attribute(self, value): attr = api.GenderField(required=False, nullable=True) self.assertFalse(attr.validate(value))
def test_valid_gender(self, value): self.assertEqual(api.GENDERS[value], api.GenderField().valid_value(value)) self.assertTrue(api.GenderField().valid_value(value))
def test_invalid_value_(self, case): value, error = case field = api.GenderField(required=True, nullable=False) field.value = value field.validate() self.assertEquals(field.errors, [error])
class TestSuite(unittest.TestCase): def setUp(self): self.context = {'request_id': 0} self.headers = {} def get_response(self, request): return api.method_handler({ "body": request, "headers": self.headers }, self.context) def test_empty_request(self): _, code = self.get_response({}) self.assertEqual(api.INVALID_REQUEST, code) @cases([0, -1, []]) def test_bad_char_attribute(self, value): attr = api.CharField(required=False, nullable=True) self.assertFalse(attr.validate(value)) @cases([0, -1, { 1, }, '0', '-1']) def test_bad_arguments_attribute(self, value): attr = api.ArgumentsField(required=True, nullable=True) self.assertFalse(attr.validate(value)) @cases([0, -1, '0', 'iuejh339 dl93', []]) def test_bad_email_attribute(self, value): attr = api.EmailField(required=False, nullable=True) self.assertFalse(attr.validate(value)) @cases(['737473dh321', 0, -1, '790000323732']) def test_bad_phone_attribute(self, value): attr = api.PhoneField(required=False, nullable=True) self.assertFalse(attr.validate(value)) @cases([ '01.', 12122017, -1, '32.12.2017', '2017.12.31', '12.01.17', '10.01.200', '..', [], -0.0 ]) def test_bad_date_attribute(self, value): attr = api.DateField(required=False, nullable=True) self.assertFalse(attr.validate(value)) @cases([ '01.', 12122017, -1, '32.12.2017', '2017.12.31', '12.01.17', '10.01.200', '..', [], -0.0, '01.01.1917', '20.12.3018' ]) def test_bad_birthday_attribute(self, value): attr = api.BirthDayField(required=False, nullable=True) self.assertFalse(attr.validate(value)) @cases(['1', 1.0, -1, 7, -2.0, [], -0.0]) def test_bad_gender_attribute(self, value): attr = api.GenderField(required=False, nullable=True) self.assertFalse(attr.validate(value)) @cases([[0], [-1], -1, 0, ' ', '[1, -1, 0]', -1.0, [1.0, 2.0, 3.0]]) def test_bad_clientids_attribute(self, value): attr = api.ClientIDsField(required=True) self.assertFalse(attr.validate(value)) @cases([ api.ClientIDsField(required=True), api.GenderField(required=True, nullable=True), api.BirthDayField(required=True, nullable=True), api.DateField(required=True, nullable=True), api.PhoneField(required=True, nullable=True), api.EmailField(required=True, nullable=True), api.ArgumentsField(required=True, nullable=True), api.CharField(required=True, nullable=True) ]) def test_required_attributes(self, value): self.assertFalse(value.validate(None)) @cases([ api.ClientIDsField(required=True), api.GenderField(required=True, nullable=False), api.BirthDayField(required=True, nullable=False), api.DateField(required=True, nullable=False), api.PhoneField(required=True, nullable=False), api.EmailField(required=True, nullable=False), api.ArgumentsField(required=True, nullable=False), api.CharField(required=True, nullable=False) ]) def test_nullable_attributes(self, value): self.assertFalse(value.validate('')) @cases([{ "account": "horns&hoofs", "login": "******", "method": "online_score", "token": "", "arguments": {} }, { "account": "ой", "login": "******", "method": "online_score", "token": "sdd", "arguments": {} }, { "account": "horns&hoofs", "login": "******", "method": "online_score", "token": "ой", "arguments": {} }, { "account": "", "login": "******", "method": "online_score", "token": "", "arguments": {} }, { "account": "horns&hoofs", "login": "******", "method": "online_score", "token": "", "arguments": {} }, { "account": "horns&hoofs", "login": "******", "method": "online_score", "token": "", "arguments": {} }]) def test_bad_auth(self, request): request = api.set_attributes(api.MethodRequest, request) self.assertFalse(api.check_auth(request)) @cases([{ 'test_class': api.MethodRequest, 'values': { "account": "Ой", "login": "", "method": "метод", "token": "что-то", "arguments": { 'аргумент': 'значение' } } }, { 'test_class': api.ClientsInterestsRequest, 'values': { 'date': '20.07.2017', 'client_ids': [1, 2, 3, 4] } }, { 'test_class': api.OnlineScoreRequest, 'values': { 'first_name': 'имя', 'last_name': 'фамилия', 'gender': 1, 'phone': '79175002040', 'birthday': '01.01.1990', 'email': 'имя@domain.com' } }]) def test_set_attributes(self, kwargs): filled_obj = api.set_attributes(kwargs['test_class'], kwargs['values']) for attr, value in kwargs['values'].items(): self.assertEqual(filled_obj.__dict__[attr].__dict__['value'], value)
def test_api_gender_type_field(arguments, load_warm_store, context): field = api.GenderField() with pytest.raises(Exception) as e: val = field.validate(arguments) assert 'Gender must be equal to 0, 1 or 2' == str(e.value) assert 'ValueError' in str(e)
def test_valid_value(self, case): field = api.GenderField(required=True, nullable=False) field.value = case field.validate() self.assertFalse(field.errors)
def test_ok_date_field(input_value, output_value): field = api.GenderField(required=True, nullable=False) try: assert field.clean(input_value) == output_value except api.ValidationError: pytest.fail("Unexpected error")
def test_GenderField_fail(self, val): gender = api.GenderField(required=False, nullable=True) self.assertFalse(is_value_valid(gender, val))
def test_valid_gender(self, value): with self.assertRaises(ValueError): api.GenderField().run_validator(value)
def test__validate_success(self, mock__check_type, gender): f = api.GenderField() assert f._validate(gender) == gender mock__check_type.assert_called_once_with(f, gender, int)
def test_valid_gender(self, value): self.assertIsNone(api.GenderField().run_validator(value))
def test_invalid_value(self, value): with self.assertRaises(TypeError): api.GenderField().to_python(value)
def test_valid_value(self, value): self.assertEqual(value, api.GenderField().to_python(value)) self.assertEqual(value, api.GenderField(nullable=True).clean(value))
def test_gender_field_is_not_valid(self, args): field = api.GenderField() with self.assertRaises(ValueError): field.validate(args)
def test_gender_field_is_valid(self, args): field = api.GenderField() self.assert_not_raises(ValueError, field.validate, args)