def test_get_or_create_anonymously(self): client = self.client # get get_or_create page response = client.get(reverse('issues.views.get_or_create', kwargs={'task_id': self.task.id, 'student_id': self.student.id})) self.assertEqual(response.status_code, 302, "Need login for get_or_create") issue = Issue() issue.student = self.student issue.task = self.task issue.save() # get issue_page page response = client.get(reverse('issues.views.issue_page', kwargs={'issue_id': issue.id})) self.assertEqual(response.status_code, 302, "Need login for issue_page")
def test_issue_create_filled(self): year = Year.objects.create(start_year=2016) group = Group.objects.create(name='name_groups', year=year) course = Course.objects.create(name='course_name', year=year) course.groups = [group] course.save() task = Task.objects.create(title='task', course=course) student = User.objects.create_user(username='******', password='******') responsible = User.objects.create_user(username='******', password='******') followers = [User.objects.create_user(username='******', password='******')] status = IssueStatus.objects.get(name=u'{"ru": "Зачтено", "en": "Accepted"}') issue = Issue() issue.student = student issue.task = task issue.mark = 3 issue.responsible = responsible issue.status_field = status issue.save() issue.followers = followers issue.save() issue_id = issue.id issue = Issue.objects.get(id=issue_id) self.assertIsInstance(issue, Issue) self.assertEqual(issue.student, student) self.assertEqual(issue.task, task) self.assertEqual(issue.mark, 3) self.assertEqual(issue.responsible, responsible) self.assertEqual(issue.status_field, status) self.assertItemsEqual(issue.followers.all(), followers)
def _submit_review(self, request, task, svn_path): user = request.user try: rev_a = int(request.POST.get('rev_a')) rev_b = int(request.POST.get('rev_b')) except TypeError: #not int return HttpResponseForbidden() except ValueError: #not int return HttpResponseForbidden() if rev_a == rev_b: return HttpResponseForbidden() if rev_b < rev_a: rev_a, rev_b = rev_b, rev_a review_id = None try: issue = Issue.objects.filter(task=task, student=user).order_by('-update_time')[0] review_id = issue.rb_review_id except Issue.DoesNotExist: pass except IndexError: pass issue = Issue() issue.task = task issue.student = user issue.svn_commit_id = rev_b summary = u"[{0}][{1}] {2}".format(user.get_full_name(), task.course.get_user_group(user), task.title) review_group_name = settings.RB_API_DEFAULT_REVIEW_GROUP if task.course.name_id: review_group_name = "teachers_{0}".format(task.course.name_id) else: try: review_group_name = "teachers_{0}".format(task.course.name) except Exception: pass review_group_name = review_group_name.replace(".", "_") review_group_name = review_group_name.replace("/", "_") review_group_name = review_group_name.lower() anyrb = AnyRB() description = self._get_description(request, task, svn_path, rev_a, rev_b) if review_id is None: review_id = anyrb.submit_review(user, rev_a, rev_b, summary=summary, description=description, review_group_name=", ".join((review_group_name, settings.RB_API_DEFAULT_REVIEW_GROUP)), path=svn_path) else: anyrb.update_review(user, rev_a, rev_b, review_id, description=description, path=svn_path) issue.rb_review_id = review_id issue.save() context = { 'review_url' : anyrb.get_review_url(request, review_id), 'task' : task, } return render_to_response('submit_review_done.html', context, context_instance=RequestContext(request))