Mercurial > kallithea
view kallithea/tests/functional/test_changeset_comments.py @ 5920:fed129fb8533
pytest migration: backout declassification of remove_all_notifications
In order to accomodate both nose/unittest and pytest at the same time,
method remove_all_notifications has been extracted from BaseTestCase in
commit 37d713674f63.
Now that nose/unittest is no longer used, we can backout this change again.
author | Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> |
---|---|
date | Sat, 14 May 2016 21:59:47 +0200 |
parents | be1d366f461c |
children | 7f2aa3ec2931 |
line wrap: on
line source
from kallithea.tests import * from kallithea.model.db import ChangesetComment, Notification, \ UserNotification from kallithea.model.meta import Session class TestChangeSetCommentsController(TestControllerPytest): def setup_method(self, method): for x in ChangesetComment.query().all(): Session().delete(x) Session().commit() self.remove_all_notifications() def test_create(self): self.log_user() rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc' text = u'CommentOnRevision' params = {'text': text, '_authentication_token': self.authentication_token()} response = self.app.post(url(controller='changeset', action='comment', repo_name=HG_REPO, revision=rev), params=params, extra_environ={'HTTP_X_PARTIAL_XHR': '1'}) # Test response... assert response.status == '200 OK' response = self.app.get(url(controller='changeset', action='index', repo_name=HG_REPO, revision=rev)) # test DB assert ChangesetComment.query().count() == 1 response.mustcontain( '''<div class="comments-number">''' ''' 1 comment (0 inline, 1 general)''' ) assert Notification.query().count() == 1 assert ChangesetComment.query().count() == 1 notification = Notification.query().all()[0] ID = ChangesetComment.query().first().comment_id assert notification.type_ == Notification.TYPE_CHANGESET_COMMENT sbj = (u'/%s/changeset/' '27cd5cce30c96924232dffcd24178a07ffeb5dfc#comment-%s' % (HG_REPO, ID)) print "%s vs %s" % (sbj, notification.subject) assert sbj in notification.subject def test_create_inline(self): self.log_user() rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc' text = u'CommentOnRevision' f_path = 'vcs/web/simplevcs/views/repository.py' line = 'n1' params = {'text': text, 'f_path': f_path, 'line': line, '_authentication_token': self.authentication_token()} response = self.app.post(url(controller='changeset', action='comment', repo_name=HG_REPO, revision=rev), params=params, extra_environ={'HTTP_X_PARTIAL_XHR': '1'}) # Test response... assert response.status == '200 OK' response = self.app.get(url(controller='changeset', action='index', repo_name=HG_REPO, revision=rev)) #test DB assert ChangesetComment.query().count() == 1 response.mustcontain( '''<div class="comments-number">''' ''' 1 comment (1 inline, 0 general)''' ) response.mustcontain( '''<div class="comments-list-chunk" ''' '''data-f_path="vcs/web/simplevcs/views/repository.py" ''' '''data-line_no="n1" data-target-id="vcswebsimplevcsviewsrepositorypy_n1">''' ) assert Notification.query().count() == 1 assert ChangesetComment.query().count() == 1 notification = Notification.query().all()[0] ID = ChangesetComment.query().first().comment_id assert notification.type_ == Notification.TYPE_CHANGESET_COMMENT sbj = (u'/%s/changeset/' '27cd5cce30c96924232dffcd24178a07ffeb5dfc#comment-%s' % (HG_REPO, ID)) print "%s vs %s" % (sbj, notification.subject) assert sbj in notification.subject def test_create_with_mention(self): self.log_user() rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc' text = u'@%s check CommentOnRevision' % TEST_USER_REGULAR_LOGIN params = {'text': text, '_authentication_token': self.authentication_token()} response = self.app.post(url(controller='changeset', action='comment', repo_name=HG_REPO, revision=rev), params=params, extra_environ={'HTTP_X_PARTIAL_XHR': '1'}) # Test response... assert response.status == '200 OK' response = self.app.get(url(controller='changeset', action='index', repo_name=HG_REPO, revision=rev)) # test DB assert ChangesetComment.query().count() == 1 response.mustcontain( '''<div class="comments-number">''' ''' 1 comment (0 inline, 1 general)''' ) assert Notification.query().count() == 2 users = [x.user.username for x in UserNotification.query().all()] # test_regular gets notification by @mention assert sorted(users) == [TEST_USER_ADMIN_LOGIN, TEST_USER_REGULAR_LOGIN] def test_delete(self): self.log_user() rev = '27cd5cce30c96924232dffcd24178a07ffeb5dfc' text = u'CommentOnRevision' params = {'text': text, '_authentication_token': self.authentication_token()} response = self.app.post(url(controller='changeset', action='comment', repo_name=HG_REPO, revision=rev), params=params, extra_environ={'HTTP_X_PARTIAL_XHR': '1'}) comments = ChangesetComment.query().all() assert len(comments) == 1 comment_id = comments[0].comment_id self.app.post(url(controller='changeset', action='delete_comment', repo_name=HG_REPO, comment_id=comment_id), params={'_method': 'delete', '_authentication_token': self.authentication_token()}) comments = ChangesetComment.query().all() assert len(comments) == 0 response = self.app.get(url(controller='changeset', action='index', repo_name=HG_REPO, revision=rev)) response.mustcontain( '''<div class="comments-number">''' ''' 0 comments (0 inline, 0 general)''' )