From fc46096cf215d784ecf8c85efc745cd2942c413d Mon Sep 17 00:00:00 2001 From: gryf Date: Fri, 1 Nov 2019 12:59:04 +0100 Subject: [PATCH] Added more tests for change merged and comment added events --- ferrit/rest.py | 6 +++--- tests/base.py | 23 +++++++++++++++++++++++ tests/test_change_merged.py | 13 +++++++++++++ tests/test_comment_added.py | 13 +++++++++++++ 4 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 tests/test_change_merged.py create mode 100644 tests/test_comment_added.py diff --git a/ferrit/rest.py b/ferrit/rest.py index bcccee3..7eaaabc 100755 --- a/ferrit/rest.py +++ b/ferrit/rest.py @@ -182,9 +182,9 @@ class App(bottle.Bottle): "target": "_blank"}]}} def _changes(self, project, branch, id, commit_id): - # We are looking for labels in the json - labels = bottle.request.json.get('labels', {}) - if not labels: + # We are looking for result of the job, not the notification about + # starting the job. + if bottle.request.json.get('message', '').startswith('Build Started'): return LOG.info(json.dumps(bottle.request.json)) diff --git a/tests/base.py b/tests/base.py index ab7b48e..9977c50 100644 --- a/tests/base.py +++ b/tests/base.py @@ -4,6 +4,8 @@ import subprocess import time import unittest +import requests + class BaseTestCase(unittest.TestCase): def setUp(self): @@ -25,3 +27,24 @@ class BaseTestCase(unittest.TestCase): os.killpg(self.process.pid, signal.SIGTERM) os.unlink('ferrit-http.log') os.unlink('ferrit-ssh.log') + + def _send_and_get_response(self, event_type): + counter = 20 + result = None + requests.post('http://localhost:8181/make/event', + data='type=%s' % event_type) + while counter: + if not os.path.exists('ferrit-http.log'): + counter -= 1 + time.sleep(1) + continue + + with open('ferrit-http.log') as fobj: + result = fobj.read() + if not result: + time.sleep(1) + counter -= 1 + else: + break + + return result diff --git a/tests/test_change_merged.py b/tests/test_change_merged.py new file mode 100644 index 0000000..dc4a3a5 --- /dev/null +++ b/tests/test_change_merged.py @@ -0,0 +1,13 @@ +import json + +from tests import base + + +class TestChangeMerged(base.BaseTestCase): + + def test_deploy(self): + result = self._send_and_get_response('change-merged') + + self.assertTrue(result) + result = json.loads(result) + self.assertIn('--tag', result['message']) diff --git a/tests/test_comment_added.py b/tests/test_comment_added.py new file mode 100644 index 0000000..2965049 --- /dev/null +++ b/tests/test_comment_added.py @@ -0,0 +1,13 @@ +import json + +from tests import base + + +class TestCommentAdded(base.BaseTestCase): + + def test_recheck(self): + result = self._send_and_get_response('comment-added') + + self.assertTrue(result) + result = json.loads(result) + self.assertEqual(result['labels']['Verified'], 1)