예제 #1
0
 def test_json_conversion_no_sandbox(self):
     '''test json conversion with no sandbox'''
     pgm1 = Program("print('hello world')", 'python3', FireJail())
     jsobj = pgm1.to_json_object()
     del jsobj["sandbox"]
     pgm2 = Program.from_json_object(json.loads(json.dumps(jsobj)))
     assert pgm2.sandbox == FireJail()
예제 #2
0
 def test_context_manager_usage(self):
     '''Test usage of Program class as context manager'''
     with Program("print('hello world')", 'python3', FireJail()) as pgm:
         pgm.compile()
         testcase = TestCase()
         pgm.execute(testcase)
         assert testcase.real_output.strip() == "hello world"
예제 #3
0
 def test_basic_usage(self):
     '''test basic usage of Program class'''
     pgm = Program("print('hello world')", 'python3', FireJail())
     pgm.compile()
     testcase = TestCase()
     pgm.execute(testcase)
     assert testcase.real_output.strip() == "hello world"
예제 #4
0
 def test_json_conversion(self):
     '''test json conversion'''
     pgm1 = Program("print('hello world')", 'python3', FireJail())
     testcases = [TestCase(), TestCase("h", "h")]
     ev1 = Evaluation(pgm1, testcases)
     jsobj = ev1.to_json_object()
     ev2 = Evaluation.from_json_object(json.loads(json.dumps(jsobj)))
     assert ev1 == ev2
예제 #5
0
    def test_evaluate_success(self):
        '''Test evaluate success'''
        code = '''
print("hello world")
'''
        pgm = Program(code, 'python3', FireJail())
        testcases = [TestCase(testcase_output='hello world')]
        ev_obj = Evaluation(
            pgm,
            testcases,
            [Equal()],
        )
        ev_obj.evaluate()
        assert testcases[0].scores == {'Equal': 1}
예제 #6
0
    def test_evaluate_compilation(self):
        '''Test evaluate compilation error'''
        code = '''
print("hello world"
'''
        pgm = Program(code, 'python3', FireJail())
        testcases = [TestCase(testcase_output='hello world')]
        ev_obj = Evaluation(
            pgm,
            testcases,
            [Equal()],
        )
        ev_obj.evaluate()
        assert all(
            [isinstance(test.error, CompilationError) for test in testcases])
예제 #7
0
 def test_json_conversion(self):
     '''test json conversion'''
     pgm1 = Program("print('hello world')", 'python3', FireJail())
     jsobj = pgm1.to_json_object()
     pgm2 = Program.from_json_object(json.loads(json.dumps(jsobj)))
     assert pgm1 == pgm2
예제 #8
0
class TestFireJail(CTestSandBox, PythonTestSandBox, SecureTestSandBox):
    '''Tests for FireJail class'''
    sandbox = FireJail()