Updated script that can be controled by Nodejs web app
This commit is contained in:
173
lib/python3.13/site-packages/setuptools/tests/test_egg_info.py
Normal file
173
lib/python3.13/site-packages/setuptools/tests/test_egg_info.py
Normal file
@@ -0,0 +1,173 @@
|
||||
|
||||
import os
|
||||
import sys
|
||||
import tempfile
|
||||
import shutil
|
||||
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()
|
||||
|
||||
@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')
|
||||
|
||||
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
|
||||
|
||||
|
||||
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__)
|
||||
Reference in New Issue
Block a user