Skip to content

Commit 6074bfa

Browse files
committed
Merge branch 'techdebt' into 'master'
Pay down some tech debt See merge request python-devs/importlib_metadata!61
2 parents 6555208 + 01f4ffe commit 6074bfa

File tree

6 files changed

+57
-59
lines changed

6 files changed

+57
-59
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ qa:
1111

1212
tests:
1313
script:
14-
- tox -e py34-nocov,py35-nocov,py36-nocov,py37-nocov,py38-nocov
14+
- tox -e py27,py34,py35,py36,py37,py38
1515

1616
coverage:
1717
script:

importlib_metadata/_hooks.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import zipp
66
import itertools
77

8+
from .abc import DistributionFinder
89
from .api import Distribution
9-
from importlib_metadata.abc import DistributionFinder
1010

1111

1212
if sys.version_info >= (3,): # pragma: nocover

importlib_metadata/tests/test_api.py

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import re
22
import textwrap
33
import unittest
4-
import importlib_metadata
54

65
from . import fixtures
6+
from .. import (
7+
Distribution, PackageNotFoundError, __version__, distribution,
8+
entry_points, files, metadata, requires, version)
9+
from ..api import local_distribution
710

811
try:
912
from collections.abc import Iterator
@@ -25,49 +28,47 @@ class APITests(
2528
version_pattern = r'\d+\.\d+(\.\d)?'
2629

2730
def test_retrieves_version_of_self(self):
28-
version = importlib_metadata.version('egginfo-pkg')
29-
assert isinstance(version, text)
30-
assert re.match(self.version_pattern, version)
31+
pkg_version = version('egginfo-pkg')
32+
assert isinstance(pkg_version, text)
33+
assert re.match(self.version_pattern, pkg_version)
3134

3235
def test_retrieves_version_of_distinfo_pkg(self):
33-
version = importlib_metadata.version('distinfo-pkg')
34-
assert isinstance(version, text)
35-
assert re.match(self.version_pattern, version)
36+
pkg_version = version('distinfo-pkg')
37+
assert isinstance(pkg_version, text)
38+
assert re.match(self.version_pattern, pkg_version)
3639

3740
def test_for_name_does_not_exist(self):
38-
with self.assertRaises(importlib_metadata.PackageNotFoundError):
39-
importlib_metadata.distribution('does-not-exist')
41+
with self.assertRaises(PackageNotFoundError):
42+
distribution('does-not-exist')
4043

4144
def test_for_top_level(self):
42-
distribution = importlib_metadata.distribution('egginfo-pkg')
4345
self.assertEqual(
44-
distribution.read_text('top_level.txt').strip(),
46+
distribution('egginfo-pkg').read_text('top_level.txt').strip(),
4547
'mod')
4648

4749
def test_read_text(self):
4850
top_level = [
49-
path for path in importlib_metadata.files('egginfo-pkg')
51+
path for path in files('egginfo-pkg')
5052
if path.name == 'top_level.txt'
5153
][0]
5254
self.assertEqual(top_level.read_text(), 'mod\n')
5355

5456
def test_entry_points(self):
55-
entires = importlib_metadata.entry_points()['entries']
56-
entries = dict(entires)
57+
entries = dict(entry_points()['entries'])
5758
ep = entries['main']
5859
self.assertEqual(ep.value, 'mod:main')
5960
self.assertEqual(ep.extras, [])
6061

6162
def test_metadata_for_this_package(self):
62-
md = importlib_metadata.metadata('egginfo-pkg')
63+
md = metadata('egginfo-pkg')
6364
assert md['author'] == 'Steven Ma'
6465
assert md['LICENSE'] == 'Unknown'
6566
assert md['Name'] == 'egginfo-pkg'
6667
classifiers = md.get_all('Classifier')
6768
assert 'Topic :: Software Development :: Libraries' in classifiers
6869

6970
def test_importlib_metadata_version(self):
70-
assert re.match(self.version_pattern, importlib_metadata.__version__)
71+
assert re.match(self.version_pattern, __version__)
7172

7273
@staticmethod
7374
def _test_files(files_iter):
@@ -92,36 +93,35 @@ def test_file_hash_repr(self):
9293
assertRegex = self.assertRegexpMatches
9394

9495
util = [
95-
p for p in importlib_metadata.files('distinfo-pkg')
96+
p for p in files('distinfo-pkg')
9697
if p.name == 'mod.py'
9798
][0]
9899
assertRegex(
99100
repr(util.hash),
100101
'<FileHash mode: sha256 value: .*>')
101102

102103
def test_files_dist_info(self):
103-
self._test_files(importlib_metadata.files('distinfo-pkg'))
104+
self._test_files(files('distinfo-pkg'))
104105

105106
def test_files_egg_info(self):
106-
self._test_files(importlib_metadata.files('egginfo-pkg'))
107+
self._test_files(files('egginfo-pkg'))
107108

108109
def test_version_egg_info_file(self):
109-
version = importlib_metadata.version('egginfo-file')
110-
self.assertEqual(version, '0.1')
110+
self.assertEqual(version('egginfo-file'), '0.1')
111111

112112
def test_requires_egg_info_file(self):
113-
requirements = importlib_metadata.requires('egginfo-file')
113+
requirements = requires('egginfo-file')
114114
self.assertIsNone(requirements)
115115

116116
def test_requires(self):
117-
deps = importlib_metadata.requires('egginfo-pkg')
117+
deps = requires('egginfo-pkg')
118118
assert any(
119119
dep == 'wheel >= 1.0; python_version >= "2.7"'
120120
for dep in deps
121121
)
122122

123123
def test_requires_dist_info(self):
124-
deps = list(importlib_metadata.requires('distinfo-pkg'))
124+
deps = list(requires('distinfo-pkg'))
125125
assert deps and all(deps)
126126

127127
def test_more_complex_deps_requires_text(self):
@@ -138,10 +138,7 @@ def test_more_complex_deps_requires_text(self):
138138
[extra2:python_version < "3"]
139139
dep5
140140
""")
141-
deps = sorted(
142-
importlib_metadata.api.Distribution._deps_from_requires_text(
143-
requires)
144-
)
141+
deps = sorted(Distribution._deps_from_requires_text(requires))
145142
expected = [
146143
'dep1',
147144
'dep2',
@@ -158,5 +155,5 @@ def test_more_complex_deps_requires_text(self):
158155

159156
class LocalProjectTests(fixtures.LocalPackage, unittest.TestCase):
160157
def test_find_local(self):
161-
dist = importlib_metadata.api.local_distribution()
158+
dist = local_distribution()
162159
assert dist.metadata['Name'] == 'egginfo-pkg'

importlib_metadata/tests/test_main.py

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
import textwrap
66
import unittest
77
import importlib
8-
import importlib_metadata
98

109
from . import fixtures
11-
from importlib_metadata import _hooks
10+
from .. import (
11+
Distribution, PackageNotFoundError, _hooks, api, distributions,
12+
entry_points, metadata, version)
1213

1314
try:
1415
from builtins import str as text
@@ -20,16 +21,16 @@ class BasicTests(fixtures.DistInfoPkg, unittest.TestCase):
2021
version_pattern = r'\d+\.\d+(\.\d)?'
2122

2223
def test_retrieves_version_of_self(self):
23-
dist = importlib_metadata.Distribution.from_name('distinfo-pkg')
24+
dist = Distribution.from_name('distinfo-pkg')
2425
assert isinstance(dist.version, text)
2526
assert re.match(self.version_pattern, dist.version)
2627

2728
def test_for_name_does_not_exist(self):
28-
with self.assertRaises(importlib_metadata.PackageNotFoundError):
29-
importlib_metadata.Distribution.from_name('does-not-exist')
29+
with self.assertRaises(PackageNotFoundError):
30+
Distribution.from_name('does-not-exist')
3031

3132
def test_new_style_classes(self):
32-
self.assertIsInstance(importlib_metadata.Distribution, type)
33+
self.assertIsInstance(Distribution, type)
3334
self.assertIsInstance(_hooks.MetadataPathFinder, type)
3435
self.assertIsInstance(_hooks.WheelMetadataFinder, type)
3536
self.assertIsInstance(_hooks.WheelDistribution, type)
@@ -43,17 +44,17 @@ def test_import_nonexistent_module(self):
4344
importlib.import_module('does_not_exist')
4445

4546
def test_resolve(self):
46-
entries = dict(importlib_metadata.entry_points()['entries'])
47+
entries = dict(entry_points()['entries'])
4748
ep = entries['main']
4849
self.assertEqual(ep.load().__name__, "main")
4950

5051
def test_resolve_without_attr(self):
51-
ep = importlib_metadata.api.EntryPoint(
52+
ep = api.EntryPoint(
5253
name='ep',
5354
value='importlib_metadata.api',
5455
group='grp',
5556
)
56-
assert ep.load() is importlib_metadata.api
57+
assert ep.load() is api
5758

5859

5960
class NameNormalizationTests(fixtures.SiteDir, unittest.TestCase):
@@ -76,7 +77,7 @@ def test_dashes_in_dist_name_found_as_underscores(self):
7677
uses underscores in the name. Ensure the metadata loads.
7778
"""
7879
pkg_name = self.pkg_with_dashes(self.site_dir)
79-
assert importlib_metadata.version(pkg_name) == '1.0'
80+
assert version(pkg_name) == '1.0'
8081

8182
@staticmethod
8283
def pkg_with_mixed_case(site_dir):
@@ -96,9 +97,9 @@ def test_dist_name_found_as_any_case(self):
9697
Ensure the metadata loads when queried with any case.
9798
"""
9899
pkg_name = self.pkg_with_mixed_case(self.site_dir)
99-
assert importlib_metadata.version(pkg_name) == '1.0'
100-
assert importlib_metadata.version(pkg_name.lower()) == '1.0'
101-
assert importlib_metadata.version(pkg_name.upper()) == '1.0'
100+
assert version(pkg_name) == '1.0'
101+
assert version(pkg_name.lower()) == '1.0'
102+
assert version(pkg_name.upper()) == '1.0'
102103

103104

104105
class NonASCIITests(fixtures.SiteDir, unittest.TestCase):
@@ -134,22 +135,23 @@ def pkg_with_non_ascii_description_egg_info(site_dir):
134135

135136
def test_metadata_loads(self):
136137
pkg_name = self.pkg_with_non_ascii_description(self.site_dir)
137-
meta = importlib_metadata.metadata(pkg_name)
138+
meta = metadata(pkg_name)
138139
assert meta['Description'] == 'pôrˈtend'
139140

140141
def test_metadata_loads_egg_info(self):
141142
pkg_name = self.pkg_with_non_ascii_description_egg_info(self.site_dir)
142-
meta = importlib_metadata.metadata(pkg_name)
143+
meta = metadata(pkg_name)
143144
assert meta.get_payload() == 'pôrˈtend\n'
144145

145146

146-
class DiscoveryTests(fixtures.EggInfoPkg, fixtures.DistInfoPkg,
147+
class DiscoveryTests(fixtures.EggInfoPkg,
148+
fixtures.DistInfoPkg,
147149
unittest.TestCase):
148150

149151
def test_package_discovery(self):
150-
dists = list(importlib_metadata.api.distributions())
152+
dists = list(distributions())
151153
assert all(
152-
isinstance(dist, importlib_metadata.Distribution)
154+
isinstance(dist, Distribution)
153155
for dist in dists
154156
)
155157
assert any(

importlib_metadata/tests/test_zip.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import sys
22
import unittest
3-
import importlib_metadata
3+
4+
from .. import distribution, entry_points, files, version
45

56
try:
67
from importlib.resources import path
@@ -30,22 +31,20 @@ def setUp(self):
3031
self.resources.callback(sys.path.pop, 0)
3132

3233
def test_zip_version(self):
33-
self.assertEqual(importlib_metadata.version('example'), '21.12')
34+
self.assertEqual(version('example'), '21.12')
3435

3536
def test_zip_entry_points(self):
36-
scripts = dict(importlib_metadata.entry_points()['console_scripts'])
37+
scripts = dict(entry_points()['console_scripts'])
3738
entry_point = scripts['example']
3839
self.assertEqual(entry_point.value, 'example:main')
3940

4041
def test_missing_metadata(self):
41-
distribution = importlib_metadata.distribution('example')
42-
self.assertIsNone(distribution.read_text('does not exist'))
42+
self.assertIsNone(distribution('example').read_text('does not exist'))
4343

4444
def test_case_insensitive(self):
45-
self.assertEqual(importlib_metadata.version('Example'), '21.12')
45+
self.assertEqual(version('Example'), '21.12')
4646

4747
def test_files(self):
48-
files = importlib_metadata.files('example')
49-
for file in files:
48+
for file in files('example'):
5049
path = str(file.dist.locate_file(file))
5150
assert '.whl/' in path, path

tox.ini

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = {py27,py34,py35,py36,py37,py38}-{nocov,cov,diffcov},qa,docs
2+
envlist = {py27,py34,py35,py36,py37,py38}{,-cov,-diffcov},qa,docs
33
skip_missing_interpreters = True
44

55

@@ -10,7 +10,7 @@ skip_missing_interpreters = True
1010
install_command =
1111
python -c 'import subprocess, sys; pip_inst_cmd = sys.executable, "-m", "pip", "install"; subprocess.check_call(pip_inst_cmd + ("pip<19.1", )); subprocess.check_call(pip_inst_cmd + tuple(sys.argv[1:]))' {opts} {packages}
1212
commands =
13-
nocov: python -m unittest discover {posargs}
13+
!cov,!diffcov: python -m unittest discover {posargs}
1414
cov,diffcov: python -m coverage run {[coverage]rc} -m unittest discover {posargs}
1515
cov,diffcov: python -m coverage combine {[coverage]rc}
1616
cov: python -m coverage html {[coverage]rc}

0 commit comments

Comments
 (0)