def test_suite():
    suite = LayeredDocFileSuite(
        [],
        layer=BaseLayer)
    suite.addTest(doctest.DocTestSuite(
        testing, optionflags=NORMALIZE_WHITESPACE|ELLIPSIS))
    return suite
Esempio n. 2
0
 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)
Esempio n. 3
0
 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')
Esempio n. 4
0
 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)
Esempio n. 5
0
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
Esempio n. 8
0
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
Esempio n. 9
0
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
Esempio n. 11
0
 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))
Esempio n. 12
0
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
Esempio n. 13
0
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
Esempio n. 14
0
def test_suite():
    suite = unittest.TestSuite()

    test = LayeredDocFileSuite('decoratedresultset.txt',
                               setUp=setUp,
                               tearDown=tearDown,
                               layer=DatabaseFunctionalLayer)
    suite.addTest(test)
    return suite
Esempio n. 15
0
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
Esempio n. 16
0
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
Esempio n. 17
0
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
Esempio n. 18
0
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
Esempio n. 19
0
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
Esempio n. 20
0
    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
Esempio n. 23
0
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
Esempio n. 24
0
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
Esempio n. 25
0
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)
Esempio n. 26
0
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
Esempio n. 27
0
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
Esempio n. 28
0
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
Esempio n. 29
0
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
Esempio n. 31
0
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