gitlab.com/thomasboni/go-enry/v2@v2.8.3-0.20220418031202-30b0d7a3de98/python/tests/test_enry.py (about) 1 from enry import * 2 3 import pytest 4 5 6 @pytest.mark.parametrize("filename,content,language", [ 7 ("test.py", "import os", "Python"), 8 ("", "#!/usr/bin/bash", "Shell"), 9 ("test.hs", "", "Haskell"), 10 ]) 11 def test_get_language(filename: str, content: str, language: str): 12 assert get_language(filename, content.encode()) == language 13 14 15 def test_get_language_by_filename(): 16 assert get_language_by_filename("pom.xml").language == "Maven POM" 17 18 19 def test_get_language_by_content(): 20 assert get_language_by_content("test.php", "<?php $foo = bar();".encode()).language == "PHP" 21 22 23 def test_get_language_by_emacs_modeline(): 24 modeline = "// -*- font:bar;mode:c++ -*-\ntemplate <typename X> class { X i; };" 25 assert get_language_by_emacs_modeline(modeline.encode()).language == "C++" 26 27 28 def test_get_language_by_vim_modeline(): 29 modeline = "# vim: noexpandtab: ft=javascript" 30 assert get_language_by_vim_modeline(modeline.encode()).language == "JavaScript" 31 32 33 @pytest.mark.parametrize("modeline,language", [ 34 ("// -*- font:bar;mode:c++ -*-\ntemplate <typename X> class { X i; };", "C++"), 35 ("# vim: noexpandtab: ft=javascript", "JavaScript") 36 ]) 37 def test_get_language_by_modeline(modeline: str, language: str): 38 assert get_language_by_modeline(modeline.encode()).language == language 39 40 41 def test_get_language_by_extension(): 42 assert get_language_by_extension("test.lisp").language == "Common Lisp" 43 44 45 def test_get_language_by_shebang(): 46 assert get_language_by_shebang("#!/usr/bin/python3".encode()).language == "Python" 47 48 49 def test_get_mime_type(): 50 assert get_mime_type("test.rb", "Ruby") == "text/x-ruby" 51 52 53 def test_is_binary(): 54 assert is_binary("println!('Hello world!\n');".encode()) == False 55 56 57 @pytest.mark.parametrize("path,is_documentation_actual", [ 58 ("sss/documentation/", True), 59 ("docs/", True), 60 ("test/", False), 61 ]) 62 def test_is_documentation(path: str, is_documentation_actual: bool): 63 assert is_documentation(path) == is_documentation_actual 64 65 66 @pytest.mark.parametrize("path,is_dot_actual", [ 67 (".env", True), 68 ("something.py", False), 69 ]) 70 def test_is_dot(path: str, is_dot_actual: bool): 71 assert is_dot_file(path) == is_dot_actual 72 73 74 @pytest.mark.parametrize("path,is_config_actual", [ 75 ("configuration.yml", True), 76 ("some_code.py", False), 77 ]) 78 def test_is_configuration(path: str, is_config_actual: bool): 79 assert is_configuration(path) == is_config_actual 80 81 82 @pytest.mark.parametrize("path,is_image_actual", [ 83 ("nsfw.jpg", True), 84 ("shrek-picture.png", True), 85 ("openjdk-1000.parquet", False), 86 ]) 87 def test_is_image(path: str, is_image_actual: bool): 88 assert is_image(path) == is_image_actual 89 90 91 def test_get_color(): 92 assert get_color("Go") == "#00ADD8" 93 94 95 def test_get_languages(): 96 assert get_languages("test.py", "import os".encode()) 97 98 99 def test_get_language_extensions(): 100 assert get_language_extensions("Python") == [".py", ".cgi", ".fcgi", ".gyp", ".gypi", ".lmi", ".py3", ".pyde", 101 ".pyi", ".pyp", ".pyt", ".pyw", ".rpy", ".smk", ".spec", ".tac", 102 ".wsgi", ".xpy"]