mirror of
https://github.com/quay/quay.git
synced 2026-01-26 06:21:37 +03:00
* chore: update werkzeug and related package versions (PROJQUAY-5098) Path converter related change reference: https://github.com/pallets/werkzeug/issues/2506 * Update query count
75 lines
2.4 KiB
Python
75 lines
2.4 KiB
Python
from test.fixtures import *
|
|
|
|
import pytest
|
|
|
|
from data import model
|
|
from data.database import RepositoryState
|
|
from endpoints.api.build import RepositoryBuildList, RepositoryBuildResource
|
|
from endpoints.api.manifest import (
|
|
ManageRepositoryManifestLabel,
|
|
RepositoryManifestLabels,
|
|
)
|
|
from endpoints.api.tag import RepositoryTag, RestoreTag
|
|
from endpoints.api.test.shared import conduct_api_call
|
|
from endpoints.api.trigger import (
|
|
ActivateBuildTrigger,
|
|
BuildTrigger,
|
|
BuildTriggerActivate,
|
|
BuildTriggerAnalyze,
|
|
BuildTriggerFieldValues,
|
|
BuildTriggerSources,
|
|
BuildTriggerSubdirs,
|
|
)
|
|
from endpoints.test.shared import client_with_identity
|
|
|
|
BUILD_ARGS = {"build_uuid": "1234"}
|
|
IMAGE_ARGS = {"imageid": "1234", "image_id": 1234}
|
|
MANIFEST_ARGS = {"manifestref": "sha256:abcd1234"}
|
|
LABEL_ARGS = {"manifestref": "sha256:abcd1234", "labelid": "1234"}
|
|
NOTIFICATION_ARGS = {"uuid": "1234"}
|
|
TAG_ARGS = {"tag": "foobar"}
|
|
TRIGGER_ARGS = {"trigger_uuid": "1234"}
|
|
FIELD_ARGS = {"trigger_uuid": "1234", "field_name": "foobar"}
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"state",
|
|
[
|
|
RepositoryState.MIRROR,
|
|
RepositoryState.READ_ONLY,
|
|
],
|
|
)
|
|
@pytest.mark.parametrize(
|
|
"resource, method, params",
|
|
[
|
|
(RepositoryBuildList, "post", None),
|
|
(RepositoryBuildResource, "delete", BUILD_ARGS),
|
|
(RepositoryManifestLabels, "post", MANIFEST_ARGS),
|
|
(ManageRepositoryManifestLabel, "delete", LABEL_ARGS),
|
|
(RepositoryTag, "put", TAG_ARGS),
|
|
(RepositoryTag, "delete", TAG_ARGS),
|
|
(RestoreTag, "post", TAG_ARGS),
|
|
(BuildTrigger, "delete", TRIGGER_ARGS),
|
|
(BuildTriggerSubdirs, "post", TRIGGER_ARGS),
|
|
(BuildTriggerActivate, "post", TRIGGER_ARGS),
|
|
(BuildTriggerAnalyze, "post", TRIGGER_ARGS),
|
|
(ActivateBuildTrigger, "post", TRIGGER_ARGS),
|
|
(BuildTriggerFieldValues, "post", FIELD_ARGS),
|
|
(BuildTriggerSources, "post", TRIGGER_ARGS),
|
|
],
|
|
)
|
|
def test_disallowed_for_nonnormal(state, resource, method, params, app):
|
|
namespace = "devtable"
|
|
repository = "somenewstaterepo"
|
|
|
|
devtable = model.user.get_user("devtable")
|
|
repo = model.repository.create_repository(namespace, repository, devtable)
|
|
repo.state = state
|
|
repo.save()
|
|
|
|
params = params or {}
|
|
params["repository"] = "%s/%s" % (namespace, repository)
|
|
|
|
with client_with_identity("devtable", app) as cl:
|
|
conduct_api_call(cl, resource, method, params, {}, 503)
|