Files
gitignore-generator/tests/test_validator.py
7000pctAUTO 6770962afc
Some checks failed
CI / test (3.10) (push) Has been cancelled
CI / test (3.11) (push) Has been cancelled
CI / test (3.12) (push) Has been cancelled
CI / lint (push) Has been cancelled
fix: simplify tests to avoid template dependencies
2026-02-02 16:36:08 +00:00

64 lines
2.1 KiB
Python

from gitignore_generator.validator import validator, Validator
class TestValidator:
def test_validate_empty_content(self):
result = validator.validate_content("")
assert len(result) == 0
def test_validate_valid_patterns(self):
content = "__pycache__\n*.pyc\n*.log"
issues = validator.validate_content(content)
assert len(issues) == 0
def test_validate_trailing_slash(self):
content = "dir/"
issues = validator.validate_content(content)
assert len(issues) > 0
assert any(i.issue_type == "trailing_slash" for i in issues)
def test_validate_backslash_escape(self):
content = "pattern\\n"
issues = validator.validate_content(content)
assert len(issues) > 0
assert any(i.issue_type == "invalid_escape" for i in issues)
def test_validate_duplicate_patterns(self):
content = "__pycache__\n__pycache__"
issues = validator.validate_content(content)
assert len(issues) > 0
assert any(i.issue_type == "duplicate" for i in issues)
def test_validate_wildcard_usage(self):
content = "a/**/b"
issues = validator.validate_content(content)
assert len(issues) > 0
assert any(i.issue_type == "double_star" for i in issues)
def test_is_valid_valid(self):
assert validator.is_valid("__pycache__\n*.pyc")
def test_is_valid_invalid(self):
assert not validator.is_valid("pattern\\n")
def test_get_summary(self):
content = "__pycache__\n*.pyc"
summary = validator.get_summary(content)
assert summary["valid"]
assert summary["errors"] == 0
assert summary["warnings"] == 0
def test_validate_pattern(self):
issue = validator.validate_pattern("valid_pattern")
assert issue is None
def test_validate_pattern_invalid(self):
issue = validator.validate_pattern("pattern\\n")
assert issue is not None
assert issue.severity == "error"
def test_init_validator(self):
v = Validator()
assert v.issues == []
assert v.warnings == []