17db96d56Sopenharmony_ciimport sys
27db96d56Sopenharmony_ciimport unittest
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_cifrom . import fixtures
57db96d56Sopenharmony_cifrom importlib.metadata import (
67db96d56Sopenharmony_ci    PackageNotFoundError,
77db96d56Sopenharmony_ci    distribution,
87db96d56Sopenharmony_ci    distributions,
97db96d56Sopenharmony_ci    entry_points,
107db96d56Sopenharmony_ci    files,
117db96d56Sopenharmony_ci    version,
127db96d56Sopenharmony_ci)
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ciclass TestZip(fixtures.ZipFixtures, unittest.TestCase):
167db96d56Sopenharmony_ci    def setUp(self):
177db96d56Sopenharmony_ci        super().setUp()
187db96d56Sopenharmony_ci        self._fixture_on_path('example-21.12-py3-none-any.whl')
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci    def test_zip_version(self):
217db96d56Sopenharmony_ci        self.assertEqual(version('example'), '21.12')
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci    def test_zip_version_does_not_match(self):
247db96d56Sopenharmony_ci        with self.assertRaises(PackageNotFoundError):
257db96d56Sopenharmony_ci            version('definitely-not-installed')
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci    def test_zip_entry_points(self):
287db96d56Sopenharmony_ci        scripts = entry_points(group='console_scripts')
297db96d56Sopenharmony_ci        entry_point = scripts['example']
307db96d56Sopenharmony_ci        self.assertEqual(entry_point.value, 'example:main')
317db96d56Sopenharmony_ci        entry_point = scripts['Example']
327db96d56Sopenharmony_ci        self.assertEqual(entry_point.value, 'example:main')
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ci    def test_missing_metadata(self):
357db96d56Sopenharmony_ci        self.assertIsNone(distribution('example').read_text('does not exist'))
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ci    def test_case_insensitive(self):
387db96d56Sopenharmony_ci        self.assertEqual(version('Example'), '21.12')
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci    def test_files(self):
417db96d56Sopenharmony_ci        for file in files('example'):
427db96d56Sopenharmony_ci            path = str(file.dist.locate_file(file))
437db96d56Sopenharmony_ci            assert '.whl/' in path, path
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci    def test_one_distribution(self):
467db96d56Sopenharmony_ci        dists = list(distributions(path=sys.path[:1]))
477db96d56Sopenharmony_ci        assert len(dists) == 1
487db96d56Sopenharmony_ci
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ciclass TestEgg(TestZip):
517db96d56Sopenharmony_ci    def setUp(self):
527db96d56Sopenharmony_ci        super().setUp()
537db96d56Sopenharmony_ci        self._fixture_on_path('example-21.12-py3.6.egg')
547db96d56Sopenharmony_ci
557db96d56Sopenharmony_ci    def test_files(self):
567db96d56Sopenharmony_ci        for file in files('example'):
577db96d56Sopenharmony_ci            path = str(file.dist.locate_file(file))
587db96d56Sopenharmony_ci            assert '.egg/' in path, path
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_ci    def test_normalized_name(self):
617db96d56Sopenharmony_ci        dist = distribution('example')
627db96d56Sopenharmony_ci        assert dist._normalized_name == 'example'
63