diff --git a/tests/system/gapic/v1/test_system_trace_service_v1.py b/tests/system/gapic/v1/test_system_trace_service_v1.py new file mode 100644 index 00000000..d6bc7a78 --- /dev/null +++ b/tests/system/gapic/v1/test_system_trace_service_v1.py @@ -0,0 +1,27 @@ +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import time + +from google.cloud import trace_v1 + + +class TestSystemTraceService(object): + def test_list_traces(self): + project_id = os.environ["PROJECT_ID"] + + client = trace_v1.TraceServiceClient() + project_id_2 = project_id + response = client.list_traces(project_id=project_id_2) diff --git a/tests/system/gapic/v1/test_system_trace_service_v1_vpcsc.py b/tests/system/gapic/v1/test_system_trace_service_v1_vpcsc.py new file mode 100644 index 00000000..4975911d --- /dev/null +++ b/tests/system/gapic/v1/test_system_trace_service_v1_vpcsc.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# flake8: noqa + +import os +import pytest + +from google.api_core import exceptions +from google.cloud import trace_v1 +from test_utils.vpcsc_config import vpcsc_config + +_VPCSC_PROHIBITED_MESSAGE = "Request is prohibited by organization's policy." + + +@pytest.fixture +def client(): + return trace_v1.TraceServiceClient() + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_list_traces_w_inside(client): + list(client.list_traces(project_id=vpcsc_config.project_inside)) # no perms issue + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_list_traces_w_outside(client): + with pytest.raises(exceptions.PermissionDenied) as exc: + list(client.list_traces(project_id=vpcsc_config.project_outside)) + + assert _VPCSC_PROHIBITED_MESSAGE in exc.value.message + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_get_trace_w_inside(client): + with pytest.raises(exceptions.InvalidArgument): + client.get_trace(project_id=vpcsc_config.project_inside, trace_id="") # no perms issue + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_get_trace_w_outside(client): + with pytest.raises(exceptions.PermissionDenied) as exc: + client.get_trace(project_id=vpcsc_config.project_outside, trace_id="") + + assert _VPCSC_PROHIBITED_MESSAGE in exc.value.message + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_patch_traces_w_inside(client): + with pytest.raises(exceptions.InvalidArgument): + client.patch_traces(project_id=vpcsc_config.project_inside, traces={}) # no perms issue + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_patch_traces_w_ouside(client): + with pytest.raises(exceptions.PermissionDenied) as exc: + client.patch_traces(project_id=vpcsc_config.project_outside, traces={}) + + assert _VPCSC_PROHIBITED_MESSAGE in exc.value.message diff --git a/tests/system/gapic/v2/test_system_trace_service_v2.py b/tests/system/gapic/v2/test_system_trace_service_v2.py new file mode 100644 index 00000000..0a73506a --- /dev/null +++ b/tests/system/gapic/v2/test_system_trace_service_v2.py @@ -0,0 +1,28 @@ +# Copyright 2018 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import os +import time + +from google.cloud import trace_v2 + + +class TestSystemTraceService(object): + def test_batch_write_spans(self): + project_id = os.environ["PROJECT_ID"] + + client = trace_v2.TraceServiceClient() + name = f"projects/{project_id}" + spans = [] + client.batch_write_spans(name=name, spans=spans) diff --git a/tests/system/gapic/v2/test_system_trace_service_v2_vpcsc.py b/tests/system/gapic/v2/test_system_trace_service_v2_vpcsc.py new file mode 100644 index 00000000..a373ba51 --- /dev/null +++ b/tests/system/gapic/v2/test_system_trace_service_v2_vpcsc.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright 2019 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# flake8: noqa + +import os +import pytest + +from google.api_core import exceptions +from google.cloud import trace_v2 +from test_utils.vpcsc_config import vpcsc_config + +_VPCSC_PROHIBITED_MESSAGE = "Request is prohibited by organization's policy." + + +@pytest.fixture +def client(): + return trace_v2.TraceServiceClient() + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_batch_write_spans_w_inside(client): + project_inside = f"projects/{vpcsc_config.project_inside}" + client.batch_write_spans(name=project_inside, spans=[]) # no raise + + +@vpcsc_config.skip_unless_inside_vpcsc +def test_batch_write_spans_w_outside(client): + project_outside = f"projects/{vpcsc_config.project_outside}" + + with pytest.raises(exceptions.PermissionDenied) as exc: + client.batch_write_spans(name=project_outside, spans=[]) + + assert _VPCSC_PROHIBITED_MESSAGE in exc.value.message