Source code for intranet.apps.cslapps.tests

from django.urls import reverse

from ...test.ion_test import IonTestCase
from ..groups.models import Group
from .models import App


[docs]class AppsTest(IonTestCase): """Tests for the CSL Apps module"""
[docs] def test_app_requests(self): # Test anonymous request response = self.client.get(reverse("apps")) self.assertRedirects(response, "/login?next=" + reverse("apps"), status_code=302) # Test request to an app that is available to everyone user = self.login() app = App.objects.create( name="Test", auth_url="http://localhost:8080/login", url="http://localhost:8080", image_url="http://localhost:8080/favicon.ico", ) response = self.client.get(reverse("apps") + "?id=" + str(app.id)) # Check if redirect is done correctly and if cookie is set self.assertRedirects(response, "http://localhost:8080/login", status_code=302) self.assertEqual(response.client.cookies["accessed_csl-app_" + str(app.id)].value, "1") # Test request to an app only available to specific groups group = Group.objects.get_or_create(name="Restricted group")[0] restricted_app = App.objects.create( name="Restricted", order="1", auth_url="http://127.0.0.1:8080/login", url="http://127.0.0.1:8080", html_icon="<i class=fas fa-cloud></i>", ) restricted_app.groups_visible.add(group) response = self.client.get(reverse("apps") + "?id=" + str(restricted_app.id)) # The user is not authorized to access the app, so redirect to home page self.assertRedirects(response, "/", status_code=302) # Add the user to the group and try again user.groups.add(group) response = self.client.get(reverse("apps") + "?id=" + str(restricted_app.id)) self.assertRedirects(response, "http://127.0.0.1:8080/login", status_code=302) self.assertEqual(response.client.cookies["accessed_csl-app_" + str(app.id)].value, "1")
[docs] def test_create_app(self): app = App.objects.create(name="Test", url="http://localhost:8080", image_url="http://localhost:8080/favicon.ico") self.assertEqual(app.name, "Test") self.assertEqual(app.auth_url, "") self.assertEqual(app.html_icon, "")