def test_infinite_loop(self):
     user_answer = "def add(a, b):\n\twhile True:\n\t\tpass"
     get_class = PythonStdoutEvaluator()
     kwargs = {'user_answer': user_answer,
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get('success'))
     self.assertEqual(result.get('error'), 'Incorrect Answer')
 def test_incorrect_answer(self):
     user_answer = "a,b=0,1\nfor i in range(5):\n\tprint b,\n\ta,b=b,a+b"
     get_class = PythonStdoutEvaluator()
     kwargs = {'user_answer': user_answer, 
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get('success'))
     self.assertEqual(result.get('error'), "Incorrect Answer")
Esempio n. 3
0
 def test_correct_answer(self):
     user_answer = "a,b=0,1\nfor i in range(5):\n\tprint a,\n\ta,b=b,a+b"
     get_class = PythonStdoutEvaluator()
     kwargs = {'user_answer': user_answer,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertEqual(result.get('error'), "Correct answer")
     self.assertTrue(result.get('success'))
 def test_direct_printed_answer(self):
     user_answer = "print '0 1 1 2 3'"
     error_msg = ("Incorrect Answer: Please avoid printing"
         " the expected output directly"
     )
     get_class = PythonStdoutEvaluator()
     kwargs = {'user_answer': user_answer, 
         'test_case_data': self.test_case_data
     }
     result = get_class.evaluate(**kwargs)
     self.assertFalse(result.get('success'))
     self.assertEqual(result.get('error'), error_msg)
Esempio n. 5
0
 def test_file_based_answer(self):
     self.test_case_data = [{"expected_output": "2\n\n"}]
     self.file_paths = [(os.getcwd()+"/yaksh/test.txt", False)]
     user_answer = dedent("""
         with open("test.txt") as f:
             print f.read()
         """)
     get_class = PythonStdoutEvaluator()
     kwargs = {'user_answer': user_answer,
         'test_case_data': self.test_case_data,
         'file_paths': self.file_paths
     }
     result = get_class.evaluate(**kwargs)
     self.assertEqual(result.get('error'), "Correct answer")
     self.assertTrue(result.get('success'))