/unit_tests/test_config.py
https://bitbucket.org/jpellerin/nose/ · Python · 141 lines · 107 code · 21 blank · 13 comment · 3 complexity · fa917af21eac9bf5fb3685f00e41f931 MD5 · raw file
- 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()