diff --git a/repo2readme/utils/detect_language.py b/repo2readme/utils/detect_language.py index 8f84621..0ba4003 100644 --- a/repo2readme/utils/detect_language.py +++ b/repo2readme/utils/detect_language.py @@ -29,6 +29,10 @@ ".css": "css", } -def detect_lang(path:str): - _,extension=os.path.splitext(path) - return EXTENSION_LANGUAGE_MAP.get(extension,"unknown") \ No newline at end of file +def detect_lang(path: str) -> str: + _, extension = os.path.splitext(path) + + if not extension and path.startswith("."): + extension = path + + return EXTENSION_LANGUAGE_MAP.get(extension.lower(), "unknown") \ No newline at end of file diff --git a/tests/test_detect_language.py b/tests/test_detect_language.py new file mode 100644 index 0000000..3aca1b6 --- /dev/null +++ b/tests/test_detect_language.py @@ -0,0 +1,21 @@ +from repo2readme.utils.detect_language import detect_lang + + +def test_detect_lang_with_extension_only(): + assert detect_lang(".py") == "python" + assert detect_lang(".js") == "javascript" + assert detect_lang(".cpp") == "cpp" + assert detect_lang(".md") == "markdown" + assert detect_lang(".json") == "json" + + +def test_detect_lang_with_path(): + assert detect_lang("main.py") == "python" + assert detect_lang("index.js") == "javascript" + assert detect_lang("src/config.yaml") == "yaml" + + +def test_detect_lang_unknown(): + assert detect_lang(".unknown") == "unknown" + assert detect_lang("README") == "unknown" + assert detect_lang(".txt") == "unknown" \ No newline at end of file