|
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)
|