Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 32 additions & 1 deletion tests/validation/test_json_schema.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from promptum.validation import JsonSchema
from promptum.validation.validators import JsonSchema


def test_json_schema_valid(json_schema_validator: JsonSchema) -> None:
Expand Down Expand Up @@ -48,3 +48,34 @@ def test_json_schema_describe_without_required_keys() -> None:
description = validator.describe()

assert description == "Valid JSON object"


class TestJsonSchema:
def test_valid_dict(self):
validator = JsonSchema()
passed, details = validator.validate('{"name": "Shreyas"}')
assert passed is True

def test_array_returns_false(self):
validator = JsonSchema()
passed, details = validator.validate("[1, 2, 3]")
assert passed is False
assert "error" in details

def test_number_returns_false(self):
validator = JsonSchema()
passed, details = validator.validate("42")
assert passed is False
assert "error" in details

def test_invalid_json_returns_false(self):
validator = JsonSchema()
passed, details = validator.validate("Shreyas")
assert passed is False
assert "error" in details

def test_missing_required_keys(self):
validator = JsonSchema(required_keys=("name", "age"))
passed, details = validator.validate('{"name": "Shreyas"}')
assert passed is False
assert "age" in details["missing_keys"]