##// END OF EJS Templates
follow Python conventions for boolean values...
follow Python conventions for boolean values True and False might be singletons and the "default" values for "boolean" expressions, but "all" values in Python has a boolean value and should be evaluated as such. Checking with 'is True' and 'is False' is thus confusing, error prone and unnessarily complex. If we anywhere rely and nullable boolean fields from the database layer and don't want the null value to be treated as False then we should check explicitly for null with 'is None'.

File last commit:

r2317:c4d8ed62 beta
r3625:260a7a01 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>''')