Index: recipe_engine/third_party/setuptools/tests/test_dist_info.py |
diff --git a/recipe_engine/third_party/setuptools/tests/test_dist_info.py b/recipe_engine/third_party/setuptools/tests/test_dist_info.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a8adb68c2dfc26b2c0ef3d1f4a8427b2c8f635f3 |
--- /dev/null |
+++ b/recipe_engine/third_party/setuptools/tests/test_dist_info.py |
@@ -0,0 +1,83 @@ |
+"""Test .dist-info style distributions. |
+""" |
+import os |
+import shutil |
+import tempfile |
+import unittest |
+import textwrap |
+ |
+try: |
+ import ast |
+except: |
+ pass |
+ |
+import pkg_resources |
+ |
+from setuptools.tests.py26compat import skipIf |
+ |
+def DALS(s): |
+ "dedent and left-strip" |
+ return textwrap.dedent(s).lstrip() |
+ |
+class TestDistInfo(unittest.TestCase): |
+ |
+ def test_distinfo(self): |
+ dists = {} |
+ for d in pkg_resources.find_distributions(self.tmpdir): |
+ dists[d.project_name] = d |
+ |
+ assert len(dists) == 2, dists |
+ |
+ unversioned = dists['UnversionedDistribution'] |
+ versioned = dists['VersionedDistribution'] |
+ |
+ assert versioned.version == '2.718' # from filename |
+ assert unversioned.version == '0.3' # from METADATA |
+ |
+ @skipIf('ast' not in globals(), |
+ "ast is used to test conditional dependencies (Python >= 2.6)") |
+ def test_conditional_dependencies(self): |
+ requires = [pkg_resources.Requirement.parse('splort==4'), |
+ pkg_resources.Requirement.parse('quux>=1.1')] |
+ |
+ for d in pkg_resources.find_distributions(self.tmpdir): |
+ self.assertEqual(d.requires(), requires[:1]) |
+ self.assertEqual(d.requires(extras=('baz',)), requires) |
+ self.assertEqual(d.extras, ['baz']) |
+ |
+ def setUp(self): |
+ self.tmpdir = tempfile.mkdtemp() |
+ versioned = os.path.join(self.tmpdir, |
+ 'VersionedDistribution-2.718.dist-info') |
+ os.mkdir(versioned) |
+ metadata_file = open(os.path.join(versioned, 'METADATA'), 'w+') |
+ try: |
+ metadata_file.write(DALS( |
+ """ |
+ Metadata-Version: 1.2 |
+ Name: VersionedDistribution |
+ Requires-Dist: splort (4) |
+ Provides-Extra: baz |
+ Requires-Dist: quux (>=1.1); extra == 'baz' |
+ """)) |
+ finally: |
+ metadata_file.close() |
+ unversioned = os.path.join(self.tmpdir, |
+ 'UnversionedDistribution.dist-info') |
+ os.mkdir(unversioned) |
+ metadata_file = open(os.path.join(unversioned, 'METADATA'), 'w+') |
+ try: |
+ metadata_file.write(DALS( |
+ """ |
+ Metadata-Version: 1.2 |
+ Name: UnversionedDistribution |
+ Version: 0.3 |
+ Requires-Dist: splort (==4) |
+ Provides-Extra: baz |
+ Requires-Dist: quux (>=1.1); extra == 'baz' |
+ """)) |
+ finally: |
+ metadata_file.close() |
+ |
+ def tearDown(self): |
+ shutil.rmtree(self.tmpdir) |