awips2/pythonPackages/nose/unit_tests/test_config.py

142 lines
4.4 KiB
Python
Raw Normal View History

2017-03-14 15:05:59 -05:00
import re
import os
import tempfile
import unittest
import warnings
import pickle
import sys
import nose.config
from nose.plugins.manager import DefaultPluginManager
from nose.plugins.skip import SkipTest
from nose.plugins.prof import Profile
class TestNoseConfig(unittest.TestCase):
def test_defaults(self):
c = nose.config.Config()
assert c.addPaths == True
# FIXME etc
def test_reset(self):
c = nose.config.Config()
c.include = 'include'
assert c.include == 'include'
c.reset()
assert c.include is None
def test_update(self):
c = nose.config.Config()
c.update({'exclude':'x'})
assert c.exclude == 'x'
def test_ignore_files_default(self):
"""
The default configuration should have several ignore file settings.
"""
c = nose.config.Config()
c.configure(['program'])
self.assertEqual(len(c.ignoreFiles), 3)
def test_ignore_files_single(self):
"""A single ignore-files flag should override the default settings."""
c = nose.config.Config()
c.configure(['program', '--ignore-files=a'])
self.assertEqual(len(c.ignoreFiles), 1)
aMatcher = c.ignoreFiles[0]
assert aMatcher.match('a')
assert not aMatcher.match('b')
def test_ignore_files_multiple(self):
"""
Multiple ignore-files flags should be appended together, overriding
the default settings.
"""
c = nose.config.Config()
c.configure(['program', '--ignore-files=a', '-Ib'])
self.assertEqual(len(c.ignoreFiles), 2)
aMatcher, bMatcher = c.ignoreFiles
assert aMatcher.match('a')
assert not aMatcher.match('b')
assert bMatcher.match('b')
assert not bMatcher.match('a')
def test_multiple_include(self):
c = nose.config.Config()
c.configure(['program', '--include=a', '--include=b'])
self.assertEqual(len(c.include), 2)
a, b = c.include
assert a.match('a')
assert not a.match('b')
assert b.match('b')
assert not b.match('a')
def test_single_include(self):
c = nose.config.Config()
c.configure(['program', '--include=b'])
self.assertEqual(len(c.include), 1)
b = c.include[0]
assert b.match('b')
assert not b.match('a')
def test_plugins(self):
c = nose.config.Config()
assert c.plugins
c.plugins.begin()
def test_testnames(self):
c = nose.config.Config()
c.configure(['program', 'foo', 'bar', 'baz.buz.biz'])
self.assertEqual(c.testNames, ['foo', 'bar', 'baz.buz.biz'])
c = nose.config.Config(testNames=['foo'])
c.configure([])
self.assertEqual(c.testNames, ['foo'])
def test_where(self):
# we don't need to see our own warnings
warnings.filterwarnings(action='ignore',
category=DeprecationWarning,
module='nose.config')
here = os.path.dirname(__file__)
support = os.path.join(here, 'support')
foo = os.path.abspath(os.path.join(support, 'foo'))
c = nose.config.Config()
c.configure(['program', '-w', foo, '-w', 'bar'])
self.assertEqual(c.workingDir, foo)
self.assertEqual(c.testNames, ['bar'])
def test_progname_looks_like_option(self):
# issue #184
c = nose.config.Config()
# the -v here is the program name, not an option
# this matters eg. with python -c "import nose; nose.main()"
c.configure(['-v', 'mytests'])
self.assertEqual(c.verbosity, 1)
def test_pickle_empty(self):
c = nose.config.Config()
cp = pickle.dumps(c)
cc = pickle.loads(cp)
def test_pickle_configured(self):
if 'java' in sys.version.lower():
raise SkipTest("jython has no profiler plugin")
c = nose.config.Config(plugins=DefaultPluginManager())
config_args = ['--with-doctest', '--with-coverage',
'--with-id', '--attr=A', '--collect', '--all',
'--with-isolation', '-d', '--with-xunit', '--processes=2',
'--pdb']
if Profile.available():
config_args.append('--with-profile')
c.configure(config_args)
cp = pickle.dumps(c)
cc = pickle.loads(cp)
assert cc.plugins._plugins
if __name__ == '__main__':
unittest.main()