fix: resolve CI issues - push complete implementation with tests
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
"""Tests for the LanguageDetector module."""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
@@ -9,41 +7,32 @@ from gdiffer.language_detector import detect_language
|
||||
|
||||
|
||||
class TestLanguageDetector:
|
||||
"""Tests for LanguageDetector class."""
|
||||
|
||||
def test_detect_python_extension(self, language_detector):
|
||||
"""Test detecting Python files."""
|
||||
assert language_detector.detect_from_filename("test.py") == "python"
|
||||
assert language_detector.detect_from_filename("script.pyw") == "python"
|
||||
assert language_detector.detect_from_filename("module.pyx") == "python"
|
||||
|
||||
def test_detect_javascript_extension(self, language_detector):
|
||||
"""Test detecting JavaScript files."""
|
||||
assert language_detector.detect_from_filename("app.js") == "javascript"
|
||||
assert language_detector.detect_from_filename("module.mjs") == "javascript"
|
||||
assert language_detector.detect_from_filename("component.cjs") == "javascript"
|
||||
assert language_detector.detect_from_filename("file.jsx") == "javascript"
|
||||
|
||||
def test_detect_typescript_extension(self, language_detector):
|
||||
"""Test detecting TypeScript files."""
|
||||
assert language_detector.detect_from_filename("app.ts") == "typescript"
|
||||
assert language_detector.detect_from_filename("component.tsx") == "typescript"
|
||||
assert language_detector.detect_from_filename("module.mts") == "typescript"
|
||||
|
||||
def test_detect_java_extension(self, language_detector):
|
||||
"""Test detecting Java files."""
|
||||
assert language_detector.detect_from_filename("Main.java") == "java"
|
||||
|
||||
def test_detect_go_extension(self, language_detector):
|
||||
"""Test detecting Go files."""
|
||||
assert language_detector.detect_from_filename("main.go") == "go"
|
||||
|
||||
def test_detect_rust_extension(self, language_detector):
|
||||
"""Test detecting Rust files."""
|
||||
assert language_detector.detect_from_filename("lib.rs") == "rust"
|
||||
|
||||
def test_detect_c_extensions(self, language_detector):
|
||||
"""Test detecting C/C++ files."""
|
||||
assert language_detector.detect_from_filename("file.c") == "c"
|
||||
assert language_detector.detect_from_filename("header.h") == "c"
|
||||
assert language_detector.detect_from_filename("source.cpp") == "cpp"
|
||||
@@ -51,21 +40,17 @@ class TestLanguageDetector:
|
||||
assert language_detector.detect_from_filename("header.hpp") == "cpp"
|
||||
|
||||
def test_detect_ruby_extension(self, language_detector):
|
||||
"""Test detecting Ruby files."""
|
||||
assert language_detector.detect_from_filename("script.rb") == "ruby"
|
||||
assert language_detector.detect_from_filename("template.erb") == "ruby"
|
||||
|
||||
def test_detect_php_extension(self, language_detector):
|
||||
"""Test detecting PHP files."""
|
||||
assert language_detector.detect_from_filename("index.php") == "php"
|
||||
|
||||
def test_detect_unknown_extension(self, language_detector):
|
||||
"""Test detecting unknown file extensions."""
|
||||
assert language_detector.detect_from_filename("file.xyz") is None
|
||||
assert language_detector.detect_from_filename("README") is None
|
||||
|
||||
def test_detect_from_content_python(self, language_detector):
|
||||
"""Test detecting Python from content."""
|
||||
code = """def hello():
|
||||
return "Hello, World!"
|
||||
|
||||
@@ -75,7 +60,6 @@ if __name__ == "__main__":
|
||||
assert language_detector.detect_from_content(code) == "python"
|
||||
|
||||
def test_detect_from_content_javascript(self, language_detector):
|
||||
"""Test detecting JavaScript from content."""
|
||||
code = """function greet(name) {
|
||||
return "Hello, " + name;
|
||||
}
|
||||
@@ -85,7 +69,6 @@ const result = greet("World");
|
||||
assert language_detector.detect_from_content(code) == "javascript"
|
||||
|
||||
def test_detect_from_content_rust(self, language_detector):
|
||||
"""Test detecting Rust from content."""
|
||||
code = """fn main() {
|
||||
println!("Hello, World!");
|
||||
}
|
||||
@@ -97,7 +80,6 @@ fn add(a: i32, b: i32) -> i32 {
|
||||
assert language_detector.detect_from_content(code) == "rust"
|
||||
|
||||
def test_detect_from_content_go(self, language_detector):
|
||||
"""Test detecting Go from content."""
|
||||
code = """package main
|
||||
|
||||
import "fmt"
|
||||
@@ -109,17 +91,14 @@ func main() {
|
||||
assert language_detector.detect_from_content(code) == "go"
|
||||
|
||||
def test_detect_combined_filename_content(self, language_detector):
|
||||
"""Test detection with both filename and content."""
|
||||
result = language_detector.detect("test.py", "def hello(): pass")
|
||||
assert result == "python"
|
||||
|
||||
def test_detect_script_without_extension(self, language_detector):
|
||||
"""Test detecting script without file extension."""
|
||||
result = language_detector.detect("Makefile", "all:\n\techo hello")
|
||||
assert result == "text"
|
||||
|
||||
def test_get_supported_languages(self, language_detector):
|
||||
"""Test getting list of supported languages."""
|
||||
languages = language_detector.get_supported_languages()
|
||||
assert isinstance(languages, list)
|
||||
assert "python" in languages
|
||||
@@ -127,26 +106,20 @@ func main() {
|
||||
assert "java" in languages
|
||||
|
||||
def test_is_language_supported(self, language_detector):
|
||||
"""Test checking if language is supported."""
|
||||
assert language_detector.is_language_supported("python")
|
||||
assert language_detector.is_language_supported("javascript")
|
||||
assert not language_detector.is_language_supported("brainfuck")
|
||||
|
||||
|
||||
class TestDetectLanguageFunction:
|
||||
"""Tests for the detect_language convenience function."""
|
||||
|
||||
def test_detect_language_python(self):
|
||||
"""Test detect_language function with Python."""
|
||||
result = detect_language("script.py", "def test(): pass")
|
||||
assert result == "python"
|
||||
|
||||
def test_detect_language_unknown(self):
|
||||
"""Test detect_language function with unknown type and no content."""
|
||||
result = detect_language("file.xyz", "")
|
||||
assert result == "text" or result is None
|
||||
|
||||
def test_detect_language_from_filename_only(self):
|
||||
"""Test detect_language with filename only."""
|
||||
result = detect_language("main.java")
|
||||
assert result == "java"
|
||||
|
||||
Reference in New Issue
Block a user