Blame tests/test_pagure_send_notification.py

Fabien Boucher 9e5f51
# -*- coding: utf-8 -*-
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
"""
Fabien Boucher 9e5f51
 (c) 2019 - Copyright Red Hat Inc
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
 Authors:
Fabien Boucher 9e5f51
   Fabien Boucher <fboucher@redhat.com></fboucher@redhat.com>
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
"""
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
import unittest
Fabien Boucher 9e5f51
import sys
Fabien Boucher 9e5f51
import os
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
sys.path.insert(
Fabien Boucher 9e5f51
    0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "..")
Fabien Boucher 9e5f51
)
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
import mock
Fabien Boucher 9e5f51
import pygit2
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
import pagure.hooks.default
Fabien Boucher 9e5f51
import tests
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
class PagureHooksDefault(tests.SimplePagureTest):
Fabien Boucher 9e5f51
    """ Tests for pagure.hooks.default """
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
    def setUp(self):
Fabien Boucher 9e5f51
        """ Set up the environnment, ran before every tests. """
Fabien Boucher 9e5f51
        super(PagureHooksDefault, self).setUp()
Fabien Boucher 9e5f51
        tests.create_projects(self.session)
Fabien Boucher 9e5f51
        self.projects = tests.create_projects_git(
Fabien Boucher 9e5f51
            os.path.join(self.path, "repos"), bare=True)
Fabien Boucher 9e5f51
        self.folder = os.path.join(self.path, "repos", "test.git")
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
    def init_test_repo(self):
Fabien Boucher 9e5f51
        tests.add_content_git_repo(self.projects[0])
Fabien Boucher 9e5f51
        repo = pygit2.Repository(self.projects[0])
Fabien Boucher 9e5f51
        sha = repo.references["refs/heads/master"].peel().hex
Fabien Boucher 9e5f51
        project = pagure.lib.query.get_authorized_project(
Fabien Boucher 9e5f51
            self.session, "test")
Fabien Boucher 9e5f51
        return project, sha
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
    @mock.patch("pagure.hooks.default.send_fedmsg_notifications")
Fabien Boucher 9e5f51
    def test_send_action_notification(
Fabien Boucher 9e5f51
            self, fedmsg):
Fabien Boucher 9e5f51
        project, sha = self.init_test_repo()
Fabien Boucher 9e5f51
        pagure.hooks.default.send_action_notification(
Fabien Boucher 9e5f51
            self.session, "tag", "bar",
Fabien Boucher 9e5f51
            project, self.folder, "pingou", "master", sha)
Fabien Boucher 9e5f51
        (_, args, kwargs) = fedmsg.mock_calls[0]
Fabien Boucher 9e5f51
        self.assertEqual(args[1], 'git.tag.bar')
Fabien Boucher 9e5f51
        self.assertEqual(args[2]['repo']['name'], 'test')
Fabien Boucher 9e5f51
        self.assertEqual(args[2]['rev'], sha)
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
    @mock.patch("pagure.hooks.default.send_fedmsg_notifications")
Fabien Boucher 9e5f51
    def test_send_notifications(
Fabien Boucher 9e5f51
            self, fedmsg):
Fabien Boucher 9e5f51
        project, sha = self.init_test_repo()
Fabien Boucher 9e5f51
        pagure.hooks.default.send_notifications(
Fabien Boucher 9e5f51
            self.session, project, self.folder,
Fabien Boucher 9e5f51
            "pingou", "master", [sha], False)
Fabien Boucher 9e5f51
        (_, args, kwargs) = fedmsg.mock_calls[0]
Fabien Boucher 9e5f51
        self.assertEqual(args[1], 'git.receive')
Fabien Boucher 9e5f51
        self.assertEqual(args[2]['repo']['name'], 'test')
Fabien Boucher 9e5f51
        self.assertEqual(args[2]['start_commit'], sha)
Fabien Boucher 9e5f51
        self.assertEqual(args[2]['forced'], False)
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
if __name__ == "__main__":
Fabien Boucher 9e5f51
    unittest.main(verbosity=2)