Skip to content
This repository has been archived by the owner on Jun 29, 2020. It is now read-only.

Commit

Permalink
コメント追加時の通知のテストケース書いた。各Activityのテストでテンプレートのレンダリングも見るようにした
Browse files Browse the repository at this point in the history
  • Loading branch information
giginet committed Oct 23, 2014
1 parent 9e4d055 commit e42ab54
Show file tree
Hide file tree
Showing 9 changed files with 88 additions and 10 deletions.
3 changes: 3 additions & 0 deletions src/kawaz/apps/blogs/tests/test_activity.py
Expand Up @@ -19,3 +19,6 @@ def test_update(self):

def test_delete(self):
self._test_delete()

def test_add_comment(self):
self._test_add_comment()
10 changes: 10 additions & 0 deletions src/kawaz/apps/events/activity.py
@@ -1,6 +1,8 @@
# coding=utf-8
"""
"""
from django_comments import Comment

__author__ = 'Alisue <lambdalisue@hashnote.net>'
from django.contrib.contenttypes.models import ContentType
from kawaz.core.personas.models import Persona
Expand Down Expand Up @@ -96,4 +98,12 @@ def prepare_context(self, activity, context, typename=None):
context['users'] = users
context['user'] = users[0]
context['user_count'] = users.count()
elif activity.status == 'add_comment':
# コメントが付いたとき、remarksにcommentのpkが入ってるはずなので
# 取得してcontextに渡す
try:
comment = Comment.objects.get(pk=int(activity.remarks))
context['comment'] = comment
except:
pass
return context
7 changes: 6 additions & 1 deletion src/kawaz/apps/events/tests/test_activity.py
Expand Up @@ -4,11 +4,13 @@
from django.utils import timezone
from activities.models import Activity
from .factories import EventFactory, PersonaFactory
from kawaz.core.activities.tests.testcases import BaseActivityMediatorTestCase
from ..models import Event
from ..activity import EventActivityMediator


class EventActivityMediatorTestCase(TestCase):
class EventActivityMediatorTestCase(BaseActivityMediatorTestCase):
factory_class = EventFactory

def test_create_event(self):
nactivity = Activity.objects.get_for_model(Event).count()
Expand Down Expand Up @@ -98,3 +100,6 @@ def test_quit_event(self):
self.assertEqual(activity.snapshot, event)
self.assertEqual(activity.status, 'user_removed')
self.assertTrue(str(user2.pk) in activity.remarks)

def test_add_comment(self):
self._test_add_comment()
10 changes: 10 additions & 0 deletions src/kawaz/apps/products/activity.py
Expand Up @@ -2,6 +2,8 @@
#
# created by giginet on 2014/10/15
#
from django_comments import Comment

__author__ = 'giginet'
from activities.mediator import ActivityMediator

Expand Down Expand Up @@ -55,4 +57,12 @@ def prepare_context(self, activity, context, typename=None):
# remarks に保存された変更状態を利便のためフラグ化
for flag in activity.remarks.split():
context[flag] = True
elif activity.status == 'add_comment':
# コメントが付いたとき、remarksにcommentのpkが入ってるはずなので
# 取得してcontextに渡す
try:
comment = Comment.objects.get(pk=int(activity.remarks))
context['comment'] = comment
except:
pass
return context
3 changes: 3 additions & 0 deletions src/kawaz/apps/products/tests/test_activity.py
Expand Up @@ -19,3 +19,6 @@ def test_update(self):

def test_delete(self):
self._test_delete()

def test_add_comment(self):
self._test_add_comment()
9 changes: 9 additions & 0 deletions src/kawaz/apps/projects/activity.py
Expand Up @@ -3,6 +3,7 @@
# created by giginet on 2014/10/15
#
from django.contrib.contenttypes.models import ContentType
from django_comments import Comment
from kawaz.core.personas.models import Persona
from activities.models import Activity
from activities.mediator import ActivityMediator
Expand Down Expand Up @@ -97,4 +98,12 @@ def prepare_context(self, activity, context, typename=None):
context['users'] = users
context['user'] = users[0]
context['user_count'] = users.count()
elif activity.status == 'add_comment':
# コメントが付いたとき、remarksにcommentのpkが入ってるはずなので
# 取得してcontextに渡す
try:
comment = Comment.objects.get(pk=int(activity.remarks))
context['comment'] = comment
except:
pass
return context
3 changes: 3 additions & 0 deletions src/kawaz/apps/projects/tests/test_activity.py
Expand Up @@ -19,3 +19,6 @@ def test_update(self):

