"views/entry.py" did not exist on "42fa2eb965dfa1a12cd6a17c559267b1f7957860"
Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
import re
from cubicweb.devtools.testlib import EnvBasedTC
from cubicweb.web.views import actions
from cubes.comment import views
class CommentTC(EnvBasedTC):
"""Comment"""
def test_schema(self):
self.assertEquals(self.schema['comments'].rproperty('Comment', 'BlogEntry', 'composite'),
'object')
def setup_database(self):
super(CommentTC, self).setup_database()
self.b = self.execute('INSERT BlogEntry X: X title "yo", X content "qu\'il est beau"').get_entity(0, 0)
self.c = self.execute('INSERT Comment X: X content "bouh!", X comments B WHERE B is BlogEntry')
self.create_user('user')
def test_possible_views(self):
# comment primary view priority
rset, req = self.env.get_rset_and_req('Comment X')
self.assertIsInstance(self.vreg.select_view('primary', req, rset),
views.CommentPrimaryView)
self.assertIsInstance(self.vreg.select_view('tree', req, rset),
views.CommentThreadView)
def test_possible_actions(self):
rset, req = self.rset_and_req('Any X WHERE X is BlogEntry')
self.failUnlessEqual(self.pactions(req, rset),
[('edit', actions.ModifyAction),
('delete', actions.DeleteAction),
('copy', actions.CopyAction),
('reply_comment', views.AddCommentAction)])
rset, req = self.rset_and_req('Any X WHERE X is Comment')
self.failUnlessEqual(self.pactions(req, rset),
[('edit', actions.ModifyAction),
('delete', actions.DeleteAction),
('copy', actions.CopyAction),
('edit_comment', views.EditCommentAction),
('reply_comment', views.ReplyCommentAction)])
cnx = self.login('user')
rset, req = self.rset_and_req('Any X WHERE X is Comment')
self.failUnlessEqual(self.pactions(req, rset),
[('copy', actions.CopyAction),
('reply_comment', views.ReplyCommentAction)])
rset = self.execute('INSERT Comment X: X content "ho bah non!", X comments B WHERE B is Comment')
cnx.commit()
self.failUnlessEqual(self.pactions(rset.req, rset),
[('edit', actions.ModifyAction),
('delete', actions.DeleteAction),
('copy', actions.CopyAction),
('edit_comment', views.EditCommentAction),
('reply_comment', views.ReplyCommentAction)])
cnx.rollback()
cnx = self.login('anon')
rset, req = self.rset_and_req('Any X WHERE X is Comment')
self.failUnlessEqual(self.pactions(req, rset), [])
cnx.rollback()
def test_nonregr_possible_actions(self):
rset, req = self.env.get_rset_and_req('Any B WHERE B is BlogEntry')
beid = rset[0][0]
self.execute('INSERT Comment X: X content "Yooo !", X comments B WHERE B eid %s' % beid)
# now two comments are commenting this blog
rset, req = self.env.get_rset_and_req('Any C WHERE C comments X, X eid %s' % beid)
self.assertEquals(len(rset), 2)
self.failUnless(self.vreg.select_action('reply_comment', req, rset, 0))
self.failUnless(self.vreg.select_action('reply_comment', req, rset, 1))
def test_add_related_actions(self):
rset, req = self.rset_and_req('Any X WHERE X is Comment')
self.failUnlessEqual(self.paddrelactions(req, rset), [])
cnx = self.login('user')
rset, req = self.rset_and_req('Any X WHERE X is Comment')
self.failUnlessEqual(self.paddrelactions(req, rset), [])
cnx.rollback()
cnx = self.login('anon')
rset, req = self.rset_and_req('Any X WHERE X is Comment')
self.failUnlessEqual(self.paddrelactions(req, rset), [])
cnx.rollback()
def test_path(self):
teid = self.execute('BlogEntry X')[0][0]
eid1 = self.execute('INSERT Comment X: X content "oijzr", X comments Y WHERE Y is BlogEntry')[0][0]
eid2 = self.execute('INSERT Comment X: X content "duh?", X comments Y WHERE Y eid %s'%eid1)[0][0]
comment1 = self.entity('Any X WHERE X eid %(x)s', {'x':eid1}, 'x')
self.assertEquals(comment1.path(), [teid, eid1])
self.assertEquals(comment1.root().eid, teid)
comment2 = self.entity('Any X WHERE X eid %(x)s', {'x':eid2}, 'x')
self.assertEquals(comment2.path(), [teid, eid1, eid2])
self.assertEquals(comment2.root().eid, teid)
def test_fullthreadtext_views(self):
c = self.entity('Comment X')
c2eid = self.execute('INSERT Comment X: X content %(text)s, X content_format "text/html", '
'X comments %(x)s',
{'x': c.eid, 'text': u"""
some long <b>HTML</b> text which <em>should not</em> fit on 80 characters, so i'll add some extra xxxxxxx.
Yeah !"""})[0][0]
self.commit()
c2rset= self.execute('Any X WHERE X eid %(x)s', {'x': c2eid}, 'x')
v = self.vreg.select_view('fullthreadtext', self.request(),
c2rset, row=0)
content = v.dispatch(row=0)
# remove date
content = re.sub('..../../.. ..:..', '', content)
self.assertTextEquals(content,
"""\
> On - admin wrote :
> bouh!
some long **HTML** text which _should not_ fit on 80 characters, so i'll add
some extra xxxxxxx. Yeah !
i18n_by_author_field: admin
url: http://testing.fr/cubicweb/blogentry/%s""" % self.b.eid)
# fullthreadtext_descending view
self.assertTextEquals(re.sub('..../../.. ..:..', '', c.view('fullthreadtext_descending')),
'''On - admin wrote :
bouh!
> On - admin wrote :
> some long **HTML** text which _should not_ fit on 80 characters, so i\'ll add
> some extra xxxxxxx. Yeah !
>
''')
class CommentJsonControllerExtensionsTC(EnvBasedTC):
def setup_database(self):
self.john = self.create_user(u'John')
def test_add_and_edit_comment(self):
# add comment
self.remote_call('add_comment', self.john.eid, u'yo', u'text/plain')
comment = self.entity('Any C,CT,F WHERE C content CT, C content_format F, '
'C comments P, P eid %s' % self.john.eid)
self.assertEquals(comment.content, u'yo')
self.assertEquals(comment.content_format, u'text/plain')
# edit comment
self.remote_call('edit_comment', comment.eid, u'yipee', u'text/plain')
comment2 = self.entity('Any C,CT,F WHERE C content CT, C content_format F, '
'C comments P, P eid %s' % self.john.eid)
self.assertEquals(comment.eid, comment2.eid)
self.assertEquals(comment2.content, u'yipee')
self.assertEquals(comment2.content_format, u'text/plain')
if __name__ == '__main__':
from logilab.common.testlib import unittest_main
unittest_main()