Skip to content

Commit

Permalink
100% tested code
Browse files Browse the repository at this point in the history
  • Loading branch information
sonic182 committed Sep 16, 2017
1 parent fe5074c commit 9015231
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 21 deletions.
10 changes: 1 addition & 9 deletions app/validators/json_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ def _extra_validations(data, rules, errors, field):
@staticmethod
def _convert(data):
"""Check if given data is a string, and loads it."""
if JsonSchemaValidator._valid_data(data):
if isinstance(data, (str, dict, list)):
if isinstance(data, str):
try:
return (loads(data), False)
Expand All @@ -146,11 +146,3 @@ def _convert(data):
else:
return (data, False)
return (False, '2')

@staticmethod
def _valid_data(data):
choices = [str, dict, list]
for _type in choices:
if isinstance(data, _type):
return True
return False
24 changes: 12 additions & 12 deletions tests/components/schema_validator.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,6 @@ def test_validator_needs_constrain():
assert True


def test_validator_data_type():
"""Test validator recieves correct data type."""
valid_objects = [{}, 'foo', []]
for obj in valid_objects:
assert JsonSchemaValidator._valid_data(obj)

not_valid_objects = [1234, 1.2, False]
for obj in not_valid_objects:
assert JsonSchemaValidator._valid_data(obj) is False


def test_validator_valid_json():
"""Test validator recieves a valid json."""
json_str = "{'foo': 'bar'}"
Expand All @@ -39,6 +28,10 @@ def test_validator_valid_json():
res, err = JsonSchemaValidator._convert(json_str)
assert res

json_str = dumps({'foo': 'bar'})
res, err = JsonSchemaValidator._convert(1.0)
assert err


def test_constrain_primitive():
"""Test constrain primitive types"""
Expand Down Expand Up @@ -230,10 +223,17 @@ def test_datetime_rule():
constrain = {
'birthdate': {
'type': datetime,
'dformat': '%Y-%m-%d',
}
}
json = {'birthdate': '1990-12-24'}

try:
JsonSchemaValidator(constrain).validate(json)
assert False
except AttributeError:
assert True

constrain['birthdate']['dformat'] = '%Y-%m-%d'
res, err = JsonSchemaValidator(constrain).validate(json)
assert not err and res == {
'birthdate': datetime.strptime('1990-12-24', '%Y-%m-%d')}
Expand Down

0 comments on commit 9015231

Please sign in to comment.