view test/runtests.py @ 441:eadcb1bb54e2

Merged revisions 388-399 via svnmerge from svn+ssh://svn.wald.intevation.org/treepkg/branches/treepkg-status ........ r388 | bricks | 2010-07-28 10:38:50 +0200 (Mi, 28 Jul 2010) | 3 lines fix if statement upload hook should be called if it's not empty ........ r389 | bricks | 2010-07-28 13:38:00 +0200 (Mi, 28 Jul 2010) | 2 lines only rsync specified architectures from cachedir to publishdir ........ r390 | bricks | 2010-07-29 14:07:57 +0200 (Do, 29 Jul 2010) | 2 lines introduced after_copy_hook and made rsync upload to publishdir optional ........ r391 | bricks | 2010-07-29 15:43:39 +0200 (Do, 29 Jul 2010) | 3 lines publish package must be default to get original behaviour be more verbose at publishing ........ r392 | bricks | 2010-07-29 16:50:53 +0200 (Do, 29 Jul 2010) | 2 lines fix handling of showing only successfull builds together with num packages ........ r393 | bricks | 2010-07-29 16:52:42 +0200 (Do, 29 Jul 2010) | 2 lines fixed typo ........ r394 | bricks | 2010-07-29 16:59:10 +0200 (Do, 29 Jul 2010) | 2 lines fixed another typo ........ r395 | bricks | 2010-07-29 18:05:54 +0200 (Do, 29 Jul 2010) | 3 lines fixed another typo treepkg is really slow with many revisions ........ r396 | bricks | 2010-08-02 12:41:55 +0200 (Mo, 02 Aug 2010) | 2 lines fixed typos ........ r397 | bricks | 2010-08-02 17:36:12 +0200 (Mo, 02 Aug 2010) | 3 lines be more error prone in listing different files not checking if a dir exists caused several errors if a build wasn't successful ........ r398 | bricks | 2010-08-05 18:21:47 +0200 (Do, 05 Aug 2010) | 2 lines review changes ........ r399 | bricks | 2010-08-06 13:06:08 +0200 (Fr, 06 Aug 2010) | 4 lines cleanup modules fix test_info testcases added testcases for remove_trailingslashes and expand_filename ........
author Bjoern Ricks <bricks@intevation.de>
date Fri, 06 Aug 2010 13:41:54 +0000
parents f9f15ee39ed7
children
line wrap: on
line source
# Copyright (C) 2007 by Intevation GmbH
# Authors:
# Bernhard Herzog <bh@intevation.de>
#
# This program is free software under the GPL (>=v2)
# Read the file COPYING coming with the software for details.

"""
Main entry point for the test suite.

Just run this file as a python script to execute all tests
"""

import os
import sys
import unittest
import optparse

test_dir = os.path.dirname(__file__)
sys.path.append(os.path.join(test_dir, os.pardir))

def find_test_modules(dirname, package = None):
    """Return a list the names of the test modules in the directory dirname

    The return value is a list of names that can be passed to
    unittest.defaultTestLoader.loadTestsFromNames.  Each name of the
    list is the name of a pure python module, one for each file in
    dirname whose name starts with 'test' and ends with '.py'.

    The optional parameter package should be the name of the python
    package whose directory is dirname.  If package is given all names
    in the returned list will be prefixed with package and a dot.
    """
    if package:
        prefix = package + "."
    else:
        prefix = ""

    suffix = ".py"
    return [prefix + name[:-len(suffix)]
            for name in os.listdir(dirname)
                if name.startswith("test") and name.endswith(suffix)]


def main():
    """Run all the tests in the test suite"""

    parser = optparse.OptionParser()
    parser.set_defaults(verbosity=1)
    parser.add_option("-v", "--verbose", action="store_const", const=2,
                      dest="verbosity")
    opts, rest = parser.parse_args()

    # Build the list of test names.  If names were given on the command
    # line, run exactly those.  Othwerwise build a default list of
    # names.
    if rest:
        names = rest
    else:
        # All Python files starting with 'test' in the current directory
        # and some directories in Extensions contain test cases.
        # FIXME: It should be possible to run runtests.py even when not in
        # the test directory
        names = find_test_modules(test_dir)
    suite = unittest.defaultTestLoader.loadTestsFromNames(names)
    runner = unittest.TextTestRunner(verbosity=opts.verbosity)
    result = runner.run(suite)
    sys.exit(not result.wasSuccessful())


if __name__ == "__main__":
    main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)