def test_delete(self):
self._test_delete()

def test_add_comment(self):
self._test_add_comment()
35 changes: 35 additions & 0 deletions src/kawaz/core/activities/tests/testcases.py
Expand Up @@ -7,6 +7,7 @@
from django.test import TestCase
from activities.models import Activity
from activities.registry import registry
from kawaz.core.comments.tests.factories import CommentFactory

__author__ = 'giginet'

Expand All @@ -22,6 +23,8 @@ def _test_create(self):
self.assertEqual(activities[0].status, 'created')
self.assertEqual(activities[0].snapshot, self.object)

self._test_render(activities[0])

def _test_partial_update(self, context_names = (), **fields):
activities = Activity.objects.get_for_object(self.object)
self.assertEqual(len(activities), 1)
Expand All @@ -39,10 +42,42 @@ def _test_partial_update(self, context_names = (), **fields):
for name in context_names:
self.assertTrue(name in context, 'context variable {} is not contained'.format(name))

self._test_render(activities[0])

def _test_delete(self):
ct = ContentType.objects.get_for_model(self.object)
pk = self.object.pk
self.object.delete()
activity = Activity.objects.filter(content_type=ct, object_id=pk).first()

self.assertEqual(activity.status, 'deleted')

self._test_render(activity)

def _test_add_comment(self):
"""
commentしたときに、add_commentが発行される
"""
nactivities = Activity.objects.get_for_object(self.object).count()

# コメントをする
comment = CommentFactory(content_object=self.object)

activities = Activity.objects.get_for_object(self.object)
self.assertEqual(nactivities + 1, activities.count())

activity = activities[0]
self.assertEqual(activity.status, 'add_comment')
self.assertEqual(activity.snapshot, self.object)
# remarksにコメントのpkが入る
self.assertEqual(activity.remarks, str(comment.pk))

self._test_render(activity)
mediator = registry.get(activity)
context = mediator.prepare_context(activity, Context())
self.assertTrue('comment' in context, """context doesn't contain 'comment'""")


def _test_render(self, activity):
mediator = registry.get(activity)
self.assertTrue(mediator.render(activity, Context()))
18 changes: 9 additions & 9 deletions src/kawaz/core/comments/tests/test_activity.py
Expand Up @@ -19,34 +19,34 @@ def test_add_comment(self):
"""
あるオブジェクトにコメントが付いたとき、そのオブジェクトのイベントとして、`add_comment`Activityが付く
"""
object = CommentTestArticleFactory()
target_object = CommentTestArticleFactory()

nactivities = Activity.objects.get_for_object(object).count()
nactivities = Activity.objects.get_for_object(target_object).count()

# コメントをする
comment = CommentFactory(content_object=object)
comment = CommentFactory(content_object=target_object)

activities = Activity.objects.get_for_object(object)
activities = Activity.objects.get_for_object(target_object)
self.assertEqual(nactivities + 1, activities.count())

activity = activities[0]
self.assertEqual(activity.status, 'add_comment')
self.assertEqual(activity.snapshot, object)
self.assertEqual(activity.snapshot, target_object)
# remarksにコメントのpkが入る
self.assertEqual(activity.remarks, str(comment.pk))

def test_render_add_comment(self):
"""
render_activityでadd_commentが正しく表示できる
"""
object = CommentTestArticleFactory()
target_object = CommentTestArticleFactory()

nactivities = Activity.objects.get_for_object(object).count()
nactivities = Activity.objects.get_for_object(target_object).count()

# コメントをする
CommentFactory(content_object=object)
CommentFactory(content_object=target_object)

activities = Activity.objects.get_for_object(object)
activities = Activity.objects.get_for_object(target_object)
self.assertEqual(nactivities + 1, activities.count())

activity = activities[0]
Expand Down

0 comments on commit e42ab54

Please sign in to comment.