Skip to content
Merged
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
54 changes: 27 additions & 27 deletions tests/test_syntax.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,40 +5,40 @@
import rfc3987_syntax2 as sut


@pytest.fixture
def valid_syntax_data():
with open(Path("tests", "valid_syntax.json"), "r", encoding="utf-8") as f:
return json.load(f)


@pytest.fixture
def invalid_syntax_data():
with open(Path("tests", "invalid_syntax.json"), "r", encoding="utf-8") as f:
return json.load(f)


def test_is_valid_syntax(valid_syntax_data):
for term, valid_examples in valid_syntax_data.items():
for valid_example in valid_examples:
actual = sut.is_valid_syntax(term=term, value=valid_example["value"])
print("")
print(
f"Testing {term} with {valid_example['value']} : {valid_example['reason']}"
)
assert (
actual is True
), f"Failed term: {term} for '{valid_example['value']}' : {valid_example['reason']}"
assert True


def test_not_is_valid_syntax(invalid_syntax_data):
for term, invalid_examples in invalid_syntax_data.items():
for invalid_example in invalid_examples:
actual = sut.is_valid_syntax(term=term, value=invalid_example["value"])
print("")
print(
f"Testing {term} with {invalid_example['value']} : {invalid_example['reason']}"
)
assert (
actual is False
), f"Failed term: {term} for '{invalid_example['value']}' : {invalid_example['reason']}"
def syntax_data_as_params(src_cb):
for term, examples in src_cb().items():
for example in examples:
yield pytest.param(term, example, id=f"{term}-{example['value']}")


@pytest.mark.parametrize("term,valid_example", syntax_data_as_params(valid_syntax_data))
def test_is_valid_syntax(term, valid_example):
actual = sut.is_valid_syntax(term=term, value=valid_example["value"])
print("")
print(
f"Testing {term} with {valid_example['value']} : {valid_example['reason']}"
)
assert (
actual is True
), f"Failed term: {term} for '{valid_example['value']}' : {valid_example['reason']}"

@pytest.mark.parametrize("term,invalid_example", syntax_data_as_params(invalid_syntax_data))
def test_not_is_valid_syntax(term, invalid_example):
actual = sut.is_valid_syntax(term=term, value=invalid_example["value"])
print("")
print(
f"Testing {term} with {invalid_example['value']} : {invalid_example['reason']}"
)
assert (
actual is False
), f"Failed term: {term} for '{invalid_example['value']}' : {invalid_example['reason']}"