Test video upload

This commit is contained in:
Yohann D'ANELLO 2020-09-27 16:52:52 +02:00
parent 4b8ed14180
commit 366f0c40a0
5 changed files with 30 additions and 4 deletions

View File

@ -2,7 +2,7 @@ stages:
- test
- quality-assurance
py38-django31:
py38:
stage: test
image: python:3-alpine
before_script:

View File

@ -122,6 +122,32 @@ class TestStudentParticipation(TestCase):
self.assertRedirects(response, reverse("participation:team_detail", args=(self.team.pk,)), 302, 200)
self.assertTrue(Team.objects.filter(trigram="BBB", participation__problem=3).exists())
def test_participation_detail(self):
self.user.registration.team = self.team
self.user.registration.save()
response = self.client.get(reverse("participation:participation_detail", args=(self.team.participation.pk,)))
self.assertEqual(response.status_code, 200)
def test_upload_video(self):
self.user.registration.team = self.team
self.user.registration.save()
response = self.client.get(reverse("participation:upload_video", args=(self.team.participation.solution.pk,)))
self.assertEqual(response.status_code, 200)
response = self.client.post(reverse("participation:upload_video", args=(self.team.participation.solution.pk,)),
data=dict(link="https://youtube.com/watch?v=73nsrixx7eI"))
self.assertRedirects(response,
reverse("participation:participation_detail", args=(self.team.participation.id,)),
302, 200)
self.team.participation.refresh_from_db()
self.assertEqual(self.team.participation.solution.platform, "youtube")
self.assertEqual(self.team.participation.solution.youtube_code, "73nsrixx7eI")
response = self.client.get(reverse("participation:participation_detail", args=(self.team.participation.pk,)))
self.assertEqual(response.status_code, 200)
class TestAdminForbidden(TestCase):
def setUp(self) -> None:

View File

@ -147,7 +147,7 @@ class UploadVideoView(LoginRequiredMixin, UpdateView):
def dispatch(self, request, *args, **kwargs):
user = request.user
if user.registration.is_admin or user.registration.participates\
and user.registration.team.participation.pk == self.object.participation.pk:
and user.registration.team.participation.pk == self.get_object().participation.pk:
return super().dispatch(request, *args, **kwargs)
raise PermissionDenied

View File

@ -4,7 +4,7 @@ from corres2math.tokens import email_validation_token
from django.conf import settings
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from django.core.exceptions import ValidationError, PermissionDenied
from django.core.exceptions import PermissionDenied, ValidationError
from django.db import transaction
from django.http import FileResponse, Http404
from django.shortcuts import redirect, resolve_url

View File

@ -1,6 +1,6 @@
[tox]
envlist =
py38-django31
py38
linters
skipsdist = True