예제 #1
0
    def test(self):
        test = self.parser.parse(filename)

        if test.skip:
            if test.skip_reason:
                self.skipTest(test.skip_reason)
            else:
                self.skipTest("Mark as skipped")
            return

        source = SourceCode(filename)
        source.content = test.source
        self.redirect_output()

        try:
            if not test.compile_only:
                context = Context(filename)
                source.interpret(context, Frame())
        except PieError as e:
            os.write(2, e.get_message())
        except Exception as e:
            self.restore_output()
            self.fail(e)

        self.restore_output()

        if test.has_result and not test.compile_only:
            # rewind file pointer and read content
            self.output_file.seek(self.current_position)

            actual_result = str.splitlines(self.output_file.read())
            self._check_test_result(test, actual_result)
예제 #2
0
파일: launcher.py 프로젝트: parastoo-62/pie
def run(filename):
    try:
        source = SourceCode(filename)
        source.open()
    except OSError:
        os.write(2, "Could not open input file: %s\n" % filename)
        return 1

    try:
        context = Context(filename)
        source.interpret(context, Frame())
    except PieError as e:
        os.write(2, e.get_message())
        return 1

    return 0