Skip to content

Commit

Permalink
dev-python/distlib: Fix varios test failures
Browse files Browse the repository at this point in the history
  • Loading branch information
jlec committed Dec 28, 2015
1 parent 2a39110 commit 36591fe
Show file tree
Hide file tree
Showing 2 changed files with 121 additions and 3 deletions.
11 changes: 8 additions & 3 deletions dev-python/distlib/distlib-0.2.1-r1.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ IUSE=""

PATCHES=(
"${FILESDIR}"/${P}-unbundle.patch
"${FILESDIR}"/${P}-online.patch
)

python_prepare_all() {
Expand All @@ -29,20 +30,24 @@ python_prepare_all() {
tests/test_shutil.py* \
tests/test_sysconfig.py* || die

distutils-r1_python_prepare_all

# Broken tests
# 1 fails due to it being sensitive to dictionary ordering
# inconsistency between code and test
sed \
-e 's:test_dependency_finder:_&:g' \
-e 's:test_abi:_&:g' \
-i tests/*py || die

distutils-r1_python_prepare_all
# Gentoo still doesn't report correct ABI
sed \
-e 's:test_abi:_&:g' \
-i tests/*py || die
}

python_test() {
sed \
-e '/PIP_AVAILABLE/s:True:False:g' \
-i tests/*py || die
PYTHONHASHSEED=0 esetup.py test
SKIP_ONLINE=True PYTHONHASHSEED=0 esetup.py test
}
113 changes: 113 additions & 0 deletions dev-python/distlib/files/distlib-0.2.1-online.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
tests/test_index.py | 1 +
tests/test_locators.py | 10 ++++++++++
tests/test_util.py | 1 +
3 files changed, 12 insertions(+)

diff --git a/tests/test_index.py b/tests/test_index.py
index a188816..dbef670 100644
--- a/tests/test_index.py
+++ b/tests/test_index.py
@@ -290,6 +290,7 @@ class PackageIndexTestCase(unittest.TestCase):
self.assertRaises(DistlibException, self.index.download_file, url, fn,
digest[:-1] + '8')

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_search(self):
self.index = PackageIndex()
result = self.index.search({'name': 'tatterdema'})
diff --git a/tests/test_locators.py b/tests/test_locators.py
index de97541..436ea9d 100644
--- a/tests/test_locators.py
+++ b/tests/test_locators.py
@@ -29,6 +29,7 @@ PYPI_WEB_HOST = os.environ.get('PYPI_WEB_HOST', 'https://pypi.python.org/simple/
class LocatorTestCase(unittest.TestCase):

@unittest.skipIf('SKIP_SLOW' in os.environ, 'Skipping slow test')
+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_xmlrpc(self):
locator = PyPIRPCLocator(PYPI_RPC_HOST)
try:
@@ -53,6 +54,7 @@ class LocatorTestCase(unittest.TestCase):
self.assertGreater(len(names), 25000)

@unittest.skipIf('SKIP_SLOW' in os.environ, 'Skipping slow test')
+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_json(self):
locator = PyPIJSONLocator(PYPI_RPC_HOST)
result = locator.get_project('sarge')
@@ -69,6 +71,7 @@ class LocatorTestCase(unittest.TestCase):
self.assertRaises(NotImplementedError, locator.get_distribution_names)

@unittest.skipIf('SKIP_SLOW' in os.environ, 'Skipping slow test')
+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_scraper(self):
locator = SimpleScrapingLocator('https://pypi.python.org/simple/')
for name in ('sarge', 'Sarge'):
@@ -88,6 +91,7 @@ class LocatorTestCase(unittest.TestCase):
self.assertGreater(len(names), 25000)

@unittest.skipIf('SKIP_SLOW' in os.environ, 'Skipping slow test')
+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_unicode_project_name(self):
# Just checking to see that no exceptions are raised.
NAME = '\u2603'
@@ -166,6 +170,7 @@ class LocatorTestCase(unittest.TestCase):
sys.path.pop(0)

@unittest.skipIf('SKIP_SLOW' in os.environ, 'Skipping slow test')
+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_aggregation(self):
d = os.path.join(HERE, 'fake_archives')
loc1 = DirectoryLocator(d)
@@ -201,6 +206,7 @@ class LocatorTestCase(unittest.TestCase):
n2 = loc2.get_distribution_names()
self.assertEqual(locator.get_distribution_names(), n1 | n2)

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_dependency_finder(self):
locator = AggregatingLocator(
JSONLocator(),
@@ -280,6 +286,7 @@ class LocatorTestCase(unittest.TestCase):
for url1, url2 in cases:
self.assertEqual(default_locator.prefer_url(url1, url2), url1)

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_prereleases(self):
locator = AggregatingLocator(
JSONLocator(),
@@ -308,6 +315,7 @@ class LocatorTestCase(unittest.TestCase):
self.assertEqual(dists, set([actual[0], dist]))
self.assertFalse(problems)

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_dist_reqts(self):
r = 'config (<=0.3.5)'
dist = default_locator.locate(r)
@@ -316,6 +324,7 @@ class LocatorTestCase(unittest.TestCase):
self.assertTrue(dist.matches_requirement(r))
self.assertFalse(dist.matches_requirement('config (0.3.6)'))

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_dist_reqts_extras(self):
r = 'config[doc,test](<=0.3.5)'
dist = default_locator.locate(r)
@@ -323,6 +332,7 @@ class LocatorTestCase(unittest.TestCase):
self.assertTrue(dist.matches_requirement(r))
self.assertEqual(dist.extras, ['doc', 'test'])

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_all(self):
d = default_locator.get_project('setuptools')
self.assertTrue('urls' in d)
diff --git a/tests/test_util.py b/tests/test_util.py
index 1b615d7..2908eee 100644
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -461,6 +461,7 @@ class UtilTestCase(unittest.TestCase):
self.assertFalse(is_string_sequence(['a', 'b', None]))
self.assertRaises(AssertionError, is_string_sequence, [])

+ @unittest.skipIf('SKIP_ONLINE' in os.environ, 'Skipping online tests')
def test_package_data(self):
data = get_package_data(name='config', version='0.3.6')
self.assertTrue(data)

0 comments on commit 36591fe

Please sign in to comment.