Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit f392c84

Browse filesBrowse files
authored
fix: monitoring tests (GoogleCloudPlatform#2995)
* fix: monitoring tests * Add eventually consistent to flaky test
1 parent 13f6558 commit f392c84
Copy full SHA for f392c84

File tree

Expand file treeCollapse file tree

3 files changed

+60
-54
lines changed
Filter options
Expand file treeCollapse file tree

3 files changed

+60
-54
lines changed

‎monitoring/api/v3/cloud-client/quickstart_test.py

Copy file name to clipboardExpand all lines: monitoring/api/v3/cloud-client/quickstart_test.py
+6-3Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import mock
1818
import pytest
19+
from gcp_devrel.testing import eventually_consistent
1920

2021
import quickstart
2122

@@ -36,6 +37,8 @@ def mock_project_path():
3637

3738

3839
def test_quickstart(capsys, mock_project_path):
39-
quickstart.run_quickstart()
40-
out, _ = capsys.readouterr()
41-
assert 'wrote' in out
40+
@eventually_consistent.call
41+
def _():
42+
quickstart.run_quickstart()
43+
out, _ = capsys.readouterr()
44+
assert 'wrote' in out

‎monitoring/api/v3/cloud-client/snippets.py

Copy file name to clipboardExpand all lines: monitoring/api/v3/cloud-client/snippets.py
+13-37Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,21 @@
1515
import argparse
1616
import os
1717
import pprint
18-
import random
1918
import time
19+
import uuid
2020

2121
from google.cloud import monitoring_v3
2222

2323

24-
# Avoid collisions with other runs
25-
RANDOM_SUFFIX = str(random.randint(1000, 9999))
24+
PROJECT_ID = os.environ['GCLOUD_PROJECT']
2625

2726

2827
def create_metric_descriptor(project_id):
2928
# [START monitoring_create_metric]
3029
client = monitoring_v3.MetricServiceClient()
3130
project_name = client.project_path(project_id)
3231
descriptor = monitoring_v3.types.MetricDescriptor()
33-
descriptor.type = 'custom.googleapis.com/my_metric' + RANDOM_SUFFIX
32+
descriptor.type = 'custom.googleapis.com/my_metric' + str(uuid.uuid4())
3433
descriptor.metric_kind = (
3534
monitoring_v3.enums.MetricDescriptor.MetricKind.GAUGE)
3635
descriptor.value_type = (
@@ -55,7 +54,7 @@ def write_time_series(project_id):
5554
project_name = client.project_path(project_id)
5655

5756
series = monitoring_v3.types.TimeSeries()
58-
series.metric.type = 'custom.googleapis.com/my_metric' + RANDOM_SUFFIX
57+
series.metric.type = 'custom.googleapis.com/my_metric' + str(uuid.uuid4())
5958
series.resource.type = 'gce_instance'
6059
series.resource.labels['instance_id'] = '1234567890123456789'
6160
series.resource.labels['zone'] = 'us-central1-f'
@@ -205,29 +204,6 @@ def get_metric_descriptor(metric_name):
205204
# [END monitoring_get_descriptor]
206205

207206

208-
class MissingProjectIdError(Exception):
209-
pass
210-
211-
212-
def project_id():
213-
"""Retreives the project id from the environment variable.
214-
215-
Raises:
216-
MissingProjectIdError -- When not set.
217-
218-
Returns:
219-
str -- the project name
220-
"""
221-
project_id = (os.environ['GOOGLE_CLOUD_PROJECT'] or
222-
os.environ['GCLOUD_PROJECT'])
223-
224-
if not project_id:
225-
raise MissingProjectIdError(
226-
'Set the environment variable ' +
227-
'GCLOUD_PROJECT to your Google Cloud Project Id.')
228-
return project_id
229-
230-
231207
if __name__ == '__main__':
232208
parser = argparse.ArgumentParser(
233209
description='Demonstrates Monitoring API operations.')
@@ -310,25 +286,25 @@ def project_id():
310286
args = parser.parse_args()
311287

312288
if args.command == 'create-metric-descriptor':
313-
create_metric_descriptor(project_id())
289+
create_metric_descriptor(PROJECT_ID)
314290
if args.command == 'list-metric-descriptors':
315-
list_metric_descriptors(project_id())
291+
list_metric_descriptors(PROJECT_ID)
316292
if args.command == 'get-metric-descriptor':
317293
get_metric_descriptor(args.metric_type_name)
318294
if args.command == 'delete-metric-descriptor':
319295
delete_metric_descriptor(args.metric_descriptor_name)
320296
if args.command == 'list-resources':
321-
list_monitored_resources(project_id())
297+
list_monitored_resources(PROJECT_ID)
322298
if args.command == 'get-resource':
323299
get_monitored_resource_descriptor(
324-
project_id(), args.resource_type_name)
300+
PROJECT_ID, args.resource_type_name)
325301
if args.command == 'write-time-series':
326-
write_time_series(project_id())
302+
write_time_series(PROJECT_ID)
327303
if args.command == 'list-time-series':
328-
list_time_series(project_id())
304+
list_time_series(PROJECT_ID)
329305
if args.command == 'list-time-series-header':
330-
list_time_series_header(project_id())
306+
list_time_series_header(PROJECT_ID)
331307
if args.command == 'list-time-series-reduce':
332-
list_time_series_reduce(project_id())
308+
list_time_series_reduce(PROJECT_ID)
333309
if args.command == 'list-time-series-aggregate':
334-
list_time_series_aggregate(project_id())
310+
list_time_series_aggregate(PROJECT_ID)

‎monitoring/api/v3/cloud-client/snippets_test.py

Copy file name to clipboardExpand all lines: monitoring/api/v3/cloud-client/snippets_test.py
+41-14Lines changed: 41 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,69 +12,96 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15+
import os
1516
import re
17+
import pytest
1618

1719
from gcp_devrel.testing import eventually_consistent
20+
from google.api_core.exceptions import NotFound
21+
1822

1923
import snippets
2024

25+
PROJECT_ID = os.environ['GCLOUD_PROJECT']
26+
2127

22-
def test_create_get_delete_metric_descriptor(capsys):
23-
snippets.create_metric_descriptor(snippets.project_id())
28+
@pytest.fixture(scope="function")
29+
def custom_metric_descriptor(capsys):
30+
snippets.create_metric_descriptor(PROJECT_ID)
2431
out, _ = capsys.readouterr()
2532
match = re.search(r'Created (.*)\.', out)
2633
metric_name = match.group(1)
34+
yield metric_name
35+
36+
# teardown
37+
try:
38+
snippets.delete_metric_descriptor(metric_name)
39+
except NotFound:
40+
print("Metric descriptor already deleted")
41+
42+
43+
@pytest.fixture(scope="module")
44+
def write_time_series():
45+
snippets.write_time_series(PROJECT_ID)
46+
yield
47+
48+
49+
def test_get_delete_metric_descriptor(capsys, custom_metric_descriptor):
2750
try:
2851
@eventually_consistent.call
2952
def __():
30-
snippets.get_metric_descriptor(metric_name)
53+
snippets.get_metric_descriptor(custom_metric_descriptor)
3154

3255
out, _ = capsys.readouterr()
3356
assert 'DOUBLE' in out
3457
finally:
35-
snippets.delete_metric_descriptor(metric_name)
58+
snippets.delete_metric_descriptor(custom_metric_descriptor)
3659
out, _ = capsys.readouterr()
3760
assert 'Deleted metric' in out
3861

3962

4063
def test_list_metric_descriptors(capsys):
41-
snippets.list_metric_descriptors(snippets.project_id())
64+
snippets.list_metric_descriptors(PROJECT_ID)
4265
out, _ = capsys.readouterr()
4366
assert 'logging.googleapis.com/byte_count' in out
4467

4568

4669
def test_list_resources(capsys):
47-
snippets.list_monitored_resources(snippets.project_id())
70+
snippets.list_monitored_resources(PROJECT_ID)
4871
out, _ = capsys.readouterr()
4972
assert 'pubsub_topic' in out
5073

5174

5275
def test_get_resources(capsys):
5376
snippets.get_monitored_resource_descriptor(
54-
snippets.project_id(), 'pubsub_topic')
77+
PROJECT_ID, 'pubsub_topic')
5578
out, _ = capsys.readouterr()
5679
assert 'A topic in Google Cloud Pub/Sub' in out
5780

