def test_suite(): suite = LayeredDocFileSuite( [], layer=BaseLayer) suite.addTest(doctest.DocTestSuite( testing, optionflags=NORMALIZE_WHITESPACE|ELLIPSIS)) return suite
def test_stdout_logging(self): """LayeredDocFileSuite handles logging.""" base = os.path.basename(self.tempdir) self.makeTestFile( 'foo.txt', """ >>> import logging >>> logging.info("An info message (not printed)") >>> logging.warning("A warning message") WARNING:root:A warning message """) # Create a suite with logging turned on. suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt'), stdout_logging=True, stdout_logging_level=logging.WARNING) self.runSuite(suite) # And one with it turned off. self.makeTestFile( 'foo.txt', """ >>> import logging >>> logging.info("An info message (not printed)") >>> logging.warning("A warning message") """) suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt'), stdout_logging=False, stdout_logging_level=logging.WARNING) self.runSuite(suite)
def test_set_layer(self): """A layer can be applied to the created tests.""" self.makeTestFile('foo.txt') base = os.path.basename(self.tempdir) # By default, no layer is applied to the suite. suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt')) self.assertFalse(hasattr(suite, 'layer')) # But if one is passed as a keyword argument, it is applied: suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt'), layer='some layer') self.assertEqual(suite.layer, 'some layer')
def test_optionflags(self): """A default set of option flags are applied to doc tests.""" self.makeTestFile('foo.txt') base = os.path.basename(self.tempdir) suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt')) [foo_test] = list(suite) self.assertEqual(foo_test._dt_optionflags, default_optionflags) # If the optionflags argument is passed, it takes precedence: suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt'), optionflags=doctest.ELLIPSIS) [foo_test] = list(suite) self.assertEqual(foo_test._dt_optionflags, doctest.ELLIPSIS)
def test_suite(): suite = unittest.TestSuite() test = LayeredDocFileSuite( 'validation.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer) suite.addTest(test) return suite
def test_suite(): """Load doctests in this directory. Use `LayeredDocFileSuite` with the custom `setUp` and tearDown`, suppressed logging messages (only warnings and errors will be posted) on `LaunchpadZopelessLayer`. """ suite = unittest.TestSuite() tests_dir = os.path.dirname(os.path.realpath(__file__)) docs_dir = tests_dir + "/../doc" # Add special tests that do not use the default buildmaster setup # and teardown. for key in sorted(special): suite.addTest(special[key]) # Add tests using the default buildmaster setup and teardown. filenames = [ filename for filename in os.listdir(docs_dir) if filename.lower().endswith('.txt') and filename not in special ] for filename in sorted(filenames): test = LayeredDocFileSuite( "../doc/" + filename, setUp=buildmasterSetUp, tearDown=buildmasterTearDown, stdout_logging_level=logging.WARNING, layer=LaunchpadZopelessLayer) suite.addTest(test) return suite
def test_suite(): suite = unittest.TestSuite() # Add special needs tests for key in sorted(special): special_suite = special[key] suite.addTest(special_suite) testsdir = os.path.abspath( os.path.normpath(os.path.join(here, '..', 'doc'))) # Add tests using default setup/teardown # Sort the list to give a predictable order. We do this because when # tests interfere with each other, the varying orderings that os.listdir # gives on different people's systems make reproducing and debugging # problems difficult. Ideally the test harness would stop the tests from # being able to interfere with each other in the first place. # -- Andrew Bennetts, 2005-03-01. filenames = sorted(filename for filename in os.listdir(testsdir) if ( os.path.splitext(filename)[1] == '.txt' and filename not in special)) for filename in filenames: path = os.path.join('../doc/', filename) one_test = LayeredDocFileSuite(path, setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer, stdout_logging_level=logging.WARNING) suite.addTest(one_test) return suite
def PageTestSuite(storydir, package=None, setUp=setUpGlobs): """Create a suite of page tests for files found in storydir. :param storydir: the directory containing the page tests. :param package: the package to resolve storydir relative to. Defaults to the caller's package. Each file is added as a separate DocFileTest. """ # we need to normalise the package name here, because it # involves checking the parent stack frame. Otherwise the # files would be looked up relative to this module. package = doctest._normalize_module(package) abs_storydir = doctest._module_relative_path(package, storydir) filenames = set(filename for filename in os.listdir(abs_storydir) if filename.lower().endswith('.txt')) suite = unittest.TestSuite() # Add tests to the suite individually. if filenames: checker = doctest.OutputChecker() paths = [os.path.join(storydir, filename) for filename in filenames] suite.addTest( LayeredDocFileSuite(paths=paths, package=package, checker=checker, stdout_logging=False, layer=PageTestLayer, setUp=setUp)) return suite
def test_suite(): suite = unittest.TestSuite() suite.addTest( LayeredDocFileSuite( 'test_logger.txt', layer=BaseLayer)) suite.addTest( unittest.TestLoader().loadTestsFromName(__name__)) return suite
def test_suite(): suite = unittest.TestLoader().loadTestsFromName(__name__) suite.addTest( LayeredDocFileSuite('test_launchpad_login_source.txt', layer=LaunchpadFunctionalLayer, setUp=setUp, tearDown=tearDown)) return suite
def test_strip_prefix(self): """The Launchpad tree root is stripped from test names.""" self.makeTestFile('foo.txt') base = os.path.basename(self.tempdir) # Set the Launchpad tree root to our temporary directory and # create a test suite. config.root = self.tempdir suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt')) [foo_test] = list(suite) # The test ID and string representation have the prefix # stripped off. self.assertEqual(foo_test.id(), 'foo.txt') self.assertEqual(str(foo_test), 'foo.txt') # Tests outside of the Launchpad tree root are left as is: config.root = '/nonexistent' suite = LayeredDocFileSuite(os.path.join(base, 'foo.txt')) [foo_test] = list(suite) self.assertTrue(str(foo_test).startswith(self.orig_root))
def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.TestLoader().loadTestsFromName(__name__)) suite.addTest( LayeredDocFileSuite('login.txt', setUp=setUp, tearDown=tearDown, layer=AppServerLayer)) return suite
def test_suite(): suite = unittest.TestSuite() # We run this test on the AppServerLayer because it needs the cookie login # page (+login), which cannot be used through the normal testbrowser that # goes straight to zope's publication instead of making HTTP requests. suite.addTest(LayeredDocFileSuite( 'cookie-authentication.txt', setUp=setUp, tearDown=tearDown, layer=AppServerLayer)) return suite
def test_suite(): suite = unittest.TestSuite() test = LayeredDocFileSuite('decoratedresultset.txt', setUp=setUp, tearDown=tearDown, layer=DatabaseFunctionalLayer) suite.addTest(test) return suite
def test_suite(): suite = unittest.TestLoader().loadTestsFromName(__name__) suite.addTest(DocTestSuite('lp.services.mail.incoming')) suite.addTest( LayeredDocFileSuite('incomingmail.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadZopelessLayer, stdout_logging_level=logging.WARNING)) return suite
def test_suite(): """Return the `IBugTarget` TestSuite.""" suite = unittest.TestSuite() doctest = LayeredDocFileSuite( './profiling.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer, stdout_logging_level=logging.WARNING) suite.addTest(doctest) suite.addTest(unittest.TestLoader().loadTestsFromName(__name__)) return suite
def test_suite(): suite = unittest.TestSuite() loader = unittest.TestLoader() suite.addTest(loader.loadTestsFromTestCase(TestEmailObfuscated)) suite.addTest( LayeredDocFileSuite('question-subscribe_me.txt', setUp=setUp, tearDown=tearDown, layer=DatabaseFunctionalLayer)) suite.addTest( LayeredDocFileSuite('views.txt', setUp=setUp, tearDown=tearDown, layer=DatabaseFunctionalLayer)) suite.addTest( LayeredDocFileSuite('faq-views.txt', setUp=setUp, tearDown=tearDown, layer=DatabaseFunctionalLayer)) return suite
def create_interface_test_suite(test_file, targets): """Create a test suite for an interface test using several fixtures.""" suite = unittest.TestSuite() for name, setup_func in targets: test_path = os.path.join(os.path.pardir, 'doc', test_file) id_ext = "%s-%s" % (test_file, name) test = LayeredDocFileSuite(test_path, id_extensions=[id_ext], setUp=setup_func, tearDown=tearDown, layer=DatabaseFunctionalLayer) suite.addTest(test) return suite
def test_suite(): suite = unittest.TestSuite() suite.addTest( LayeredDocFileSuite('bugzilla-xmlrpc-transport.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer)) suite.addTest( LayeredDocFileSuite('bugzilla-api-xmlrpc-transport.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer)) suite.addTest( LayeredDocFileSuite('trac-xmlrpc-transport.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer)) suite.addTest( LayeredDocFileSuite('externalbugtracker-xmlrpc-transport.txt', setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer)) return suite
def test_creates_test_suites(self): """LayeredDocFileSuite creates test suites.""" self.makeTestFile('foo.txt') self.makeTestFile('bar.txt') base = os.path.basename(self.tempdir) suite = LayeredDocFileSuite( [os.path.join(base, 'foo.txt'), os.path.join(base, 'bar.txt')]) self.assertTrue(isinstance(suite, unittest.TestSuite)) [foo_test, bar_test] = list(suite) self.assertTrue(isinstance(foo_test, unittest.TestCase)) self.assertEqual(os.path.basename(foo_test.id()), 'foo.txt') self.assertTrue(isinstance(bar_test, unittest.TestCase)) self.assertEqual(os.path.basename(bar_test.id()), 'bar.txt') self.runSuite(suite, num_tests=2)
def test_suite(): suite = unittest.TestSuite() targets = [ ('cve', cveSetUp), ('question', questionSetUp), ('specification', specificationSetUp), ] for name, setUpMethod in targets: test = LayeredDocFileSuite('buglinktarget.txt', id_extensions=[name], setUp=setUpMethod, tearDown=tearDown, layer=LaunchpadFunctionalLayer) suite.addTest(test) return suite
def test_suite(): suite = unittest.TestSuite() tests_dir = os.path.dirname(os.path.realpath(__file__)) filenames = [ filename for filename in os.listdir(tests_dir) if filename.lower().endswith('.txt') ] for filename in sorted(filenames): test = LayeredDocFileSuite( filename, setUp=setUp, tearDown=tearDown, layer=LaunchpadZopelessLayer) suite.addTest(test) return suite
def test_suite(): suite = unittest.TestSuite() testsdir = os.path.abspath(here) # Add tests using default setup/teardown filenames = [filename for filename in os.listdir(testsdir) if filename.endswith('.txt')] # Sort the list to give a predictable order. filenames.sort() for filename in filenames: path = filename layer = special_test_layer.get(path, DatabaseFunctionalLayer) one_test = LayeredDocFileSuite( path, setUp=setUp, tearDown=tearDown, layer=layer, stdout_logging_level=logging.WARNING) suite.addTest(one_test) return suite
def test_suite(): suite = unittest.TestSuite() stories_dir = os.path.join(os.path.pardir, 'stories') suite.addTest( PageTestSuite(stories_dir, setUp=lambda test: setUpGlobs(test, future=True))) stories_path = os.path.join(here, stories_dir) for story_entry in scandir.scandir(stories_path): if not story_entry.is_dir(): continue story_path = os.path.join(stories_dir, story_entry.name) suite.addTest( PageTestSuite(story_path, setUp=lambda test: setUpGlobs(test, future=True))) testsdir = os.path.abspath( os.path.normpath(os.path.join(here, os.path.pardir, 'doc'))) # Add special needs tests for key in sorted(special): special_suite = special[key] suite.addTest(special_suite) # Add tests using default setup/teardown filenames = [ filename for filename in os.listdir(testsdir) if filename.endswith('.txt') and filename not in special ] # Sort the list to give a predictable order. filenames.sort() for filename in filenames: path = os.path.join('../doc/', filename) one_test = LayeredDocFileSuite( path, setUp=lambda test: setUp(test, future=True), tearDown=tearDown, layer=LaunchpadFunctionalLayer, stdout_logging_level=logging.WARNING) suite.addTest(one_test) return suite
def add_testable_opensource_package(suite, package): """Sniff out all the doctests in `package` and add them to `suite`.""" topdir = os.path.dirname(package.__file__) packages = [] for dirpath, dirnames, filenames in os.walk(topdir): if 'docs' in dirnames: docsdir = os.path.join(dirpath, 'docs')[len(topdir)+1:] packages.append(docsdir) doctest_files = {} for docsdir in packages: for filename in os.listdir(os.path.join(topdir, docsdir)): if os.path.splitext(filename)[1] == '.txt': doctest_files[filename] = os.path.join(docsdir, filename) # Sort the tests. for filename in sorted(doctest_files): path = doctest_files[filename] doctest = LayeredDocFileSuite( path, package=package, layer=AppServerLayer, stdout_logging_level=logging.WARNING) suite.addTest(doctest)
def test_suite(): suite = unittest.TestSuite() # Find all the doctests in wadllib. packages = [] for dirpath, dirnames, filenames in os.walk(topdir): if 'docs' in dirnames: docsdir = os.path.join(dirpath, 'docs')[len(topdir) + 1:] packages.append(docsdir) doctest_files = {} for docsdir in packages: for filename in os.listdir(os.path.join(topdir, docsdir)): if os.path.splitext(filename)[1] == '.txt': doctest_files[filename] = os.path.join(docsdir, filename) # Sort the tests. for filename in sorted(doctest_files): path = doctest_files[filename] doctest = LayeredDocFileSuite(path, package=wadllib) suite.addTest(doctest) return suite
def test_suite(): suite = unittest.TestLoader().loadTestsFromName(__name__) here = os.path.dirname(os.path.realpath(__file__)) testsdir = os.path.abspath(here) # Add tests using default setup/teardown filenames = [ filename for filename in os.listdir(testsdir) if filename.endswith('.txt') ] # Sort the list to give a predictable order. filenames.sort() for filename in filenames: path = filename one_test = LayeredDocFileSuite(path, setUp=setUp, tearDown=tearDown, layer=DatabaseFunctionalLayer, stdout_logging_level=logging.WARNING) suite.addTest(one_test) return suite
def test_suite(): suite = unittest.TestSuite() stories_dir = os.path.join(os.path.pardir, 'stories') suite.addTest(PageTestSuite(stories_dir)) stories_path = os.path.join(here, stories_dir) for story_dir in os.listdir(stories_path): full_story_dir = os.path.join(stories_path, story_dir) if not os.path.isdir(full_story_dir): continue story_path = os.path.join(stories_dir, story_dir) suite.addTest(PageTestSuite(story_path)) testsdir = os.path.abspath( os.path.normpath(os.path.join(here, os.path.pardir, 'doc'))) # Add special needs tests for key, special_suite in sorted(special.items()): suite.addTest(special_suite) # Add tests using default setup/teardown filenames = [ filename for filename in os.listdir(testsdir) if filename.endswith('.txt') and filename not in special ] # Sort the list to give a predictable order. filenames.sort() for filename in filenames: path = os.path.join('../doc/', filename) one_test = LayeredDocFileSuite(path, setUp=setUp, tearDown=tearDown, layer=LaunchpadFunctionalLayer, stdout_logging_level=logging.WARNING) suite.addTest(one_test) return suite
def build_doctest_suite(base_dir, tests_path, special_tests={}, layer=None, setUp=setUp, tearDown=tearDown, package=None): """Build the doc test suite.""" from lp.testing.layers import DatabaseFunctionalLayer if layer is None: layer = DatabaseFunctionalLayer suite = unittest.TestSuite() # Tests are run relative to the calling module, not this module. if package is None: package = doctest._normalize_module(None) testsdir = os.path.abspath( os.path.normpath(os.path.join(base_dir, tests_path))) if os.path.exists(testsdir): # Add doctests using default setup/teardown. filenames = [ filename for filename in os.listdir(testsdir) if (filename.endswith('.txt') and filename not in special_tests) ] # Sort the list to give a predictable order. filenames.sort() for filename in filenames: path = os.path.join(tests_path, filename) one_test = LayeredDocFileSuite( path, package=package, setUp=setUp, tearDown=tearDown, layer=layer, stdout_logging_level=logging.WARNING) suite.addTest(one_test) return suite
def test_suite(): """Return the `IStructuralSubscriptionTarget` TestSuite.""" suite = unittest.TestSuite() suite.addTest(unittest.TestLoader().loadTestsFromName(__name__)) setUpMethods = [ distributionSourcePackageSetUp, productSetUp, distributionSetUp, milestoneSetUp, distroSeriesSourcePackageSetUp, ] testname = 'structural-subscription-target.txt' for setUpMethod in setUpMethods: id_ext = "%s-%s" % (testname, setUpMethod.func_name) test = LayeredDocFileSuite(testname, id_extensions=[id_ext], setUp=setUpMethod, tearDown=tearDown, layer=LaunchpadFunctionalLayer) suite.addTest(test) return suite
def test_suite(): """Return the `IBugTarget` TestSuite.""" suite = unittest.TestSuite() setUpMethods = [ productSetUp, productSeriesSetUp, distributionSetUp, distributionSourcePackageSetUp, distributionSeriesSetUp, ] testname = 'bugtarget-questiontarget.txt' for setUpMethod in setUpMethods: id_ext = "%s-%s" % (testname, setUpMethod.func_name) test = LayeredDocFileSuite(testname, id_extensions=[id_ext], setUp=setUpMethod, tearDown=tearDown, layer=DatabaseFunctionalLayer) suite.addTest(test) suite.addTest(unittest.TestLoader().loadTestsFromName(__name__)) return suite