conversations quick tests

This commit is contained in:
Guilhem Saurel 2016-06-13 02:00:30 +02:00
parent 8bcb679e23
commit e4f413adcc
13 changed files with 55 additions and 17 deletions

View File

@ -1,6 +1,6 @@
from django.contrib import messages
from django.contrib.auth.signals import user_logged_in, user_logged_out from django.contrib.auth.signals import user_logged_in, user_logged_out
from django.dispatch import receiver from django.dispatch import receiver
from django.contrib import messages
@receiver(user_logged_in) @receiver(user_logged_in)

View File

@ -1,8 +1,8 @@
from django.conf import settings
from django.conf.urls import include, url from django.conf.urls import include, url
from django.contrib.auth import views as auth_views from django.contrib.auth import views as auth_views
from .views import profile from .views import profile
from django.conf import settings
urlpatterns = [ urlpatterns = [
url(r'^profile$', profile, name='profile'), url(r'^profile$', profile, name='profile'),

View File

@ -2,6 +2,5 @@ from django.contrib import admin
from .models import Conversation, Message from .models import Conversation, Message
admin.site.register(Conversation) admin.site.register(Conversation)
admin.site.register(Message) admin.site.register(Message)

View File

@ -1,5 +1,6 @@
from django.db import models
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.db import models
from accounts.models import Speaker from accounts.models import Speaker
@ -12,6 +13,9 @@ class Conversation(models.Model):
def __str__(self): def __str__(self):
return "Conversation with %s" % self.speaker return "Conversation with %s" % self.speaker
def get_absolute_url(self):
return reverse('show-conversation', kwargs={'conversation': self.pk})
class Message(models.Model): class Message(models.Model):

View File

@ -1,11 +1,10 @@
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.conf import settings from django.conf import settings
from django.core.urlresolvers import reverse
from django.template.loader import render_to_string
from django.core import mail from django.core import mail
from django.core.mail import EmailMultiAlternatives from django.core.mail import EmailMultiAlternatives
from django.core.urlresolvers import reverse
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.template.loader import render_to_string
from .models import Message from .models import Message
from .utils import get_reply_addr from .utils import get_reply_addr

View File

@ -0,0 +1,13 @@
{% extends 'base.html' %}
{% block content %}
<div class="h1">{{ conversation }}</div>
{# for message in conversation.messages %}
<p>{{ message }}</p>
{% endfor #}
<!-- TODO -->
{% endblock %}

View File

@ -1,5 +1,27 @@
from django.contrib.auth.models import User
from django.contrib.sites.models import Site
from django.test import TestCase from django.test import TestCase
from accounts.models import Speaker
from .models import Conversation, Message
from .utils import get_reply_addr
class ConversationTests(TestCase): class ConversationTests(TestCase):
pass def setUp(self):
a, b = (User.objects.create_user(guy, email='%s@example.org' % guy, password=guy) for guy in 'ab')
speaker = Speaker.objects.create(user=a, site=Site.objects.first())
conversation = Conversation.objects.create(speaker=speaker)
Message.objects.create(token='pipo', conversation=conversation, author=a, content='allo')
def test_models(self):
self.assertEqual(str(Conversation.objects.first()), 'Conversation with a')
self.assertEqual(str(Message.objects.first()), 'Message from a')
def test_views(self):
self.assertEqual(self.client.get(Conversation.objects.first().get_absolute_url()).status_code, 200)
def test_utils(self):
ret = ['pipo+ 11183704aabfddb3d694ff4f24c0daadfa2d8d2193336e345f92a6fd3ffb6a19e7@example.org']
self.assertEqual(get_reply_addr(1, User.objects.first()), ret)

View File

@ -2,7 +2,6 @@ from django.conf.urls import url
from conversations import views from conversations import views
urlpatterns = [ urlpatterns = [
url(r'^(?P<conversation>[0-9]+)$', views.conversation_details, name='show-conversation'), url(r'^(?P<conversation>[0-9]+)$', views.conversation_details, name='show-conversation'),
] ]

View File

@ -1,7 +1,7 @@
from django.conf import settings
import hashlib import hashlib
from django.conf import settings
def hexdigest_sha256(*args): def hexdigest_sha256(*args):

View File

@ -1,5 +1,5 @@
from django.shortcuts import get_object_or_404, render
from django.contrib.sites.shortcuts import get_current_site from django.contrib.sites.shortcuts import get_current_site
from django.shortcuts import get_object_or_404, render
from .models import Conversation from .models import Conversation
@ -7,5 +7,5 @@ from .models import Conversation
def conversation_details(request, conversation): def conversation_details(request, conversation):
conversation = get_object_or_404(Conversation, id=conversation, speaker__site=get_current_site(request)) conversation = get_object_or_404(Conversation, id=conversation, speaker__site=get_current_site(request))
return render(request, 'conversations/message.html', { return render(request, 'conversations/message.html', {
'messages': conversation.messages, 'conversation': conversation,
}) })

View File

@ -178,3 +178,4 @@ BOOTSTRAP3 = {
AUTHENTICATION_BACKENDS = ['yeouia.backends.YummyEmailOrUsernameInsensitiveAuth'] AUTHENTICATION_BACKENDS = ['yeouia.backends.YummyEmailOrUsernameInsensitiveAuth']
LOGOUT_REDIRECT_URL = 'home' LOGOUT_REDIRECT_URL = 'home'
REPLY_EMAIL = 'pipo@example.org'

View File

@ -2,7 +2,7 @@ from django.contrib.auth.models import User
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.test import TestCase from django.test import TestCase
from .models import Talk, Topic, Speech from .models import Speech, Talk, Topic
class ProposalsTests(TestCase): class ProposalsTests(TestCase):
@ -40,3 +40,4 @@ class ProposalsTests(TestCase):
item = model.objects.first() item = model.objects.first()
self.assertEqual(self.client.get(item.get_absolute_url()).status_code, 200) self.assertEqual(self.client.get(item.get_absolute_url()).status_code, 200)
self.assertTrue(str(item)) self.assertTrue(str(item))
self.assertEqual(Speech.objects.first().username(), 'a')

View File

@ -1,5 +1,5 @@
[coverage:run] [coverage:run]
source = accounts, ponyconf, proposals source = accounts, ponyconf, proposals, conversations
omit = */migrations/*, */apps.py, ponyconf/wsgi.py omit = */migrations/*, */apps.py, ponyconf/wsgi.py
[flake8] [flake8]