Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.39 KB | None | 0 0
  1. # Django
  2. from django.test import TestCase
  3. from django.test.client import RequestFactory
  4.  
  5. # local Django
  6. from exercise import constants
  7. from exercise.models import (
  8. Exercise, UserExercise, TestCaseExercise
  9. )
  10. from user.models import User
  11. from exercise import views
  12. from exercise.forms import SubmitExerciseForm
  13.  
  14.  
  15. class TestExerciseRegistration(TestCase):
  16.  
  17. exercise = Exercise()
  18.  
  19. def setUp(self):
  20. self.exercise.title = 'Basic Exercise'
  21. self.exercise.category = 2
  22. self.exercise.statement_question = '<p>Text Basic Exercise.</p>'
  23. self.exercise.score = 10
  24. self.exercise.deprecated = 0
  25.  
  26. def test_str_is_correct(self):
  27. self.exercise.save()
  28. exercise_database = Exercise.objects.get(id=self.exercise.id)
  29. self.assertEqual(str(exercise_database), str(self.exercise))
  30.  
  31. def test_if_exercise_is_saved_database(self):
  32. self.exercise.save()
  33. exercise_database = Exercise.objects.get(id=self.exercise.id)
  34. self.assertEqual(exercise_database, self.exercise)
  35.  
  36. def test_exercise_get_title(self):
  37. self.exercise.save()
  38. exercise_database = Exercise.objects.get(id=self.exercise.id)
  39. self.assertEqual(exercise_database.title, self.exercise.title)
  40.  
  41. def test_exercise_get_category(self):
  42. self.exercise.save()
  43. exercise_database = Exercise.objects.get(id=self.exercise.id)
  44. self.assertEqual(exercise_database.category, self.exercise.category)
  45.  
  46. def test_exercise_get_statement_question(self):
  47. self.exercise.save()
  48. exercise_database = Exercise.objects.get(id=self.exercise.id)
  49. self.assertEqual(
  50. exercise_database.statement_question,
  51. self.exercise.statement_question)
  52.  
  53. def test_exercise_get_score(self):
  54. self.exercise.save()
  55. exercise_database = Exercise.objects.get(id=self.exercise.id)
  56. self.assertEqual(exercise_database.score, self.exercise.score)
  57.  
  58. def test_exercise_get_deprecated(self):
  59. self.exercise.save()
  60. exercise_database = Exercise.objects.get(id=self.exercise.id)
  61. self.assertEqual(
  62. exercise_database.deprecated,
  63. self.exercise.deprecated)
  64.  
  65.  
  66. class TestUserExerciseRegistration(TestCase):
  67.  
  68. exercise = Exercise()
  69. test_case_exercise = TestCaseExercise()
  70. user_exercise = UserExercise()
  71. user = User()
  72.  
  73. def setUp(self):
  74. self.exercise.title = 'Basic Exercise'
  75. self.exercise.category = 2
  76. self.exercise.statement_question = '<p>Text Basic Exercise.</p>'
  77. self.exercise.score = 10
  78. self.exercise.deprecated = 0
  79. self.test_case_exercise.input_exercise = "a\n"
  80. self.test_case_exercise.output_exercise = "B\n"
  81. self.user.email = "user@user.com"
  82. self.user.password = "userpassword"
  83. self.user.first_name = "TestUser"
  84. self.user.username = "Username"
  85. self.user.is_active = True
  86. self.user_exercise.code = """
  87. #include <stdio.h>
  88. int main () {
  89. char c;
  90. scanf("%c", &c);
  91. printf("B");
  92. return 0;
  93. }
  94. """
  95. self.exercise.save()
  96. self.test_case_exercise.exercise = self.exercise
  97. self.test_case_exercise.save()
  98. self.user.save()
  99. self.user_exercise.user = self.user
  100. self.user_exercise.exercise = self.exercise
  101.  
  102. def test_if_relation_user_exercise_saved_database(self):
  103. self.user_exercise.update_or_creates(
  104. self.user_exercise.code,
  105. self.user_exercise.exercise,
  106. self.user_exercise.user,
  107. self.user_exercise.time,
  108. self.user_exercise.status)
  109. user_exercise_database = UserExercise.objects.get(
  110. user=self.user,
  111. exercise=self.exercise)
  112. self.assertEqual(str(user_exercise_database), str(self.user_exercise))
  113.  
  114. def test_if_relation_user_exercise_is_updated(self):
  115. self.user_exercise.update_or_creates(
  116. self.user_exercise.code,
  117. self.user_exercise.exercise,
  118. self.user_exercise.user,
  119. self.user_exercise.time,
  120. self.user_exercise.status)
  121. user_exercise_database = UserExercise.objects.get(
  122. user=self.user,
  123. exercise=self.exercise)
  124. self.assertEqual(str(user_exercise_database), str(self.user_exercise))
  125.  
  126. def test_if_exercise_is_submitted(self):
  127. exercise_inputs = ['a\n', 'b\n']
  128. response = views.submit_exercise(
  129. self.user_exercise.code,
  130. exercise_inputs)
  131. self.assertIn("result", response)
  132.  
  133. def test_if_extract_time_exercise_is_success(self):
  134. exercise_inputs = ['a\n', 'b\n']
  135. response = views.submit_exercise(
  136. self.user_exercise.code,
  137. exercise_inputs)
  138. runtime = views.extract_time(response)
  139. self.assertNotEqual(runtime, None)
  140.  
  141. def test_get_all_input_exercise(self):
  142. list_all_input = views.get_all_input_exercise(self.exercise)
  143. length = len(list_all_input)
  144. self.assertNotEqual(length, 0)
  145.  
  146. def test_get_all_ouput_exercise(self):
  147. list_all_output = views.get_all_output_exercise(self.exercise)
  148. length = len(list_all_output)
  149. self.assertNotEqual(length, 0)
  150.  
  151.  
  152. class TestCaseExerciseRegistration(TestCase):
  153. exercise = Exercise()
  154. test_case_exercise = TestCaseExercise()
  155.  
  156. def setUp(self):
  157. self.exercise.title = 'Basic Exercise'
  158. self.exercise.category = 2
  159. self.exercise.statement_question = '<p>Text Basic Exercise.</p>'
  160. self.exercise.score = 10
  161. self.exercise.deprecated = 0
  162. self.test_case_exercise.input_exercise = "1 2\n"
  163. self.test_case_exercise.output_exercise = "2 1\n"
  164.  
  165. def test_if_user_exercise_is_saved_database(self):
  166. self.exercise.save()
  167. self.test_case_exercise.exercise = self.exercise
  168. self.test_case_exercise.save()
  169. test_case_exercise_database = TestCaseExercise.objects.get(
  170. id=self.test_case_exercise.id)
  171. self.assertEqual(
  172. str(test_case_exercise_database),
  173. str(self.test_case_exercise))
  174.  
  175.  
  176. class TestRequestExercise(TestCase):
  177. exercise = Exercise()
  178. test_case_exercise = TestCaseExercise()
  179. user = User()
  180.  
  181. def setUp(self):
  182. self.user.email = "user@user.com"
  183. self.user.first_name = "TestUser"
  184. self.user.username = "Username"
  185. self.user.is_active = True
  186. self.exercise.title = 'Basic Exercise'
  187. self.exercise.category = 2
  188. self.exercise.statement_question = '<p>Text Basic Exercise.</p>'
  189. self.exercise.score = 10
  190. self.exercise.deprecated = 0
  191. self.test_case_exercise.input_exercise = "a\n"
  192. self.test_case_exercise.output_exercise = "B\n"
  193. self.factory = RequestFactory()
  194. self.user.set_password('userpassword')
  195. self.user.save()
  196. self.exercise.save()
  197.  
  198. self.test_case_exercise.exercise = self.exercise
  199. self.test_case_exercise.save()
  200.  
  201. def test_list_all_exercises_deprecated(self):
  202. request = self.factory.get('/exercise/')
  203. request.user = self.user
  204. response = views.list_all_exercises(request)
  205. self.assertEqual(response.status_code, constants.REQUEST_SUCCEEDED)
  206.  
  207. def test_list_exercises_not_deprecated(self):
  208. request = self.factory.get('/exercise/')
  209. request.user = self.user
  210. response = views.list_exercises_not_deprecated(request)
  211. self.assertEqual(response.status_code, constants.REQUEST_SUCCEEDED)
  212.  
  213. def test_show_exercise_is_valid(self):
  214. request = self.factory.get('/exercise/')
  215. request.user = self.user
  216. response = views.show_exercise(request, self.exercise.id)
  217. self.assertEqual(response.status_code, constants.REQUEST_SUCCEEDED)
  218.  
  219.  
  220. class TestSubmitExerciseForm(TestCase):
  221. valid_form = {}
  222. invalid_form = {}
  223. source_code = """
  224. #include <stdio.h>
  225. int main () {
  226. char c;
  227. scanf("%c", &c);
  228. printf("B");
  229. return 0;
  230. }
  231. """
  232.  
  233. def setup(self):
  234. self.valid_form = {'code': self.source_code}
  235. self.invalid_form = {'code': ""}
  236.  
  237. def test_if_source_code_is_valid(self):
  238. submit_exercise_form = SubmitExerciseForm(self.valid_form)
  239. self.assertTrue(submit_exercise_form.is_valid())
  240.  
  241. # def test_if_source_code_is_invalid(self):
  242. # submit_exercise_form = SubmitExerciseForm(self.invalid_form)
  243. # self.assertFalse(submit_exercise_form.is_valid())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement