diff --git a/gcloud/logging/metric.py b/gcloud/logging/metric.py index 0e79f931e7ea..38b7e3ad3d04 100644 --- a/gcloud/logging/metric.py +++ b/gcloud/logging/metric.py @@ -106,11 +106,8 @@ def from_api_repr(cls, resource, client): :rtype: :class:`gcloud.logging.metric.Metric` :returns: Metric parsed from ``resource``. - :raises: :class:`ValueError` if ``client`` is not ``None`` and the - project from the resource does not agree with the project - from the client. """ - metric_name = _metric_name_from_path(resource['name'], client.project) + metric_name = resource['name'] filter_ = resource['filter'] description = resource.get('description', '') return cls(metric_name, filter_, client=client, diff --git a/gcloud/logging/test_client.py b/gcloud/logging/test_client.py index 59bc10a177f9..fe38bd50fc4f 100644 --- a/gcloud/logging/test_client.py +++ b/gcloud/logging/test_client.py @@ -294,11 +294,9 @@ def test_list_metrics_no_paging(self): CLIENT_OBJ = self._makeOne(project=PROJECT, credentials=CREDS) - METRIC_PATH = 'projects/%s/metrics/%s' % (PROJECT, self.METRIC_NAME) - RETURNED = { 'metrics': [{ - 'name': METRIC_PATH, + 'name': self.METRIC_NAME, 'filter': self.FILTER, 'description': self.DESCRIPTION, }], @@ -329,13 +327,12 @@ def test_list_metrics_with_paging(self): CLIENT_OBJ = self._makeOne(project=PROJECT, credentials=CREDS) - METRIC_PATH = 'projects/%s/metrics/%s' % (PROJECT, self.METRIC_NAME) TOKEN1 = 'TOKEN1' TOKEN2 = 'TOKEN2' SIZE = 1 RETURNED = { 'metrics': [{ - 'name': METRIC_PATH, + 'name': self.METRIC_NAME, 'filter': self.FILTER, 'description': self.DESCRIPTION, }], diff --git a/gcloud/logging/test_metric.py b/gcloud/logging/test_metric.py index 1d68394fe13c..cbba9d1c4252 100644 --- a/gcloud/logging/test_metric.py +++ b/gcloud/logging/test_metric.py @@ -92,7 +92,7 @@ def test_from_api_repr_minimal(self): CLIENT = _Client(project=self.PROJECT) FULL = 'projects/%s/metrics/%s' % (self.PROJECT, self.METRIC_NAME) RESOURCE = { - 'name': FULL, + 'name': self.METRIC_NAME, 'filter': self.FILTER, } klass = self._getTargetClass() @@ -109,7 +109,7 @@ def test_from_api_repr_w_description(self): FULL = 'projects/%s/metrics/%s' % (self.PROJECT, self.METRIC_NAME) DESCRIPTION = 'DESCRIPTION' RESOURCE = { - 'name': FULL, + 'name': self.METRIC_NAME, 'filter': self.FILTER, 'description': DESCRIPTION, } @@ -122,16 +122,6 @@ def test_from_api_repr_w_description(self): self.assertEqual(metric.project, self.PROJECT) self.assertEqual(metric.full_name, FULL) - def test_from_api_repr_with_mismatched_project(self): - PROJECT1 = 'PROJECT1' - PROJECT2 = 'PROJECT2' - CLIENT = _Client(project=PROJECT1) - FULL = 'projects/%s/metrics/%s' % (PROJECT2, self.METRIC_NAME) - RESOURCE = {'name': FULL, 'filter': self.FILTER} - klass = self._getTargetClass() - self.assertRaises(ValueError, klass.from_api_repr, - RESOURCE, client=CLIENT) - def test_create_w_bound_client(self): TARGET = 'projects/%s/metrics' % (self.PROJECT,) RESOURCE = { diff --git a/system_tests/logging_.py b/system_tests/logging_.py index a4072bc65ab8..fd9e285ba620 100644 --- a/system_tests/logging_.py +++ b/system_tests/logging_.py @@ -80,3 +80,17 @@ def test_create_metric(self): metric.create() self.to_delete.append(metric) self.assertTrue(metric.exists()) + + def test_list_metrics(self): + metric = Config.CLIENT.metric( + DEFAULT_METRIC_NAME, DEFAULT_FILTER, DEFAULT_DESCRIPTION) + self.assertFalse(metric.exists()) + before_metrics, _ = Config.CLIENT.list_metrics() + before_names = set(metric.name for metric in before_metrics) + metric.create() + self.to_delete.append(metric) + self.assertTrue(metric.exists()) + after_metrics, _ = Config.CLIENT.list_metrics() + after_names = set(metric.name for metric in after_metrics) + self.assertEqual(after_names - before_names, + set([DEFAULT_METRIC_NAME]))