tests
This commit is contained in:
parent
000878b9a3
commit
ecb2c70245
|
@ -3,7 +3,7 @@ from django.contrib.auth.decorators import login_required
|
||||||
from django.core.exceptions import PermissionDenied
|
from django.core.exceptions import PermissionDenied
|
||||||
from django.shortcuts import get_object_or_404, render
|
from django.shortcuts import get_object_or_404, render
|
||||||
|
|
||||||
from .forms import ProfileForm, UserForm, ParticipationForm
|
from .forms import ParticipationForm, ProfileForm, UserForm
|
||||||
from .models import Participation
|
from .models import Participation
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ class ConversationAboutTalk(Conversation):
|
||||||
return "Conversation about %s" % self.talk.title
|
return "Conversation about %s" % self.talk.title
|
||||||
|
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
self.talk.get_absolute_url()
|
return self.talk.get_absolute_url()
|
||||||
|
|
||||||
def get_site(self):
|
def get_site(self):
|
||||||
return self.talk.site
|
return self.talk.site
|
||||||
|
|
|
@ -4,20 +4,30 @@ from django.core.urlresolvers import reverse
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
|
||||||
from accounts.models import Participation
|
from accounts.models import Participation
|
||||||
|
from proposals.models import Talk
|
||||||
|
|
||||||
from .models import ConversationWithParticipant, Message
|
from .models import ConversationAboutTalk, ConversationWithParticipant, Message
|
||||||
|
|
||||||
|
|
||||||
class ConversationTests(TestCase):
|
class ConversationTests(TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
a, b, c = (User.objects.create_user(guy, email='%s@example.org' % guy, password=guy) for guy in 'abc')
|
a, b, c, d = (User.objects.create_user(guy, email='%s@example.org' % guy, password=guy) for guy in 'abcd')
|
||||||
|
d.is_superuser = True
|
||||||
|
d.save()
|
||||||
pa, _ = Participation.objects.get_or_create(user=a, site=Site.objects.first())
|
pa, _ = Participation.objects.get_or_create(user=a, site=Site.objects.first())
|
||||||
conversation, _ = ConversationWithParticipant.objects.get_or_create(participation=pa)
|
conversation, _ = ConversationWithParticipant.objects.get_or_create(participation=pa)
|
||||||
Message.objects.create(content='allo', conversation=conversation, author=b)
|
Message.objects.create(content='allo', conversation=conversation, author=b)
|
||||||
|
Message.objects.create(content='aluil', conversation=conversation, author=a)
|
||||||
|
Talk.objects.get_or_create(site=Site.objects.first(), proposer=a, title='a talk', description='yay')
|
||||||
|
|
||||||
def test_models(self):
|
def test_models(self):
|
||||||
self.assertEqual(str(ConversationWithParticipant.objects.first()), 'Conversation with a')
|
talk, participant, message = (model.objects.first() for model in
|
||||||
self.assertEqual(str(Message.objects.first()), 'Message from b')
|
(ConversationAboutTalk, ConversationWithParticipant, Message))
|
||||||
|
self.assertEqual(str(talk), 'Conversation about a talk')
|
||||||
|
self.assertEqual(str(participant), 'Conversation with a')
|
||||||
|
self.assertEqual(str(message), 'Message from b')
|
||||||
|
self.assertEqual(message.get_absolute_url(), '/conversations/with/a/')
|
||||||
|
self.assertEqual(talk.get_absolute_url(), '/talk/details/a-talk')
|
||||||
|
|
||||||
def test_views(self):
|
def test_views(self):
|
||||||
url = ConversationWithParticipant.objects.first().get_absolute_url()
|
url = ConversationWithParticipant.objects.first().get_absolute_url()
|
||||||
|
@ -27,3 +37,6 @@ class ConversationTests(TestCase):
|
||||||
self.assertEqual(self.client.get(reverse('correspondents')).status_code, 200)
|
self.assertEqual(self.client.get(reverse('correspondents')).status_code, 200)
|
||||||
self.assertEqual(self.client.get(reverse('inbox')).status_code, 200)
|
self.assertEqual(self.client.get(reverse('inbox')).status_code, 200)
|
||||||
self.client.post(reverse('inbox'), {'content': 'coucou'})
|
self.client.post(reverse('inbox'), {'content': 'coucou'})
|
||||||
|
self.client.login(username='d', password='d')
|
||||||
|
self.client.post(url, {'content': 'im superuser'})
|
||||||
|
self.assertEqual(Message.objects.last().content, 'im superuser')
|
||||||
|
|
|
@ -180,3 +180,4 @@ AUTHENTICATION_BACKENDS = ['yeouia.backends.YummyEmailOrUsernameInsensitiveAuth'
|
||||||
LOGOUT_REDIRECT_URL = 'home'
|
LOGOUT_REDIRECT_URL = 'home'
|
||||||
|
|
||||||
ACCOUNT_ACTIVATION_DAYS = 7 # django-registration
|
ACCOUNT_ACTIVATION_DAYS = 7 # django-registration
|
||||||
|
REPLY_EMAIL = 'no-reply@example.org'
|
||||||
|
|
|
@ -21,14 +21,16 @@ class ProposalsTests(TestCase):
|
||||||
self.client.login(username='a', password='a')
|
self.client.login(username='a', password='a')
|
||||||
self.client.post(reverse('add-talk'), {'title': 'super talk', 'description': 'super', 'event': 1, 'topics': 1})
|
self.client.post(reverse('add-talk'), {'title': 'super talk', 'description': 'super', 'event': 1, 'topics': 1})
|
||||||
self.assertEqual(str(Talk.on_site.first()), 'super talk')
|
self.assertEqual(str(Talk.on_site.first()), 'super talk')
|
||||||
|
self.assertEqual(Talk.on_site.first().description, 'super')
|
||||||
self.client.post(reverse('edit-talk', kwargs={'talk': 'super-talk'}),
|
self.client.post(reverse('edit-talk', kwargs={'talk': 'super-talk'}),
|
||||||
{'title': 'mega talk', 'description': 'mega', 'event': 1})
|
{'title': 'mega talk', 'description': 'mega', 'event': 1})
|
||||||
self.assertEqual(str(Talk.on_site.first()), 'mega talk')
|
self.assertEqual(str(Talk.on_site.first()), 'super talk') # title is read only there
|
||||||
|
self.assertEqual(Talk.on_site.first().description, 'mega')
|
||||||
|
|
||||||
# Status Code
|
# Status Code
|
||||||
self.client.login(username='a', password='a')
|
self.client.login(username='a', password='a')
|
||||||
for view in ['home', 'list-talks', 'add-talk', 'list-topics', 'list-speakers']:
|
for view in ['home', 'list-talks', 'add-talk', 'list-topics', 'list-speakers']:
|
||||||
self.assertEqual(self.client.get(reverse(view)).status_code, 200)
|
self.assertEqual(self.client.get(reverse(view)).status_code, 302 if view == 'list-speakers' else 200)
|
||||||
talk = Talk.on_site.first()
|
talk = Talk.on_site.first()
|
||||||
self.assertEqual(self.client.get(reverse('edit-talk', kwargs={'talk': talk.slug})).status_code, 200)
|
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)
|
self.assertEqual(self.client.get(reverse('show-talk', kwargs={'slug': talk.slug})).status_code, 200)
|
||||||
|
|
|
@ -49,9 +49,7 @@ def talk_list_by_speaker(request, speaker):
|
||||||
@login_required
|
@login_required
|
||||||
def talk_edit(request, talk=None):
|
def talk_edit(request, talk=None):
|
||||||
if talk:
|
if talk:
|
||||||
talk = get_object_or_404(Talk, slug=talk)
|
talk = get_object_or_404(Talk, slug=talk, site=get_current_site(request))
|
||||||
if talk.site != get_current_site(request):
|
|
||||||
raise PermissionDenied()
|
|
||||||
if not talk.is_editable_by(request.user):
|
if not talk.is_editable_by(request.user):
|
||||||
raise PermissionDenied()
|
raise PermissionDenied()
|
||||||
form = TalkForm(request.POST or None, instance=talk)
|
form = TalkForm(request.POST or None, instance=talk)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user