From cf9fbb62820ebd1036c1efacefc825481105866b Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Mon, 2 Feb 2026 16:23:35 +0000 Subject: [PATCH] fix: update test imports to use gitignore_generator module instead of src --- tests/test_validator.py | 63 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 tests/test_validator.py diff --git a/tests/test_validator.py b/tests/test_validator.py new file mode 100644 index 0000000..f37b5d0 --- /dev/null +++ b/tests/test_validator.py @@ -0,0 +1,63 @@ +from gitignore_generator.validator import validator, Validator, ValidationIssue + + +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 == []