test_blob_language_detection.py
file-level
1
files
1
commits
0
hotspots
0
🧊 dead
0
💥 blast risk
| 1 | """Unit tests for blob language detection (_detect_language in ui_blob.py). |
| 2 | |
| 3 | Covers: |
| 4 | _detect_language |
| 5 | - test_detects_toml_by_extension |
| 6 | - test_detects_python_by_extension |
| 7 | - test_detects_bash_by_sh_extension |
| 8 | - test_detects_bash_by_bats_extension |
| 9 | - test_detects_museattributes_as_toml |
| 10 | - test_detects_museignore_as_plaintext |
| 11 | - test_detects_muse_config_toml_as_toml |
| 12 | - test_unknown_extension_returns_empty |
| 13 | - test_no_extension_dotfile_without_mapping_returns_empty |
| 14 | """ |
| 15 | from __future__ import annotations |
| 16 | |
| 17 | import pytest |
| 18 | |
| 19 | from musehub.api.routes.musehub.ui_blob import _detect_language |
| 20 | |
| 21 | |
| 22 | class TestDetectLanguage: |
| 23 | def test_detects_toml_by_extension(self) -> None: |
| 24 | assert _detect_language("pyproject.toml") == "toml" |
| 25 | |
| 26 | def test_detects_python_by_extension(self) -> None: |
| 27 | assert _detect_language("main.py") == "python" |
| 28 | |
| 29 | def test_detects_bash_by_sh_extension(self) -> None: |
| 30 | assert _detect_language("install.sh") == "bash" |
| 31 | |
| 32 | def test_detects_bash_by_bats_extension(self) -> None: |
| 33 | assert _detect_language("tests/test_plugin.bats") == "bash" |
| 34 | |
| 35 | def test_detects_museattributes_as_toml(self) -> None: |
| 36 | assert _detect_language(".museattributes") == "toml" |
| 37 | |
| 38 | def test_detects_museignore_as_toml(self) -> None: |
| 39 | assert _detect_language(".museignore") == "toml" |
| 40 | |
| 41 | def test_detects_nested_museattributes_as_toml(self) -> None: |
| 42 | assert _detect_language("subdir/.museattributes") == "toml" |
| 43 | |
| 44 | def test_detects_muse_config_toml_as_toml(self) -> None: |
| 45 | assert _detect_language(".muse/code_config.toml") == "toml" |
| 46 | |
| 47 | def test_detects_zsh_completion_root(self) -> None: |
| 48 | assert _detect_language("_muse") == "bash" |
| 49 | |
| 50 | def test_detects_zsh_completion_nested(self) -> None: |
| 51 | assert _detect_language("completions/_muse") == "bash" |
| 52 | |
| 53 | def test_detects_zsh_completion_generic(self) -> None: |
| 54 | assert _detect_language("_git") == "bash" |
| 55 | |
| 56 | def test_unknown_extension_returns_empty(self) -> None: |
| 57 | assert _detect_language("data.bin") == "" |
| 58 | |
| 59 | def test_no_extension_unknown_dotfile_returns_empty(self) -> None: |
| 60 | assert _detect_language(".somethingelse") == "" |