| Index: third_party/google-endpoints/test/test_label_descriptor.py
|
| diff --git a/third_party/google-endpoints/test/test_label_descriptor.py b/third_party/google-endpoints/test/test_label_descriptor.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9985356c082c60ae5328850d203825faaf5ef28b
|
| --- /dev/null
|
| +++ b/third_party/google-endpoints/test/test_label_descriptor.py
|
| @@ -0,0 +1,252 @@
|
| +# Copyright 2016 Google Inc. All Rights Reserved.
|
| +#
|
| +# 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
|
| +#
|
| +# http://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.
|
| +
|
| +from __future__ import absolute_import
|
| +
|
| +import base64
|
| +import datetime
|
| +import unittest2
|
| +from expects import be_none, be_true, expect, equal, raise_error
|
| +
|
| +from google.api.control import label_descriptor, messages, report_request
|
| +
|
| +_KNOWN = label_descriptor.KnownLabels
|
| +ValueType = label_descriptor.ValueType
|
| +
|
| +class KnownLabelsBase(object):
|
| + SUBJECT = None
|
| + GIVEN_INFO = report_request.Info(
|
| + api_method = 'dummy_method',
|
| + api_version = 'dummy_version',
|
| + location = 'dummy_location',
|
| + referer = 'dummy_referer'
|
| + )
|
| + WANTED_LABEL_DICT = {}
|
| +
|
| + def _matching_descriptor(self, hide_default=False):
|
| + res = messages.LabelDescriptor(
|
| + key=self.SUBJECT.label_name,
|
| + valueType=self.SUBJECT.value_type)
|
| + if res.valueType == ValueType.STRING and hide_default:
|
| + res.valueType = None
|
| + return res
|
| +
|
| + def _not_matched(self):
|
| + d = self._matching_descriptor()
|
| + d.valueType = ValueType.INT64 # no known labels have this type
|
| + return d
|
| +
|
| + def test_should_be_supported(self):
|
| + expect(_KNOWN.is_supported(self._matching_descriptor())).to(be_true)
|
| + expect(_KNOWN.is_supported(
|
| + self._matching_descriptor(hide_default=True))).to(be_true)
|
| + expect(_KNOWN.is_supported(self._not_matched())).not_to(be_true)
|
| +
|
| + def test_should_be_matched_correctly(self):
|
| + expect(self.SUBJECT.matches(self._matching_descriptor())).to(be_true)
|
| + expect(self.SUBJECT.matches(
|
| + self._matching_descriptor(hide_default=True))).to(be_true)
|
| + expect(self.SUBJECT.matches(self._not_matched())).not_to(be_true)
|
| +
|
| + def test_should_update_request_info(self):
|
| + given_dict = {}
|
| + self.SUBJECT.do_labels_update(self.GIVEN_INFO, given_dict)
|
| + expect(given_dict).to(equal(self.WANTED_LABEL_DICT))
|
| +
|
| +
|
| +class TestCredentialIdWithNoCreds(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.CREDENTIAL_ID
|
| +
|
| +
|
| +class TestCredentialIdWithApiKey(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.CREDENTIAL_ID
|
| + GIVEN_INFO = report_request.Info(
|
| + api_key = 'dummy_api_key',
|
| + )
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: 'apiKey:dummy_api_key'}
|
| +
|
| +
|
| +class TestCredentialIdWithAuthIssuer(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.CREDENTIAL_ID
|
| + GIVEN_INFO = report_request.Info(
|
| + auth_issuer = 'dummy_issuer',
|
| + auth_audience = 'dummy_audience'
|
| + )
|
| + WANTED_VALUE = 'jwtAuth:issuer=' + base64.urlsafe_b64encode('dummy_issuer')
|
| + WANTED_VALUE += '&audience=' + base64.urlsafe_b64encode('dummy_audience')
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: WANTED_VALUE}
|
| +
|
| +
|
| +class EndUser(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.END_USER
|
| +
|
| +
|
| +class EndUserCountry(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.END_USER_COUNTRY
|
| +
|
| +
|
| +class ErrorType(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.ERROR_TYPE
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '2xx'}
|
| +
|
| +
|
| +class Protocol(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.PROTOCOL
|
| + WANTED_LABEL_DICT = {
|
| + SUBJECT.label_name: report_request.ReportedProtocols.UNKNOWN.name
|
| + }
|
| +
|
| +
|
| +class Referer(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.REFERER
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: 'dummy_referer'}
|
| +
|
| +
|
| +class ResponseCode(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.RESPONSE_CODE
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '200'}
|
| +
|
| +
|
| +class ResponseCodeClass(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.RESPONSE_CODE_CLASS
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '2xx'}
|
| +
|
| +
|
| +class StatusCodeWithOkStatus(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.STATUS_CODE
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '0'}
|
| +
|
| +
|
| +class StatusCodeWithKnown4XXStatus(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.STATUS_CODE
|
| + GIVEN_INFO = report_request.Info(
|
| + response_code = 401,
|
| + )
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '16'}
|
| +
|
| +
|
| +class StatusCodeWithUnknown4XXStatus(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.STATUS_CODE
|
| + GIVEN_INFO = report_request.Info(
|
| + response_code = 477,
|
| + )
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '9'}
|
| +
|
| +
|
| +class StatusCodeWithKnown5XXStatus(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.STATUS_CODE
|
| + GIVEN_INFO = report_request.Info(
|
| + response_code = 501,
|
| + )
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '12'}
|
| +
|
| +
|
| +class StatusCodeWithUnknown5XXStatus(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.STATUS_CODE
|
| + GIVEN_INFO = report_request.Info(
|
| + response_code = 577,
|
| + )
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '13'}
|
| +
|
| +
|
| +class StatusCodeWithUnknownStatus(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.STATUS_CODE
|
| + GIVEN_INFO = report_request.Info(
|
| + response_code = 777,
|
| + )
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: '2'}
|
| +
|
| +
|
| +class GaeCloneId(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GAE_CLONE_ID
|
| +
|
| +
|
| +class GaeModuleId(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GAE_MODULE_ID
|
| +
|
| +
|
| +class GaeReplicaIndex(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GAE_REPLICA_INDEX
|
| +
|
| +
|
| +class GaeVersionId(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GAE_VERSION_ID
|
| +
|
| +
|
| +class GcpLocation(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_LOCATION
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: 'dummy_location'}
|
| +
|
| +
|
| +class GcpProject(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_PROJECT
|
| +
|
| +
|
| +class GcpRegion(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_REGION
|
| +
|
| +
|
| +class GcpResourceId(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_RESOURCE_ID
|
| +
|
| +
|
| +class GcpResourceType(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_RESOURCE_TYPE
|
| +
|
| +
|
| +class GcpService(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_SERVICE
|
| +
|
| +
|
| +class GcpZone(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_ZONE
|
| +
|
| +
|
| +class GcpUid(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_UID
|
| +
|
| +
|
| +class GcpApiMethod(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_API_METHOD
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: 'dummy_method'}
|
| +
|
| +
|
| +class GcpApiVersion(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.GCP_API_VERSION
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: 'dummy_version'}
|
| +
|
| +
|
| +class SccCallerIp(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.SCC_CALLER_IP
|
| +
|
| +
|
| +class SccPlatform(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.SCC_PLATFORM
|
| + WANTED_LABEL_DICT = {
|
| + SUBJECT.label_name: report_request.ReportedPlatforms.UNKNOWN.name
|
| + }
|
| +
|
| +
|
| +class SccReferer(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.SCC_REFERER
|
| +
|
| +
|
| +class SccServiceAgent(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.SCC_SERVICE_AGENT
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: label_descriptor.SERVICE_AGENT}
|
| +
|
| +
|
| +class SccUserAgent(KnownLabelsBase, unittest2.TestCase):
|
| + SUBJECT = _KNOWN.SCC_USER_AGENT
|
| + WANTED_LABEL_DICT = {SUBJECT.label_name: label_descriptor.USER_AGENT}
|
|
|