2016-06-11 15:28:39 +00:00
|
|
|
from django.contrib.auth.models import User
|
2016-06-19 23:00:08 +00:00
|
|
|
from django.contrib.sites.models import Site
|
2016-06-11 15:28:39 +00:00
|
|
|
from django.core.urlresolvers import reverse
|
2016-06-12 14:40:23 +00:00
|
|
|
from django.test import TestCase
|
2016-06-07 20:59:13 +00:00
|
|
|
|
2016-06-19 23:00:08 +00:00
|
|
|
from accounts.models import Participation
|
|
|
|
|
|
|
|
from .models import Speech, Talk, Topic
|
2016-06-11 15:28:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
class ProposalsTests(TestCase):
|
|
|
|
def setUp(self):
|
2016-06-19 23:00:08 +00:00
|
|
|
a, b, c = (User.objects.create_user(guy, email='%s@example.org' % guy, password=guy) for guy in 'abc')
|
|
|
|
Participation.objects.create(user=a, site=Site.objects.first())
|
|
|
|
Topic.objects.create(name='topipo')
|
|
|
|
c.is_superuser = True
|
|
|
|
c.save()
|
2016-06-11 15:28:39 +00:00
|
|
|
|
2016-06-12 19:09:52 +00:00
|
|
|
def test_everything(self):
|
2016-06-11 15:28:39 +00:00
|
|
|
# talk-edit
|
|
|
|
self.client.login(username='a', password='a')
|
2016-06-19 23:00:08 +00:00
|
|
|
self.client.post(reverse('add-talk'), {'title': 'super talk', 'description': 'super', 'event': 1, 'topics': 1})
|
2016-06-11 15:28:39 +00:00
|
|
|
self.assertEqual(str(Talk.on_site.first()), 'super talk')
|
|
|
|
self.client.post(reverse('edit-talk', kwargs={'talk': 'super-talk'}),
|
2016-06-12 20:45:22 +00:00
|
|
|
{'title': 'mega talk', 'description': 'mega', 'event': 1})
|
2016-06-11 15:28:39 +00:00
|
|
|
self.assertEqual(str(Talk.on_site.first()), 'mega talk')
|
|
|
|
|
|
|
|
# Status Code
|
|
|
|
self.client.login(username='a', password='a')
|
|
|
|
for view in ['home', 'list-talks', 'add-talk', 'list-topics', 'list-speakers']:
|
|
|
|
self.assertEqual(self.client.get(reverse(view)).status_code, 200)
|
|
|
|
talk = Talk.on_site.first()
|
2016-06-12 16:35:59 +00:00
|
|
|
self.assertEqual(self.client.get(reverse('edit-talk', kwargs={'talk': talk.slug})).status_code, 200)
|
|
|
|
self.assertEqual(self.client.get(reverse('show-talk', kwargs={'slug': talk.slug})).status_code, 200)
|
2016-06-11 15:28:39 +00:00
|
|
|
self.assertEqual(self.client.get(reverse('list-talks-by-speaker', kwargs={'speaker': 'a'})).status_code, 200)
|
2016-06-12 19:09:52 +00:00
|
|
|
self.assertEqual(self.client.get(reverse('show-speaker', kwargs={'username': 'a'})).status_code, 200)
|
2016-06-11 15:28:39 +00:00
|
|
|
|
|
|
|
self.client.login(username='b', password='b')
|
|
|
|
self.assertEqual(self.client.post(reverse('edit-talk', kwargs={'talk': 'super-talk'}),
|
2016-06-12 20:45:22 +00:00
|
|
|
{'title': 'mega talk', 'description': 'mega', 'event': 1}).status_code, 403)
|
2016-06-11 15:28:39 +00:00
|
|
|
self.assertEqual(self.client.get(reverse('list-talks')).status_code, 200)
|
2016-06-12 19:09:52 +00:00
|
|
|
|
|
|
|
# Models str & get_asbolute_url
|
2016-06-12 21:39:04 +00:00
|
|
|
for model in [Talk, Topic, Speech]:
|
2016-06-12 19:09:52 +00:00
|
|
|
item = model.objects.first()
|
|
|
|
self.assertEqual(self.client.get(item.get_absolute_url()).status_code, 200)
|
|
|
|
self.assertTrue(str(item))
|
2016-06-13 00:00:30 +00:00
|
|
|
self.assertEqual(Speech.objects.first().username(), 'a')
|
2016-06-19 23:00:08 +00:00
|
|
|
|
|
|
|
# Talkis_editable_by
|
|
|
|
a, b, c = User.objects.all()
|
|
|
|
self.assertTrue(talk.is_editable_by(c))
|
|
|
|
Speech.objects.create(talk=talk, speaker=b, order=2)
|
|
|
|
self.assertTrue(talk.is_editable_by(b))
|