Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Unified Diff: recipe_engine/third_party/setuptools/tests/test_egg_info.py

Issue 1344583003: Recipe package system. (Closed) Base URL: git@github.com:luci/recipes-py.git@master
Patch Set: Recompiled proto Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: recipe_engine/third_party/setuptools/tests/test_egg_info.py
diff --git a/recipe_engine/third_party/setuptools/tests/test_egg_info.py b/recipe_engine/third_party/setuptools/tests/test_egg_info.py
new file mode 100644
index 0000000000000000000000000000000000000000..e80684205f7f53155c41042f87aa812648ef53d8
--- /dev/null
+++ b/recipe_engine/third_party/setuptools/tests/test_egg_info.py
@@ -0,0 +1,268 @@
+
+import distutils.core
+import os
+import sys
+import tempfile
+import shutil
+import stat
+import unittest
+
+import pkg_resources
+import warnings
+from setuptools.command import egg_info
+from setuptools import svn_utils
+from setuptools.tests import environment, test_svn
+from setuptools.tests.py26compat import skipIf
+
+ENTRIES_V10 = pkg_resources.resource_string(__name__, 'entries-v10')
+"An entries file generated with svn 1.6.17 against the legacy Setuptools repo"
+
+
+class TestEggInfo(unittest.TestCase):
+
+ def setUp(self):
+ self.test_dir = tempfile.mkdtemp()
+ os.mkdir(os.path.join(self.test_dir, '.svn'))
+
+ self.old_cwd = os.getcwd()
+ os.chdir(self.test_dir)
+
+ def tearDown(self):
+ os.chdir(self.old_cwd)
+ shutil.rmtree(self.test_dir)
+
+ def _write_entries(self, entries):
+ fn = os.path.join(self.test_dir, '.svn', 'entries')
+ entries_f = open(fn, 'wb')
+ entries_f.write(entries)
+ entries_f.close()
+
+ def _create_project(self):
+ with open('setup.py', 'w') as f:
+ f.write('from setuptools import setup\n')
+ f.write('\n')
+ f.write('setup(\n')
+ f.write(" name='foo',\n")
+ f.write(" py_modules=['hello'],\n")
+ f.write(" entry_points={'console_scripts': ['hi = hello.run']},\n")
+ f.write(' zip_safe=False,\n')
+ f.write(' )\n')
+ with open('hello.py', 'w') as f:
+ f.write('def run():\n')
+ f.write(" print('hello')\n")
+
+ @skipIf(not test_svn._svn_check, "No SVN to text, in the first place")
+ def test_version_10_format(self):
+ """
+ """
+ #keeping this set for 1.6 is a good check on the get_svn_revision
+ #to ensure I return using svnversion what would had been returned
+ version_str = svn_utils.SvnInfo.get_svn_version()
+ version = [int(x) for x in version_str.split('.')[:2]]
+ if version != [1, 6]:
+ if hasattr(self, 'skipTest'):
+ self.skipTest('')
+ else:
+ sys.stderr.write('\n Skipping due to SVN Version\n')
+ return
+
+ self._write_entries(ENTRIES_V10)
+ rev = egg_info.egg_info.get_svn_revision()
+ self.assertEqual(rev, '89000')
+
+ def test_version_10_format_legacy_parser(self):
+ """
+ """
+ path_variable = None
+ for env in os.environ:
+ if env.lower() == 'path':
+ path_variable = env
+
+ if path_variable:
+ old_path = os.environ[path_variable]
+ os.environ[path_variable] = ''
+ #catch_warnings not available until py26
+ warning_filters = warnings.filters
+ warnings.filters = warning_filters[:]
+ try:
+ warnings.simplefilter("ignore", DeprecationWarning)
+ self._write_entries(ENTRIES_V10)
+ rev = egg_info.egg_info.get_svn_revision()
+ finally:
+ #restore the warning filters
+ warnings.filters = warning_filters
+ #restore the os path
+ if path_variable:
+ os.environ[path_variable] = old_path
+
+ self.assertEqual(rev, '89000')
+
+ def test_egg_base_installed_egg_info(self):
+ self._create_project()
+ temp_dir = tempfile.mkdtemp(prefix='setuptools-test.')
+ os.chmod(temp_dir, stat.S_IRWXU)
+ try:
+ paths = {}
+ for dirname in ['home', 'lib', 'scripts', 'data', 'egg-base']:
+ paths[dirname] = os.path.join(temp_dir, dirname)
+ os.mkdir(paths[dirname])
+ config = os.path.join(paths['home'], '.pydistutils.cfg')
+ with open(config, 'w') as f:
+ f.write('[egg_info]\n')
+ f.write('egg-base = %s\n' % paths['egg-base'])
+ environ = os.environ.copy()
+ environ['HOME'] = paths['home']
+ code, data = environment.run_setup_py(
+ cmd=[
+ 'install', '--home', paths['home'],
+ '--install-lib', paths['lib'],
+ '--install-scripts', paths['scripts'],
+ '--install-data', paths['data']],
+ pypath=os.pathsep.join([paths['lib'], self.old_cwd]),
+ data_stream=1,
+ env=environ)
+ if code:
+ raise AssertionError(data)
+ egg_info = None
+ for dirpath, dirnames, filenames in os.walk(paths['lib']):
+ if os.path.basename(dirpath) == 'EGG-INFO':
+ egg_info = sorted(filenames)
+ self.assertEqual(
+ egg_info,
+ ['PKG-INFO',
+ 'SOURCES.txt',
+ 'dependency_links.txt',
+ 'entry_points.txt',
+ 'not-zip-safe',
+ 'top_level.txt'])
+ finally:
+ shutil.rmtree(temp_dir)
+
+
+DUMMY_SOURCE_TXT = """CHANGES.txt
+CONTRIBUTORS.txt
+HISTORY.txt
+LICENSE
+MANIFEST.in
+README.txt
+setup.py
+dummy/__init__.py
+dummy/test.txt
+dummy.egg-info/PKG-INFO
+dummy.egg-info/SOURCES.txt
+dummy.egg-info/dependency_links.txt
+dummy.egg-info/top_level.txt"""
+
+
+class TestSvnDummy(environment.ZippedEnvironment):
+
+ def setUp(self):
+ version = svn_utils.SvnInfo.get_svn_version()
+ if not version: # None or Empty
+ return None
+
+ self.base_version = tuple([int(x) for x in version.split('.')][:2])
+
+ if not self.base_version:
+ raise ValueError('No SVN tools installed')
+ elif self.base_version < (1, 3):
+ raise ValueError('Insufficient SVN Version %s' % version)
+ elif self.base_version >= (1, 9):
+ #trying the latest version
+ self.base_version = (1, 8)
+
+ self.dataname = "dummy%i%i" % self.base_version
+ self.datafile = os.path.join('setuptools', 'tests',
+ 'svn_data', self.dataname + ".zip")
+ super(TestSvnDummy, self).setUp()
+
+ @skipIf(not test_svn._svn_check, "No SVN to text, in the first place")
+ def test_sources(self):
+ code, data = environment.run_setup_py(["sdist"],
+ pypath=self.old_cwd,
+ data_stream=1)
+ if code:
+ raise AssertionError(data)
+
+ sources = os.path.join('dummy.egg-info', 'SOURCES.txt')
+ infile = open(sources, 'r')
+ try:
+ read_contents = infile.read()
+ finally:
+ infile.close()
+ del infile
+
+ self.assertEqual(DUMMY_SOURCE_TXT, read_contents)
+
+ return data
+
+ @skipIf(not test_svn._svn_check, "No SVN to text, in the first place")
+ def test_svn_tags(self):
+ code, data = environment.run_setup_py(["egg_info",
+ "--tag-svn-revision"],
+ pypath=self.old_cwd,
+ data_stream=1)
+ if code:
+ raise AssertionError(data)
+
+ pkginfo = os.path.join('dummy.egg-info', 'PKG-INFO')
+ infile = open(pkginfo, 'r')
+ try:
+ read_contents = infile.readlines()
+ finally:
+ infile.close()
+ del infile
+
+ self.assertTrue("Version: 0.1.1.post1\n" in read_contents)
+
+ @skipIf(not test_svn._svn_check, "No SVN to text, in the first place")
+ def test_no_tags(self):
+ code, data = environment.run_setup_py(["egg_info"],
+ pypath=self.old_cwd,
+ data_stream=1)
+ if code:
+ raise AssertionError(data)
+
+ pkginfo = os.path.join('dummy.egg-info', 'PKG-INFO')
+ infile = open(pkginfo, 'r')
+ try:
+ read_contents = infile.readlines()
+ finally:
+ infile.close()
+ del infile
+
+ self.assertTrue("Version: 0.1.1\n" in read_contents)
+
+
+class TestSvnDummyLegacy(environment.ZippedEnvironment):
+
+ def setUp(self):
+ self.base_version = (1, 6)
+ self.dataname = "dummy%i%i" % self.base_version
+ self.datafile = os.path.join('setuptools', 'tests',
+ 'svn_data', self.dataname + ".zip")
+ super(TestSvnDummyLegacy, self).setUp()
+
+ def test_sources(self):
+ code, data = environment.run_setup_py(["sdist"],
+ pypath=self.old_cwd,
+ path="",
+ data_stream=1)
+ if code:
+ raise AssertionError(data)
+
+ sources = os.path.join('dummy.egg-info', 'SOURCES.txt')
+ infile = open(sources, 'r')
+ try:
+ read_contents = infile.read()
+ finally:
+ infile.close()
+ del infile
+
+ self.assertEqual(DUMMY_SOURCE_TXT, read_contents)
+
+ return data
+
+
+def test_suite():
+ return unittest.defaultTestLoader.loadTestsFromName(__name__)

Powered by Google App Engine
This is Rietveld 408576698