f9e6110f73
Adds support for creating app repos, viewing app repos and seeing the list of app repos in the Quay UI.
79 lines
3.7 KiB
Python
79 lines
3.7 KiB
Python
import pytest
|
|
|
|
from data import model
|
|
from endpoints.api.repository import Repository
|
|
from endpoints.api.build import (RepositoryBuildList, RepositoryBuildResource,
|
|
RepositoryBuildStatus, RepositoryBuildLogs)
|
|
from endpoints.api.image import RepositoryImageList, RepositoryImage
|
|
from endpoints.api.manifest import RepositoryManifestLabels, ManageRepositoryManifestLabel
|
|
from endpoints.api.repositorynotification import (RepositoryNotification,
|
|
RepositoryNotificationList,
|
|
TestRepositoryNotification)
|
|
from endpoints.api.secscan import RepositoryImageSecurity, RepositoryManifestSecurity
|
|
from endpoints.api.tag import ListRepositoryTags, RepositoryTag, RepositoryTagImages, RestoreTag
|
|
from endpoints.api.trigger import (BuildTriggerList, BuildTrigger, BuildTriggerSubdirs,
|
|
BuildTriggerActivate, BuildTriggerAnalyze, ActivateBuildTrigger,
|
|
TriggerBuildList, BuildTriggerFieldValues, BuildTriggerSources,
|
|
BuildTriggerSourceNamespaces)
|
|
from endpoints.api.test.shared import client_with_identity, conduct_api_call
|
|
from test.fixtures import app, appconfig, database_uri, init_db_path, sqlitedb_file
|
|
|
|
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('resource, method, params', [
|
|
(RepositoryBuildList, 'get', None),
|
|
(RepositoryBuildList, 'post', None),
|
|
(RepositoryBuildResource, 'get', BUILD_ARGS),
|
|
(RepositoryBuildResource, 'delete', BUILD_ARGS),
|
|
(RepositoryBuildStatus, 'get', BUILD_ARGS),
|
|
(RepositoryBuildLogs, 'get', BUILD_ARGS),
|
|
(RepositoryImageList, 'get', None),
|
|
(RepositoryImage, 'get', IMAGE_ARGS),
|
|
(RepositoryManifestLabels, 'get', MANIFEST_ARGS),
|
|
(RepositoryManifestLabels, 'post', MANIFEST_ARGS),
|
|
(ManageRepositoryManifestLabel, 'get', LABEL_ARGS),
|
|
(ManageRepositoryManifestLabel, 'delete', LABEL_ARGS),
|
|
(RepositoryNotificationList, 'get', None),
|
|
(RepositoryNotificationList, 'post', None),
|
|
(RepositoryNotification, 'get', NOTIFICATION_ARGS),
|
|
(RepositoryNotification, 'delete', NOTIFICATION_ARGS),
|
|
(TestRepositoryNotification, 'post', NOTIFICATION_ARGS),
|
|
(RepositoryImageSecurity, 'get', IMAGE_ARGS),
|
|
(RepositoryManifestSecurity, 'get', MANIFEST_ARGS),
|
|
(ListRepositoryTags, 'get', None),
|
|
(RepositoryTag, 'put', TAG_ARGS),
|
|
(RepositoryTag, 'delete', TAG_ARGS),
|
|
(RepositoryTagImages, 'get', TAG_ARGS),
|
|
(RestoreTag, 'post', TAG_ARGS),
|
|
(BuildTriggerList, 'get', None),
|
|
(BuildTrigger, 'get', TRIGGER_ARGS),
|
|
(BuildTrigger, 'delete', TRIGGER_ARGS),
|
|
(BuildTriggerSubdirs, 'post', TRIGGER_ARGS),
|
|
(BuildTriggerActivate, 'post', TRIGGER_ARGS),
|
|
(BuildTriggerAnalyze, 'post', TRIGGER_ARGS),
|
|
(ActivateBuildTrigger, 'post', TRIGGER_ARGS),
|
|
(TriggerBuildList, 'get', TRIGGER_ARGS),
|
|
(BuildTriggerFieldValues, 'post', FIELD_ARGS),
|
|
(BuildTriggerSources, 'post', TRIGGER_ARGS),
|
|
(BuildTriggerSourceNamespaces, 'get', TRIGGER_ARGS),
|
|
])
|
|
def test_disallowed_for_apps(resource, method, params, client):
|
|
namespace = 'devtable'
|
|
repository = 'someapprepo'
|
|
|
|
devtable = model.user.get_user('devtable')
|
|
model.repository.create_repository(namespace, repository, devtable, repo_kind='application')
|
|
|
|
params = params or {}
|
|
params['repository'] = '%s/%s' % (namespace, repository)
|
|
|
|
with client_with_identity('devtable', client) as cl:
|
|
conduct_api_call(cl, resource, method, params, None, 501)
|
|
|