diff options
author | W. Trevor King <wking@drexel.edu> | 2008-11-18 20:42:50 -0500 |
---|---|---|
committer | W. Trevor King <wking@drexel.edu> | 2008-11-18 20:42:50 -0500 |
commit | 19b153b9a86377a2b30cc80fa3f475fed892e2fe (patch) | |
tree | 8f5688707ab1b34ffec2bc4372d087580ff21709 /libbe/tests.py | |
parent | e4018dfe8cfa553adbd20898c5b42c3462ca1733 (diff) | |
download | bugseverywhere-19b153b9a86377a2b30cc80fa3f475fed892e2fe.tar.gz |
Major rewrite of RCS backends. RCS now represented as a class.
Lots of changes and just one commit. This started with bug
dac91856-cb6a-4f69-8c03-38ff0b29aab2, when I noticed that new bugs
were not being added appropriately with the Git backend. I'd been
working with Git trouble before with bug
0cad2ac6-76ef-4a88-abdf-b2e02de76f5c, and decided things would be
better off if I just scrapped the current RCS architecture and went to
a more object oriented setup. So I did. It's not clear how to add
support for an RCS backend:
* Create a new module that
- defines an inheritor of rsc.RCS, overriding the _rcs_*() methods
- provide a new() function for instantizating the new class
- defines an inheritor of rcs.RCStestCase, overiding the Class attribute
- defines 'suite' a unittest.TestSuite testing the module
* Add your new module to the rest in rcs._get_matching_rcs()
* Add your new module to the rest in libbe/tests.py
Although I'm not sure libbe/tests.py is still usefull.
The new framework clears out a bunch of hackery that used to be
involved with supporting becommands/diff.py. There's still room for
progress though. While implementing the new verision, I moved the
testing framework over from doctest to a doctest/unittest combination.
Longer tests that don't demonstrate a function's usage should be moved
to unittests at the end of the module, since unittest has better
support for setup/teardown, etc.
The new framework also revealed some underimplented backends, most
notably arch. These backends have now been fixed.
I also tweaked the test_usage.sh script to run through all the backends
if it is called with no arguments.
The fix for the dac bug turned out to be an unflushed file write :p.
Diffstat (limited to 'libbe/tests.py')
-rw-r--r-- | libbe/tests.py | 46 |
1 files changed, 11 insertions, 35 deletions
diff --git a/libbe/tests.py b/libbe/tests.py index 461e6e8..18277d7 100644 --- a/libbe/tests.py +++ b/libbe/tests.py @@ -16,40 +16,16 @@ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import tempfile import shutil -import os -import os.path -from libbe import bugdir, bug, arch -cleanable = [] -def clean_up(): - global cleanable - tmp = cleanable - tmp.reverse() - for obj in tmp: - obj.clean_up() - cleanable = [] +from libbe import utility, names, restconvert, mapfile, config, diff, rcs, \ + arch, bzr, git, hg, bug, bugdir, plugin, cmdutil +import unittest -class Dir: - def __init__(self): - self.name = tempfile.mkdtemp(prefix="testdir") - cleanable.append(self) - def clean_up(self): - shutil.rmtree(self.name) +# can not use 'suite' or the base test.py file will include these suites twice. +testsuite = unittest.TestSuite([utility.suite, names.suite, restconvert.suite, + mapfile.suite, config.suite, diff.suite, + rcs.suite, arch.suite, bzr.suite, git.suite, + hg.suite, bug.suite, bugdir.suite, + plugin.suite, cmdutil.suite]) -def arch_dir(): - arch.ensure_user_id() - dir = Dir() - arch.init_tree(dir.name) - return dir - -def bug_arch_dir(): - dir = arch_dir() - return bugdir.create_bug_dir(dir.name, arch) - -def simple_bug_dir(): - dir = bug_arch_dir() - bug_a = bug.new_bug(dir, "a") - bug_b = bug.new_bug(dir, "b") - bug_b.status = "closed" - bug_a.save() - bug_b.save() - return dir +if __name__ == "__main__": + unittest.TextTestRunner(verbosity=2).run(testsuite) |