Пример #1
0
    def test_multiple_commits(self):
        data = json.loads(self.json_data)

        result = utils.extract_gitlab_commit_data(data)

        self.assertEqual(len(result), 2)
        self.assertNotEqual(result[0], result[1])
Пример #2
0
    def test_no_commits(self):
        data = json.loads(self.json_data)
        del data['commits'][0]
        del data['commits'][0]

        result = utils.extract_gitlab_commit_data(data)
        self.assertListEqual([], result)
Пример #3
0
    def on_gitlab_push(self, request):
        """The endpoint for gitlab post commit hooks."""
        self.log.debug('Received request: "{}".'.format(request))
        if request.method == 'POST':
            if request.headers.get('content-type') == 'application/json':
                raw_data = request.stream.read().decode('utf-8')
                self.log.debug('Got POST data: "{}".'.format(raw_data))

                extracted_commits = utils.extract_gitlab_commit_data(loads(raw_data))
                for commit in extracted_commits:
                    self.queue.put(commit)

                msg = 'Successfully extracted {} commits.'.format(len(extracted_commits))
                self.log.info(msg)
                return Response(msg)
            else:
                msg = 'No POST data as application/json supplied.'
                self.log.warning(msg)
                return BadRequest(msg)
        else:
            return MethodNotAllowed()
Пример #4
0
    def test_one_commit(self):
        data = json.loads(self.json_data)
        del data['commits'][1]

        result = utils.extract_gitlab_commit_data(data)
        self.assertEqual(len(result), 1)

        commit = result[0]
        self.assertEqual(commit['id'],
                'b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327')
        self.assertEqual(commit['origin'],
                'master')
        self.assertEqual(commit['message'],
                'Update Catalan translation to e38cb41.')
        self.assertEqual(commit['timestamp'],
                '2011-12-12T14:27:31+02:00')
        self.assertEqual(commit['url'],
                'http://localhost/diaspora/commits/b6568db1bc1dcd7f8b4d5a946b0b91f9dacd7327')
        self.assertEqual(commit['author_name'],
                'Jordi Mallach')
        self.assertEqual(commit['author_email'],
                '*****@*****.**')