Skip to content
This repository has been archived by the owner on Mar 24, 2024. It is now read-only.

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
lsbardel committed Mar 5, 2020
1 parent e902b2a commit 35d613b
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 10 deletions.
10 changes: 7 additions & 3 deletions openapi/data/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,7 @@ def __init__(self, choices):

def __call__(self, field: Field, value: Any, data=None):
if value not in self.choices:
raise ValidationError(name, "%s not valid" % value)
raise ValidationError(field.name, "%s not valid" % value)
return value


Expand Down Expand Up @@ -383,9 +383,13 @@ def __init__(self, min_value=None, max_value=None):

def __call__(self, field: Field, value: Any, data=None):
if self.min_value is not None and value < self.min_value:
raise ValidationError(field.name, "%s less than %s" % (value, self.min_value))
raise ValidationError(
field.name, "%s less than %s" % (value, self.min_value)
)
if self.max_value is not None and value > self.max_value:
raise ValidationError(field.name, "%s greater than %s" % (value, self.max_value))
raise ValidationError(
field.name, "%s greater than %s" % (value, self.max_value)
)
return value

def dump(self, value):
Expand Down
2 changes: 1 addition & 1 deletion openapi/data/validate.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
VALIDATOR,
ValidationError,
as_field,
field_ops
field_ops,
)

NOT_VALID_TYPE = "not valid type"
Expand Down
10 changes: 5 additions & 5 deletions tests/data/test_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,16 +100,16 @@ def test_UUIDValidator_dump():
def test_EnumValidator_call_valid():
field = enum_field(FakeEnum)
validator = field.metadata.get(VALIDATOR)
assert validator(field.name, "VALUE_A") == FakeEnum.VALUE_A.name
assert validator(field, "VALUE_A") == FakeEnum.VALUE_A.name


def test_EnumValidator_call_invalid():
field = enum_field(FakeEnum)
validator = field.metadata.get(VALIDATOR)
with pytest.raises(ValidationError):
validator(field.name, "VALUE_D")
validator(field, "VALUE_D")
with pytest.raises(ValidationError):
validator(field.name, 1)
validator(field, 1)


def test_enum_validator_dump():
Expand All @@ -121,14 +121,14 @@ def test_enum_validator_dump():
def test_Choice_call_valid():
field = data_field()
validator = Choice(["a", "b", "c"])
assert validator(field.name, "a") == "a"
assert validator(field, "a") == "a"


def test_Choice_call_invalid():
field = data_field()
validator = Choice(["a", "b", "c"])
with pytest.raises(ValidationError):
validator(field.name, "d")
validator(field, "d")


def test_DateTimeValidator_call_valid():
Expand Down
3 changes: 2 additions & 1 deletion tests/example/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,11 @@ class Foo:
@dataclass
class SourcePrice:
"""An object containing prices for a single contract"""

id: int = fields.integer_field(description="ID", required=True)
prices: Dict[str, Decimal] = fields.data_field(
description="source-price mapping",
items=fields.decimal_field(
min_value=0, max_value=100, precision=4, description="price",
)
),
)

0 comments on commit 35d613b

Please sign in to comment.