|
4 | 4 | from os.path import exists |
5 | 5 | from unittest.mock import patch |
6 | 6 |
|
7 | | -from pythonbackend.Exercise import Exercise |
8 | | -from pythonbackend import utils |
9 | | - |
10 | 7 | import helper |
11 | 8 |
|
12 | 9 | class TestTestObjectAccessed(unittest.TestCase): |
13 | 10 |
|
14 | 11 | def setUp(self): |
15 | 12 | self.data = { |
| 13 | + "DC_PEC": '', |
16 | 14 | "DC_CODE": ''' |
17 | 15 | import numpy as np |
18 | 16 | arr = np.array([1, 2, 3]) |
19 | 17 | x = arr.shape |
| 18 | +print(arr.data) |
20 | 19 | ''', |
21 | 20 | "DC_SOLUTION": ''' |
22 | | -import numpy as np |
23 | | -arr = np.array([1, 2, 3]) |
24 | | -x = arr.shape |
25 | | -t = arr.dtype |
| 21 | + # not used |
26 | 22 | ''' |
27 | 23 | } |
28 | 24 |
|
29 | | - def test_standardTestPass(self): |
| 25 | + def test_objectOnly(self): |
30 | 26 | self.data["DC_SCT"] = 'test_object_accessed("arr")' |
31 | | - self.exercise = Exercise(self.data) |
32 | | - self.exercise.runInit() |
33 | | - output = self.exercise.runSubmit(self.data) |
34 | | - sct_payload = helper.get_sct_payload(output) |
| 27 | + sct_payload = helper.run(self.data) |
| 28 | + self.assertEqual(sct_payload['correct'], True) |
| 29 | + |
| 30 | + self.data["DC_SCT"] = 'test_object_accessed("arr", times=2)' |
| 31 | + sct_payload = helper.run(self.data) |
35 | 32 | self.assertEqual(sct_payload['correct'], True) |
36 | 33 |
|
| 34 | + self.data["DC_SCT"] = 'test_object_accessed("arr", times=3)' |
| 35 | + sct_payload = helper.run(self.data) |
| 36 | + self.assertEqual(sct_payload['correct'], False) |
| 37 | + self.assertEqual(sct_payload['message'], "Have you accessed <code>arr</code> at least 3 times?") |
| 38 | + |
| 39 | + self.data["DC_SCT"] = 'test_object_accessed("arr", times=3, not_accessed_msg="silly")' |
| 40 | + sct_payload = helper.run(self.data) |
| 41 | + self.assertEqual(sct_payload['correct'], False) |
| 42 | + self.assertEqual(sct_payload['message'], "silly") |
| 43 | + |
| 44 | + |
| 45 | + def test_objectAndAttribute(self): |
| 46 | + |
37 | 47 | self.data["DC_SCT"] = 'test_object_accessed("arr.shape")' |
38 | | - self.exercise = Exercise(self.data) |
39 | | - self.exercise.runInit() |
40 | | - output = self.exercise.runSubmit(self.data) |
41 | | - sct_payload = helper.get_sct_payload(output) |
| 48 | + sct_payload = helper.run(self.data) |
42 | 49 | self.assertEqual(sct_payload['correct'], True) |
| 50 | + |
| 51 | + self.data["DC_SCT"] = 'test_object_accessed("arr.shape", times=2)' |
| 52 | + sct_payload = helper.run(self.data) |
| 53 | + self.assertEqual(sct_payload['correct'], False) |
| 54 | + self.assertEqual(sct_payload['message'], "Have you accessed <code>arr.shape</code> at least twice?") |
| 55 | + |
| 56 | + self.data["DC_SCT"] = 'test_object_accessed("arr.shape", times=2, not_accessed_msg="silly")' |
| 57 | + sct_payload = helper.run(self.data) |
| 58 | + self.assertEqual(sct_payload['correct'], False) |
| 59 | + self.assertEqual(sct_payload['message'], "silly") |
43 | 60 |
|
44 | 61 | self.data["DC_SCT"] = 'test_object_accessed("arr.dtype")' |
45 | | - self.exercise = Exercise(self.data) |
46 | | - self.exercise.runInit() |
47 | | - output = self.exercise.runSubmit(self.data) |
48 | | - sct_payload = helper.get_sct_payload(output) |
| 62 | + sct_payload = helper.run(self.data) |
49 | 63 | self.assertEqual(sct_payload['correct'], False) |
50 | | - |
| 64 | + self.assertEqual(sct_payload['message'], "Have you accessed <code>arr.dtype</code>?") |
| 65 | + |
| 66 | + self.data["DC_SCT"] = 'test_object_accessed("arr.dtype", not_accessed_msg="silly")' |
| 67 | + sct_payload = helper.run(self.data) |
| 68 | + self.assertEqual(sct_payload['correct'], False) |
| 69 | + self.assertEqual(sct_payload['message'], "silly") |
| 70 | + |
51 | 71 |
|
52 | 72 | if __name__ == "__main__": |
53 | 73 | unittest.main() |
0 commit comments