DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (b66b287a2650)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
"""Store the results.

Use a db, but we could do better"""

import shelve
import string

class results:
    def __init__(self, id):
        self.id = id
        self.d = shelve.open("data/"+id+".db")

    def get_tester(self, path):
        import BaseTest

        try:
            fname = path+"tester.py"
            text = open(fname).read()
            # Thanks to markh, for showing me how to do this
            # Python Is Cool.
            codeob = compile(text, fname, "exec")
            namespace = { 'BaseTester': BaseTest.tester }
            exec codeob in namespace, namespace
            tester = namespace['tester']()
        except IOError:
            tester =  BaseTest.tester()

        if self.d.has_key(path):
            tester.__dict__ = self.d[path]
        else:
            tester.parse_config(open(path+"config"))

        return tester

    def set_tester(self, path, test):
        self.d[path] = test.__dict__

    def write_report(self, file):
        for i in self.d.keys():
            file.write("%s: " % (i))
            tester = self.get_tester(i)
            res, detail = tester.result()
            if res:
                file.write("Pass!\n")
            else:
                file.write("Fail: %s\n" % (detail))

    def __del__(self):
        self.d.close()