Skip to content

Commit

Permalink
Add tests for homepage
Browse files Browse the repository at this point in the history
  • Loading branch information
JakobGM committed Aug 20, 2017
1 parent 53f7252 commit 8959be8
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 3 deletions.
53 changes: 51 additions & 2 deletions semesterpage/tests/test_views.py
@@ -1,11 +1,12 @@
import datetime
from unittest.mock import MagicMock

from django.contrib.auth.models import User

import pytest

from .factories import CourseFactory
from ..views import profile
from .factories import CourseFactory, SemesterFactory
from ..views import homepage, profile
from dataporten.tests.factories import DataportenUserFactory

class TestProfileView:
Expand Down Expand Up @@ -54,3 +55,51 @@ def test_superuser_being_given_history_access(self, client):
CourseFactory(pk=1)
response = client.get('/oppdater/semesterpage/course/1/history/')
assert response.status_code == 200


class TestHomepageView:
@pytest.mark.django_db
def test_logged_in_user_visiting_homepage(self, client):
"""
The user is authenticated, and should be redirected to their homepage.
"""
User.objects.create_user(
username='olan',
password='123',
)
client.login(username='olan', password='123')

response = client.get('/', follow=True)
assert response.redirect_chain == [(
'/olan/',
302,
)]

@pytest.mark.django_db
def test_user_with_old_visit_to_student_page(self, rf):
"""
The user has a saved homepage, and can be redirected without logging in.
"""
request = MagicMock()
request.user.is_authenticated = False
request.session = {'homepage': 'username'}

response = homepage(request)
assert response.url == '/username/'

@pytest.mark.django_db
def test_user_with_old_visit_to_semester(self, rf):
"""
The user has visited a semester before, and can be redirected.
"""
semester = SemesterFactory(
pk=1,
study_program__display_name='fysmat',
main_profile=None,
number=1,
)
request = MagicMock()
request.user.is_authenticated = False
request.session = {'semester_pk': 1}
response = homepage(request)
assert response.url == '/fysmat/1/'
2 changes: 1 addition & 1 deletion semesterpage/views.py
Expand Up @@ -35,7 +35,7 @@ def homepage(request):
return redirect(to=request.user.options.get_absolute_url())
elif request.session.get('homepage', ''):
# If the student has visited a student page before, redirect
return redirect(reverse(
return redirect(django_reverse(
'semesterpage-studyprogram',
args=(request.session.get('homepage'),)
))
Expand Down

0 comments on commit 8959be8

Please sign in to comment.