1
0
mirror of https://github.com/quay/quay.git synced 2026-01-27 18:42:52 +03:00
Files
quay/endpoints/test/test_building.py
Kenny Lee Sin Cheong 5f63b3a7bb chore: drop deprecated tables and remove unused code (PROJQUAY-522) (#2089)
* chore: drop deprecated tables and remove unused code

* isort imports

* migration: check for table existence before drop
2023-08-25 12:17:24 -04:00

94 lines
2.4 KiB
Python

from test.fixtures import *
import pytest
from buildtrigger.triggerutil import SkipRequestException, raise_if_skipped_build
from data import model
from endpoints.building import (
BuildTriggerDisabledException,
MaximumBuildsQueuedException,
PreparedBuild,
start_build,
)
def test_maximum_builds(app):
# Change the maximum number of builds to 1.
user = model.user.create_user("foobar", "password", "foo@example.com")
user.maximum_queued_builds_count = 1
user.save()
repo = model.repository.create_repository("foobar", "somerepo", user)
# Try to queue a build; should succeed.
prepared_build = PreparedBuild()
prepared_build.build_name = "foo"
prepared_build.is_manual = True
prepared_build.dockerfile_id = "foobar"
prepared_build.archive_url = "someurl"
prepared_build.tags = ["latest"]
prepared_build.subdirectory = "/"
prepared_build.context = "/"
prepared_build.metadata = {}
start_build(repo, prepared_build)
# Try to queue a second build; should fail.
with pytest.raises(MaximumBuildsQueuedException):
start_build(repo, prepared_build)
def test_start_build_disabled_trigger(app):
trigger = model.build.list_build_triggers("devtable", "building")[0]
trigger.enabled = False
trigger.save()
build = PreparedBuild(trigger=trigger)
with pytest.raises(BuildTriggerDisabledException):
start_build(trigger.repository, build)
@pytest.mark.parametrize(
"metadata, config",
[
({}, {}),
pytest.param(
{"ref": "ref/heads/master"}, {"branchtag_regex": "nothing"}, id="branchtag regex"
),
pytest.param(
{
"ref": "ref/heads/master",
"commit_info": {
"message": "[skip build]",
},
},
{},
id="commit message",
),
],
)
def test_skip(metadata, config):
prepared = PreparedBuild()
prepared.metadata = metadata
config = config
with pytest.raises(SkipRequestException):
raise_if_skipped_build(prepared, config)
def test_does_not_skip():
prepared = PreparedBuild()
prepared.metadata = {
"ref": "ref/heads/master",
"commit_info": {
"message": "some cool message",
},
}
config = {
"branchtag_regex": "(master)|(heads/master)",
}
raise_if_skipped_build(prepared, config)