Added unittest for SVN push hook

This commit is contained in:
2016-11-01 12:22:31 +01:00
parent bc58b6d5ac
commit e249f3d062
4 changed files with 47 additions and 3 deletions

View File

@@ -13,8 +13,11 @@ from dateutil.tz import tzutc
import mock
import svn.common
from pillar.tests import common_test_data as ctd
import logging_config
from attract import subversion
from abstract_attract_test import AbstractAttractTest
SVN_SERVER_URL = 'svn://biserver/agent327'
@@ -187,3 +190,42 @@ class TestCommitLogObserver(unittest.TestCase):
u'børk',
None
))
class PushCommitTest(AbstractAttractTest):
def setUp(self, **kwargs):
AbstractAttractTest.setUp(self, **kwargs)
self.mngr = self.app.pillar_extensions['attract'].task_manager
self.proj_id, self.project = self.ensure_project_exists()
def test_push_happy(self):
from attract import cli
with self.app.test_request_context():
_, token = cli.create_svner_account('svner@example.com', self.project['url'])
blinks = []
def record_blink(sender, **kwargs):
blinks.append(kwargs)
subversion.task_logged.connect(record_blink)
push_data = {
'repo': u'strange-repo™',
'revision': '4',
'msg': u'မြန်မာဘာသာ is beautiful.\n\nThis solves task [T431134]',
'author': 'Haha',
'date': '2016-10-21 17:40:17 +0200',
}
self.post('/attract/api/%s/subversion/log' % self.project['url'],
json=push_data,
auth_token=token['token'])
self.assertEqual(1, len(blinks))
self.assertEqual(u'မြန်မာဘာသာ is beautiful.\n\nThis solves task [T431134]',
blinks[0]['log_entry'].msg)
self.assertEqual(datetime.datetime(2016, 10, 21, 15, 40, 17, 0, tzinfo=tzutc()),
blinks[0]['log_entry'].date)