##// END OF EJS Templates
improved extraction of user from changeset when sending notification....
improved extraction of user from changeset when sending notification. Fallback to repo owner if we cannot get the user

File last commit:

r2317:c4d8ed62 beta
r3185:a665d8cd beta
Show More
test_changeset_comments.py
152 lines | 6.0 KiB | text/x-python | PythonLexer
/ rhodecode / tests / functional / test_changeset_comments.py
tests for changeset comments
r1715 from rhodecode.tests import *
from rhodecode.model.db import ChangesetComment, Notification, User, \
UserNotification
Mysql fixes...
r2149
class TestChangeSetCommentsController(TestController):
tests for changeset comments
r1715
def setUp(self):
for x in ChangesetComment.query().all():
commit less models...
r1749 self.Session.delete(x)
self.Session.commit()
tests for changeset comments
r1715
for x in Notification.query().all():
commit less models...
r1749 self.Session.delete(x)
self.Session.commit()
tests for changeset comments
r1715
def tearDown(self):
for x in ChangesetComment.query().all():
commit less models...
r1749 self.Session.delete(x)
self.Session.commit()
tests for changeset comments
r1715
for x in Notification.query().all():
commit less models...
r1749 self.Session.delete(x)
self.Session.commit()
tests for changeset comments
r1715
def test_create(self):
self.log_user()
rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc'
text = u'CommentOnRevision'
Mysql fixes...
r2149 params = {'text': text}
tests for changeset comments
r1715 response = self.app.post(url(controller='changeset', action='comment',
repo_name=HG_REPO, revision=rev),
params=params)
# Test response...
self.assertEqual(response.status, '302 Found')
response.follow()
response = self.app.get(url(controller='changeset', action='index',
repo_name=HG_REPO, revision=rev))
# test DB
self.assertEqual(ChangesetComment.query().count(), 1)
Fixed tests for new i18n changes...
r2317 response.mustcontain('''<div class="comments-number">%s comment '''
'''(0 inline)</div>''' % 1)
tests for changeset comments
r1715
Mysql fixes...
r2149 self.assertEqual(Notification.query().count(), 1)
self.assertEqual(ChangesetComment.query().count(), 1)
tests for changeset comments
r1715
notification = Notification.query().all()[0]
Mysql fixes...
r2149 ID = ChangesetComment.query().first().comment_id
White space cleanup
r2150 self.assertEqual(notification.type_,
Mysql fixes...
r2149 Notification.TYPE_CHANGESET_COMMENT)
sbj = (u'/vcs_test_hg/changeset/'
'27cd5cce30c96924232dffcd24178a07ffeb5dfc#comment-%s' % ID)
print "%s vs %s" % (sbj, notification.subject)
self.assertTrue(sbj in notification.subject)
tests for changeset comments
r1715
def test_create_inline(self):
self.log_user()
rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc'
text = u'CommentOnRevision'
f_path = 'vcs/web/simplevcs/views/repository.py'
line = 'n1'
Mysql fixes...
r2149 params = {'text': text, 'f_path': f_path, 'line': line}
tests for changeset comments
r1715 response = self.app.post(url(controller='changeset', action='comment',
repo_name=HG_REPO, revision=rev),
params=params)
# Test response...
self.assertEqual(response.status, '302 Found')
response.follow()
response = self.app.get(url(controller='changeset', action='index',
repo_name=HG_REPO, revision=rev))
#test DB
self.assertEqual(ChangesetComment.query().count(), 1)
fixed tests
r2194 response.mustcontain(
Fixed tests for new i18n changes...
r2317 '''<div class="comments-number">0 comments'''
fixed tests
r2194 ''' (%s inline)</div>''' % 1
)
response.mustcontain(
'''<div style="display:none" class="inline-comment-placeholder" '''
'''path="vcs/web/simplevcs/views/repository.py" '''
'''target_id="vcswebsimplevcsviewsrepositorypy">'''
)
tests for changeset comments
r1715
self.assertEqual(Notification.query().count(), 1)
Mysql fixes...
r2149 self.assertEqual(ChangesetComment.query().count(), 1)
tests for changeset comments
r1715
Mysql fixes...
r2149 notification = Notification.query().all()[0]
ID = ChangesetComment.query().first().comment_id
White space cleanup
r2150 self.assertEqual(notification.type_,
Mysql fixes...
r2149 Notification.TYPE_CHANGESET_COMMENT)
sbj = (u'/vcs_test_hg/changeset/'
'27cd5cce30c96924232dffcd24178a07ffeb5dfc#comment-%s' % ID)
print "%s vs %s" % (sbj, notification.subject)
self.assertTrue(sbj in notification.subject)
tests for changeset comments
r1715
def test_create_with_mention(self):
self.log_user()
rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc'
text = u'@test_regular check CommentOnRevision'
params = {'text':text}
response = self.app.post(url(controller='changeset', action='comment',
repo_name=HG_REPO, revision=rev),
params=params)
# Test response...
self.assertEqual(response.status, '302 Found')
response.follow()
response = self.app.get(url(controller='changeset', action='index',
repo_name=HG_REPO, revision=rev))
# test DB
self.assertEqual(ChangesetComment.query().count(), 1)
Fixed tests for new i18n changes...
r2317 response.mustcontain('''<div class="comments-number">%s '''
'''comment (0 inline)</div>''' % 1)
tests for changeset comments
r1715
self.assertEqual(Notification.query().count(), 2)
users = [x.user.username for x in UserNotification.query().all()]
# test_regular get's notification by @mention
- refactoring to overcome poor usage of global pylons config...
r1723 self.assertEqual(sorted(users), [u'test_admin', u'test_regular'])
tests for changeset comments
r1715
def test_delete(self):
self.log_user()
rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc'
text = u'CommentOnRevision'
Mysql fixes...
r2149 params = {'text': text}
tests for changeset comments
r1715 response = self.app.post(url(controller='changeset', action='comment',
repo_name=HG_REPO, revision=rev),
params=params)
comments = ChangesetComment.query().all()
self.assertEqual(len(comments), 1)
comment_id = comments[0].comment_id
self.app.delete(url(controller='changeset',
action='delete_comment',
repo_name=HG_REPO,
- refactoring to overcome poor usage of global pylons config...
r1723 comment_id=comment_id))
tests for changeset comments
r1715
comments = ChangesetComment.query().all()
self.assertEqual(len(comments), 0)
response = self.app.get(url(controller='changeset', action='index',
repo_name=HG_REPO, revision=rev))
Fixed tests for new i18n changes...
r2317 response.mustcontain('''<div class="comments-number">0 comments'''
''' (0 inline)</div>''')