64 lines
2.1 KiB
Python
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 == []
|