Apply changes from importlib_metadata 0.11

This commit is contained in:
Jason R. Coombs 2019-05-10 09:11:01 -04:00
parent 071cbd4ea1
commit 21eaaf47ac
8 changed files with 73 additions and 151 deletions

View file

@ -1,33 +1,31 @@
# coding: utf-8
from __future__ import unicode_literals
import re
import textwrap
import unittest
import importlib
import importlib.metadata
from . import fixtures
from importlib.metadata import _hooks
from importlib.metadata import (
Distribution, PackageNotFoundError, _hooks, api, distributions,
entry_points, metadata, version)
class BasicTests(fixtures.DistInfoPkg, unittest.TestCase):
version_pattern = r'\d+\.\d+(\.\d)?'
def test_retrieves_version_of_self(self):
dist = importlib.metadata.Distribution.from_name('distinfo-pkg')
dist = Distribution.from_name('distinfo-pkg')
assert isinstance(dist.version, str)
assert re.match(self.version_pattern, dist.version)
def test_for_name_does_not_exist(self):
with self.assertRaises(importlib.metadata.PackageNotFoundError):
importlib.metadata.Distribution.from_name('does-not-exist')
with self.assertRaises(PackageNotFoundError):
Distribution.from_name('does-not-exist')
def test_new_style_classes(self):
self.assertIsInstance(importlib.metadata.Distribution, type)
self.assertIsInstance(Distribution, type)
self.assertIsInstance(_hooks.MetadataPathFinder, type)
self.assertIsInstance(_hooks.WheelMetadataFinder, type)
self.assertIsInstance(_hooks.WheelDistribution, type)
class ImportTests(fixtures.DistInfoPkg, unittest.TestCase):
@ -38,17 +36,17 @@ class ImportTests(fixtures.DistInfoPkg, unittest.TestCase):
importlib.import_module('does_not_exist')
def test_resolve(self):
entries = dict(importlib.metadata.entry_points()['entries'])
entries = dict(entry_points()['entries'])
ep = entries['main']
self.assertEqual(ep.load().__name__, "main")
def test_resolve_without_attr(self):
ep = importlib.metadata.api.EntryPoint(
ep = api.EntryPoint(
name='ep',
value='importlib.metadata.api',
group='grp',
)
assert ep.load() is importlib.metadata.api
assert ep.load() is api
class NameNormalizationTests(fixtures.SiteDir, unittest.TestCase):
@ -71,7 +69,7 @@ class NameNormalizationTests(fixtures.SiteDir, unittest.TestCase):
uses underscores in the name. Ensure the metadata loads.
"""
pkg_name = self.pkg_with_dashes(self.site_dir)
assert importlib.metadata.version(pkg_name) == '1.0'
assert version(pkg_name) == '1.0'
@staticmethod
def pkg_with_mixed_case(site_dir):
@ -91,9 +89,9 @@ class NameNormalizationTests(fixtures.SiteDir, unittest.TestCase):
Ensure the metadata loads when queried with any case.
"""
pkg_name = self.pkg_with_mixed_case(self.site_dir)
assert importlib.metadata.version(pkg_name) == '1.0'
assert importlib.metadata.version(pkg_name.lower()) == '1.0'
assert importlib.metadata.version(pkg_name.upper()) == '1.0'
assert version(pkg_name) == '1.0'
assert version(pkg_name.lower()) == '1.0'
assert version(pkg_name.upper()) == '1.0'
class NonASCIITests(fixtures.SiteDir, unittest.TestCase):
@ -129,22 +127,23 @@ class NonASCIITests(fixtures.SiteDir, unittest.TestCase):
def test_metadata_loads(self):
pkg_name = self.pkg_with_non_ascii_description(self.site_dir)
meta = importlib.metadata.metadata(pkg_name)
meta = metadata(pkg_name)
assert meta['Description'] == 'pôrˈtend'
def test_metadata_loads_egg_info(self):
pkg_name = self.pkg_with_non_ascii_description_egg_info(self.site_dir)
meta = importlib.metadata.metadata(pkg_name)
meta = metadata(pkg_name)
assert meta.get_payload() == 'pôrˈtend\n'
class DiscoveryTests(fixtures.EggInfoPkg, fixtures.DistInfoPkg,
class DiscoveryTests(fixtures.EggInfoPkg,
fixtures.DistInfoPkg,
unittest.TestCase):
def test_package_discovery(self):
dists = list(importlib.metadata.api.distributions())
dists = list(distributions())
assert all(
isinstance(dist, importlib.metadata.Distribution)
isinstance(dist, Distribution)
for dist in dists
)
assert any(