5881

59-
def test_time_series(capsys):
60-
snippets.write_time_series(snippets.project_id())
61-
62-
snippets.list_time_series(snippets.project_id())
82+
def test_list_time_series(capsys, write_time_series):
83+
snippets.list_time_series(PROJECT_ID)
6384
out, _ = capsys.readouterr()
6485
assert 'gce_instance' in out
6586

66-
snippets.list_time_series_header(snippets.project_id())
87+
88+
def test_list_time_series_header(capsys, write_time_series):
89+
snippets.list_time_series_header(PROJECT_ID)
6790
out, _ = capsys.readouterr()
6891
assert 'gce_instance' in out
6992

70-
snippets.list_time_series_aggregate(snippets.project_id())
93+
94+
def test_list_time_series_aggregate(capsys, write_time_series):
95+
snippets.list_time_series_aggregate(PROJECT_ID)
7196
out, _ = capsys.readouterr()
7297
assert 'points' in out
7398
assert 'interval' in out
7499
assert 'start_time' in out
75100
assert 'end_time' in out
76101

77-
snippets.list_time_series_reduce(snippets.project_id())
102+
103+
def test_list_time_series_reduce(capsys, write_time_series):
104+
snippets.list_time_series_reduce(PROJECT_ID)
78105
out, _ = capsys.readouterr()
79106
assert 'points' in out
80107
assert 'interval' in out

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.