awips2/pythonPackages/nose/unit_tests/test_config.py
2017-03-14 15:05:59 -05:00

141 lines
4.4 KiB
Python

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()