author L. David Baron <>
Sat, 17 Oct 2009 10:31:47 -0400
changeset 33987 886ab0434035bec4f7d7c152c2b523e45e067066
parent 1 9b2a99adc05e53cd4010de512f50118594756650
child 98529 f4157e8c410708d76703f19e4dfb61859bfe32d8
permissions -rw-r--r--
Make ReResolveStyleContext no longer rerun selector matching on next-continuations by making both ReResolveStyleContext and ReParentStyleContext enforce the invariant that all continuations have the same style context. (Bug 522563) r=bzbarsky

"""Store the results.

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

import shelve
import string

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

    def get_tester(self, path):
        import BaseTest

            fname = path+""
            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]

        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("Fail: %s\n" % (detail))

    def __del__(self):