author Gregory Szorc <>
Wed, 08 Jan 2014 11:19:21 -0800
changeset 201362 3c72c5ea486c94436fad7e206344a11b8bb3453d
parent 98529 f4157e8c410708d76703f19e4dfb61859bfe32d8
permissions -rw-r--r--
Bug 957721 - Switch mach's shebang to look for python2.7. r=glandium OpenBSD doesn't have "python" on $PATH by default. "python" may also come from a non-2.7 Python. Switching the shebang will help ensure the user invokes mach with Python 2.7.

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at

"""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):