Skip to content
Snippets Groups Projects
Commit 87597b27 authored by HeJ's avatar HeJ
Browse files

core: test resolve_internal_url() as used in navigation & wiki

parent 4982e4b6
Branches
Tags
No related merge requests found
import uuid
from datetime import timedelta
from django.conf import settings
from django.test import TestCase
from django.urls import reverse
from django.utils.timezone import now
from core.utils import GitRepo, mail2uuid, mask_url, scheme_and_netloc_from_url, str2timedelta
from core.models import Assembly, Conference, ConferenceMember, Event, PlatformUser, Room
from core.utils import GitRepo, mail2uuid, mask_url, resolve_internal_url, scheme_and_netloc_from_url, str2timedelta
class UtilsTests(TestCase):
......@@ -47,6 +51,46 @@ class UtilsTests(TestCase):
self.assertEqual(expected_uuid, mail2uuid('hub@cccv.de'))
class InternalUrlTests(TestCase):
def setUp(self):
self.conference1 = Conference(slug='foo', name='Foo Conference', start=now() - timedelta(days=1), end=now() + timedelta(days=1))
self.conference1.save()
self.user = PlatformUser(username='bernd')
self.user.save()
ConferenceMember(conference=self.conference1, user=self.user).save()
self.assembly1a = Assembly(conference=self.conference1, slug='fnord', name='Fnord Assembly', is_official=True)
self.assembly1a.save()
self.room1a = Room(conference=self.conference1, assembly=self.assembly1a, name='Saal 1', room_type=Room.RoomType.LECTURE_HALL)
self.room1a.save()
self.valid_event = {
'conference': self.conference1,
'assembly': self.assembly1a,
'name': 'testEvent',
'slug': 'testEvent',
'kind': Event.Kind.ASSEMBLY,
'room': self.room1a,
'schedule_start': now(),
'schedule_duration': timedelta(hours=1),
'is_public': True,
}
def test_resolve_internal_url(self):
base_url = settings.PLAINUI_BASE_URL
checks = [
('https://example.com/foo?bar=baz', 'https://example.com/foo?bar=baz'),
('conference://assemblies', base_url + reverse('plainui:assemblies')),
('conference://assemblies?foo=bar', base_url + reverse('plainui:assemblies') + '?foo=bar'),
('assembly://fnord', base_url + reverse('plainui:assembly', kwargs={'assembly_slug': 'fnord'})),
]
for check in checks:
self.assertEqual(check[1], resolve_internal_url(check[0]))
class GitRepoOfflineTests(TestCase):
def test_invalid_url_local_path(self):
with self.assertRaisesMessage(ValueError, 'Invalid protocol file'):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment