github.com/xzntrc/go-enry/v2@v2.0.0-20230215091818-766cc1d65498/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"]