generated from tweag/project
-
Notifications
You must be signed in to change notification settings - Fork 11
/
test_map_dep_name_to_import_names.py
41 lines (36 loc) · 1.33 KB
/
test_map_dep_name_to_import_names.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
"""Test the mapping of dependency names to import names."""
import pytest
from fawltydeps.check import find_import_names_from_package_name
# TODO: These tests are not fully isolated, i.e. they do not control the
# virtualenv in which they run. For now, we assume that we are running in an
# environment where at least these packages are available:
# - setuptools (provides multiple names, including pkg_resources)
# - pip (provides a single name: pip)
# - isort (provides no top_level.txt, but 'isort' import name can be inferred)
@pytest.mark.parametrize(
"dep_name,expect_import_names",
[
pytest.param(
"NOT_A_PACKAGE",
None,
id="missing_package__returns_None",
),
pytest.param(
"isort",
["isort"],
id="missing_top_level_txt__can_still_infer_import_name",
),
pytest.param(
"pip",
["pip"],
id="top_level_txt_w_one_entry__returns_entry",
),
pytest.param(
"setuptools",
["_distutils_hack", "pkg_resources", "setuptools"],
id="top_level_txt_w_many_entries__returns_all_entries",
),
],
)
def test_find_import_names_from_package_name(dep_name, expect_import_names):
assert find_import_names_from_package_name(dep_name) == expect_import_names