QGIS/python/ext-libs/nose2/tests/functional/test_eggdiscovery_loader.py

70 lines
2.9 KiB
Python
Raw Normal View History

import sys
from nose2.tests._common import FunctionalTestCase, support_file
import nose2.plugins.loader.eggdiscovery #@UnusedImport This is not very elegant, but it allows eggdiscovery to be found in Travis (or when run with PYTHONPATH=.)
try:
import pkg_resources
except ImportError:
pkg_resources = None
else:
class EggDiscoveryFunctionalTest(FunctionalTestCase):
def setUp(self):
for m in [m for m in sys.modules if m.startswith('pkgegg')]:
del sys.modules[m]
self.egg_path = support_file('scenario/tests_in_zipped_eggs/pkgegg-0.0.0-py2.7.egg')
sys.path.append(self.egg_path)
def tearDown(self):
if self.egg_path in sys.path:
sys.path.remove(self.egg_path)
for m in [m for m in sys.modules if m.startswith('pkgegg')]:
del sys.modules[m]
def test_non_egg_discoverer_does_not_fail_when_looking_in_egg(self):
proc = self.runIn(
'scenario/tests_in_zipped_eggs',
'-v',
'pkgegg')
self.assertTestRunOutputMatches(proc, stderr='Ran 0 tests in')
def test_can_discover_test_modules_in_zipped_eggs(self):
proc = self.runIn(
'scenario/tests_in_zipped_eggs',
'-v',
'--plugin=nose2.plugins.loader.eggdiscovery',
'pkgegg')
self.assertTestRunOutputMatches(proc, stderr='FAILED \(failures=5, errors=1, skipped=1\)')
def test_eggdiscovery_failure_does_not_exist(self):
proc = self.runIn(
'scenario',
'-v',
'--plugin=nose2.plugins.loader.eggdiscovery',
'--exclude-plugin=nose2.plugins.loader.discovery',
'-s',
'tests_in_zipped_eggs_BAD')
self.assertTestRunOutputMatches(proc, stderr='tests_in_zipped_eggs_BAD does not exist')
class UnzippedEggDiscoveryFunctionalTest(FunctionalTestCase):
def setUp(self):
for m in [m for m in sys.modules if m.startswith('pkgegg')]:
del sys.modules[m]
self.egg_path = support_file('scenario/tests_in_unzipped_eggs/pkgunegg-0.0.0-py2.7.egg')
sys.path.append(self.egg_path)
def tearDown(self):
if self.egg_path in sys.path:
sys.path.remove(self.egg_path)
for m in [m for m in sys.modules if m.startswith('pkgunegg')]:
del sys.modules[m]
def test_eggdiscovery_ignores_unzipped_eggs(self):
proc = self.runIn(
'scenario/tests_in_unzipped_eggs',
'-v',
'--plugin=nose2.plugins.loader.eggdiscovery',
'pkgunegg')
self.assertTestRunOutputMatches(proc, stderr='FAILED \(failures=5, errors=1, skipped=1\)')