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 4bfc07
            os.path.join(self.path, "repos"), bare=True
Fabien Boucher 4bfc07
        )
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 4bfc07
        project = pagure.lib.query.get_authorized_project(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 4bfc07
    def test_send_action_notification(self, fedmsg):
Fabien Boucher 9e5f51
        project, sha = self.init_test_repo()
Fabien Boucher 9e5f51
        pagure.hooks.default.send_action_notification(
Fabien Boucher 4bfc07
            self.session,
Fabien Boucher 4bfc07
            "tag",
Fabien Boucher 4bfc07
            "bar",
Fabien Boucher 4bfc07
            project,
Fabien Boucher 4bfc07
            self.folder,
Fabien Boucher 4bfc07
            "pingou",
Fabien Boucher 4bfc07
            "master",
Fabien Boucher 4bfc07
            sha,
Fabien Boucher 4bfc07
        )
Fabien Boucher 9e5f51
        (_, args, kwargs) = fedmsg.mock_calls[0]
Fabien Boucher 4bfc07
        self.assertEqual(args[1], "git.tag.bar")
Fabien Boucher 4bfc07
        self.assertEqual(args[2]["repo"]["name"], "test")
Fabien Boucher 4bfc07
        self.assertEqual(args[2]["rev"], sha)
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
    @mock.patch("pagure.hooks.default.send_fedmsg_notifications")
Fabien Boucher 4bfc07
    def test_send_notifications(self, fedmsg):
Fabien Boucher 72b4aa
        oldrev = "9e5f51c951c6cab20fe81419320ed740533e2f2f"
Fabien Boucher 9e5f51
        project, sha = self.init_test_repo()
Fabien Boucher 9e5f51
        pagure.hooks.default.send_notifications(
Fabien Boucher 4bfc07
            self.session,
Fabien Boucher 4bfc07
            project,
Fabien Boucher 4bfc07
            self.folder,
Fabien Boucher 4bfc07
            "pingou",
Fabien Boucher 4bfc07
            "master",
Fabien Boucher 4bfc07
            [sha],
Fabien Boucher 4bfc07
            False,
Fabien Boucher 72b4aa
            oldrev,
Fabien Boucher 4bfc07
        )
Fabien Boucher 9e5f51
        (_, args, kwargs) = fedmsg.mock_calls[0]
Fabien Boucher 4bfc07
        self.assertEqual(args[1], "git.receive")
Fabien Boucher 4bfc07
        self.assertEqual(args[2]["repo"]["name"], "test")
Fabien Boucher 4bfc07
        self.assertEqual(args[2]["start_commit"], sha)
Fabien Boucher 4bfc07
        self.assertEqual(args[2]["forced"], False)
Fabien Boucher 72b4aa
        self.assertEqual(args[2]["old_commit"], oldrev)
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
Fabien Boucher 9e5f51
if __name__ == "__main__":
Fabien Boucher 9e5f51
    unittest.main(verbosity=2)