-
Notifications
You must be signed in to change notification settings - Fork 48
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Feat/configurable check name (#2402)
Feat/configurable check name TODO: Write new tests or update the old ones to cover new functionality. Update doc-strings where appropriate. Update or write new documentation in packit/packit.dev. [FIXME]: retriggering via GitHub re-run BROKEN RELEASE NOTES BEGIN We have introduced a new status_name_template option that allows you to configure status name for a Packit job. For further details have a look at our docs. This feature is still experimental and it is not possible to retry those jobs via GitHub Checks' re-run at the moment. RELEASE NOTES END Reviewed-by: Laura Barcziová Reviewed-by: Matej Focko Reviewed-by: František Lachman <flachman@redhat.com>
- Loading branch information
Showing
6 changed files
with
255 additions
and
48 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,154 @@ | ||
# Copyright Contributors to the Packit project. | ||
# SPDX-License-Identifier: MIT | ||
|
||
# import re | ||
from dataclasses import dataclass | ||
from typing import Optional | ||
import logging | ||
|
||
# from flexmock import flexmock | ||
import pytest | ||
|
||
from packit_service.worker.helpers.build.build_helper import BaseBuildJobHelper | ||
from packit_service.worker.helpers.build.copr_build import CoprBuildJobHelper | ||
from packit_service.worker.helpers.testing_farm import TestingFarmJobHelper | ||
|
||
logger = logging.getLogger(__name__) | ||
|
||
|
||
@dataclass | ||
class StatusNameTestcase: | ||
job_name: Optional[str] = None | ||
chroot: Optional[str] = None | ||
event: Optional[str] = None | ||
identifier: Optional[str] = None | ||
package: Optional[str] = None | ||
template: Optional[str] = None | ||
expected: str = None | ||
|
||
|
||
@pytest.mark.parametrize( | ||
"testcase", | ||
[ | ||
pytest.param( | ||
StatusNameTestcase( | ||
job_name="copr", | ||
chroot="centos-10", | ||
event="pr-42", | ||
identifier=None, | ||
package="packit", | ||
template=None, | ||
expected="copr:pr-42:centos-10", | ||
), | ||
id="default template", | ||
), | ||
pytest.param( | ||
StatusNameTestcase( | ||
job_name="copr", | ||
chroot="centos-10", | ||
event="pr-42", | ||
identifier=None, | ||
package="packit", | ||
template="packit:{job_name}:{event}:{chroot}", | ||
expected="packit:copr:pr-42:centos-10", | ||
), | ||
id="custom template", | ||
), | ||
pytest.param( | ||
StatusNameTestcase( | ||
job_name="copr", | ||
chroot="fedora-40", | ||
event="stable", | ||
identifier="custom-build", | ||
package="special-package", | ||
template="packit:rpm-build:{package}:{identifier}:{chroot}", | ||
expected="packit:rpm-build:special-package:custom-build:fedora-40", | ||
), | ||
id="custom template #2", | ||
), | ||
], | ||
) | ||
def test_get_check_cls(testcase): | ||
assert ( | ||
BaseBuildJobHelper.get_check_cls( | ||
job_name=testcase.job_name, | ||
chroot=testcase.chroot, | ||
project_event_identifier=testcase.event, | ||
identifier=testcase.identifier, | ||
package=testcase.package, | ||
template=testcase.template, | ||
) | ||
== testcase.expected | ||
) | ||
|
||
|
||
@pytest.mark.parametrize( | ||
"testcase", | ||
[ | ||
pytest.param( | ||
StatusNameTestcase( | ||
chroot="centos-10", | ||
event="stable", | ||
identifier="release-build", | ||
expected="rpm-build:stable:centos-10:release-build", | ||
), | ||
id="default template", | ||
), | ||
pytest.param( | ||
StatusNameTestcase( | ||
chroot="fedora-40-x86_64", | ||
event="pr-42069", | ||
identifier="release-build", | ||
template="copr-build:pr:{chroot}:{identifier}", | ||
expected="copr-build:pr:fedora-40-x86_64:release-build", | ||
), | ||
id="custom template", | ||
), | ||
], | ||
) | ||
def test_get_copr_build_check_cls(testcase): | ||
assert ( | ||
CoprBuildJobHelper.get_build_check_cls( | ||
chroot=testcase.chroot, | ||
project_event_identifier=testcase.event, | ||
identifier=testcase.identifier, | ||
template=testcase.template, | ||
) | ||
== testcase.expected | ||
) | ||
|
||
|
||
@pytest.mark.parametrize( | ||
"testcase", | ||
[ | ||
pytest.param( | ||
StatusNameTestcase( | ||
chroot="centos-10", | ||
event="stable", | ||
identifier="release-test", | ||
expected="testing-farm:stable:centos-10:release-test", | ||
), | ||
id="default template", | ||
), | ||
pytest.param( | ||
StatusNameTestcase( | ||
chroot="fedora-40-x86_64", | ||
event="pr-42069", | ||
identifier="revdep-on-release-build", | ||
template="tests:pr:{chroot}:{identifier}", | ||
expected="tests:pr:fedora-40-x86_64:revdep-on-release-build", | ||
), | ||
id="custom template", | ||
), | ||
], | ||
) | ||
def test_get_copr_test_check_cls(testcase): | ||
assert ( | ||
TestingFarmJobHelper.get_test_check_cls( | ||
chroot=testcase.chroot, | ||
project_event_identifier=testcase.event, | ||
identifier=testcase.identifier, | ||
template=testcase.template, | ||
) | ||
== testcase.expected | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters