conversations quick tests
This commit is contained in:
parent
8bcb679e23
commit
e4f413adcc
|
@ -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)
|
||||||
|
|
|
@ -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'),
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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):
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 %}
|
|
@ -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)
|
||||||
|
|
|
@ -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'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -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):
|
||||||
|
|
||||||
|
|
|
@ -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,
|
||||||
})
|
})
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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')
|
||||||
|
|
Loading…
Reference in New Issue