def test_uses_first_suitable_grabber(self): self.init_post_request() grabber1 = mock.Mock() grabber1.can_grab_from = mock.MagicMock(return_value=False) grabber2 = mock.Mock() grabber2.can_grab_from = mock.MagicMock(return_value=True) grabber2.grab_tests = mock.MagicMock(return_value=[]) views.test_grabbers.available_grabbers = [grabber1, grabber2] model_mocks.mock_template() views.parse(self.request) grabber2.grab_tests.assert_called_with(self.url)
def test_update_template(self): template = model_mocks.mock_template() new_language = model_mocks.mock_language() request = self.request_post('wolf:template-edit', args=[template.id], data={ 'code': '2', 'language_id': str(new_language.id), }) views.template_edit(request, template.id) loaded_template = models.Template.objects.get(pk=template.id) self.assertEqual(loaded_template.code, '2') self.assertEqual(loaded_template.language, new_language)
def test_creates_solution_and_redirects(self): self.init_post_request() tests = [data.Test("input", "output")] grabber = mock.Mock() grabber.can_grab_from = mock.MagicMock(return_value=True) grabber.grab_tests = mock.MagicMock(return_value=tests) views.test_grabbers.available_grabbers = [grabber] template = model_mocks.mock_template() response = views.parse(self.request) redirect_url_match = urlresolvers.resolve(response.get('location')) self.assertEqual(redirect_url_match.func, views.solve) new_solution_id = int(redirect_url_match.kwargs['solution_id']) new_solution = models.Solution.objects.get(pk=new_solution_id) self.assertEqual(new_solution.getParsedTests(), tests) self.assertEqual(new_solution.code, template.code) self.assertEqual(new_solution.language, template.language)
def test_can_be_rendered(self): model_mocks.mock_template() request = self.request_get('wolf:templates', []) views.templates(request)
def test_template_edit_can_be_rendered(self): template = model_mocks.mock_template() request = self.request_get('wolf:template-edit', [template.id]) views.template_edit(request, template.id)