import pytest import json from data import model from endpoints.api.trigger_analyzer import is_parent from endpoints.api.trigger import BuildTrigger from endpoints.api.test.shared import conduct_api_call from endpoints.test.shared import client_with_identity from test.fixtures import * @pytest.mark.parametrize('context,dockerfile_path,expected', [ ("/", "/a/b", True), ("/a", "/a/b", True), ("/a/b", "/a/b", False), ("/a//", "/a/b", True), ("/a", "/a//b/c", True), ("/a//", "a/b", True), ("/a/b", "a/bc/d", False), ("/d", "/a/b", False), ("/a/b", "/a/b.c", False), ("/a/b", "/a/b/b.c", True), ("", "/a/b.c", False), ("/a/b", "", False), ("", "", False), ]) def test_super_user_build_endpoints(context, dockerfile_path, expected): assert is_parent(context, dockerfile_path) == expected def test_enabled_disabled_trigger(app, client): trigger = model.build.list_build_triggers('devtable', 'building')[0] trigger.config = json.dumps({'hook_id': 'someid'}) trigger.save() params = { 'repository': 'devtable/building', 'trigger_uuid': trigger.uuid, } body = { 'enabled': False, } with client_with_identity('devtable', client) as cl: result = conduct_api_call(cl, BuildTrigger, 'PUT', params, body, 200).json assert not result['enabled'] body = { 'enabled': True, } with client_with_identity('devtable', client) as cl: result = conduct_api_call(cl, BuildTrigger, 'PUT', params, body, 200).json assert result['enabled']