Beispiel #1
0
    def __init__(self, xqueue, settings_module):
        super(TestGrader, self).__init__()

        self.grader = Grader()

        # A little monkey patching...
        self.grader.xqueue = lambda: xqueue

        self.grader.config_from_module(settings_module)
Beispiel #2
0
class TestGrader(multiprocessing.Process):
    """ A thin wrapper around bux_grader_framework.Grader.

    Wraps it in a ``multiprocessing.Process``.
    Patches ``xqueue`` method to return an :class:`XQueueStub`.
    Adds a stop event.

    """
    def __init__(self, xqueue, settings_module):
        super(TestGrader, self).__init__()

        self.grader = Grader()

        # A little monkey patching...
        self.grader.xqueue = lambda: xqueue

        self.grader.config_from_module(settings_module)

    def run(self):
        print "Grader started"
        self.grader.run()
        print "Grader exited"

    def stop(self):
        self.grader.stop()