openSUSE-release-tools/tests/check_bugowner_tests.py

97 lines
3.4 KiB
Python

import logging
from . import OBSLocal
from check_bugowner import CheckerBugowner
import pytest
PROJECT = "SLE:Next-SP"
@pytest.fixture
def default_config(request):
wf = OBSLocal.FactoryWorkflow(PROJECT)
project = wf.projects[PROJECT]
request.cls.bot_user = 'factory-auto'
wf.create_user(request.cls.bot_user)
# When creating a review, set the by_user to bot_user
project.add_reviewers(users=[request.cls.bot_user])
request.cls.wf = wf
request.cls.review_bot = CheckerBugowner(request.cls.wf.apiurl, user=request.cls.bot_user, logger=logging.getLogger())
yield "workflow"
del request.cls.wf
class TestCheckBugowner(OBSLocal.TestCase):
@pytest.mark.usefixtures("default_config")
def test_no_bugowner(self):
"""Declines the request for a new package"""
req_id = self.wf.create_submit_request('devel:wine', 'merlot').reqid
self.assertReview(req_id, by_user=(self.bot_user, 'new'))
self.review_bot.set_request_ids([req_id])
self.review_bot.check_requests()
review = self.assertReview(req_id, by_user=(self.bot_user, 'declined'))
self.assertIn('merlot appears to be a new package', review.comment)
@pytest.mark.usefixtures("default_config")
def test_existing_package(self):
"""Accepts requests for existing packages"""
self.wf.create_package(PROJECT, 'merlot')
req_id = self.wf.create_submit_request('devel:wine', 'merlot').reqid
self.assertReview(req_id, by_user=(self.bot_user, 'new'))
self.review_bot.set_request_ids([req_id])
self.review_bot.check_requests()
review = self.assertReview(req_id, by_user=(self.bot_user, 'accepted'))
self.assertEqual('ok', review.comment)
@pytest.mark.usefixtures("default_config")
def test_invalid_bugowner(self):
"""Declines the request for a new package because of wrong maintainer"""
req_id = self.wf.create_submit_request('devel:wine', 'merlot', description="bugowner: thatguythere").reqid
self.assertReview(req_id, by_user=(self.bot_user, 'new'))
self.review_bot.set_request_ids([req_id])
self.review_bot.check_requests()
review = self.assertReview(req_id, by_user=(self.bot_user, 'declined'))
self.assertIn('thatguythere could not be found on this instance.', review.comment)
@pytest.mark.usefixtures("default_config")
def test_valid_bugowner(self):
"""Accept request with valid maintainer"""
self.wf.create_user('thegirl')
req_id = self.wf.create_submit_request('devel:wine', 'merlot', description="bugowner: thegirl").reqid
self.assertReview(req_id, by_user=(self.bot_user, 'new'))
self.review_bot.set_request_ids([req_id])
self.review_bot.check_requests()
self.assertReview(req_id, by_user=(self.bot_user, 'accepted'))
@pytest.mark.usefixtures("default_config")
def test_valid_bugowner_group(self):
"""Accept request with valid group maintainer"""
self.wf.create_group('coldpool')
req_id = self.wf.create_submit_request(
'devel:wine', 'merlot', description="This is a cool new package\nbugowner: group:coldpool").reqid
self.assertReview(req_id, by_user=(self.bot_user, 'new'))
self.review_bot.set_request_ids_search_review()
self.review_bot.check_requests()
self.assertReview(req_id, by_user=(self.bot_user, 'accepted'))