Best Python code snippet using tempest_python
codecov_vx.x.x.js
Source:codecov_vx.x.x.js
1// flow-typed signature: 6e24585c5975777a957127364aee95592// flow-typed version: <<STUB>>/codecov_v^3.6.5/flow_v0.123.03/**4 * This is an autogenerated libdef stub for:5 *6 * 'codecov'7 *8 * Fill this stub out by replacing all the `any` types.9 *10 * Once filled out, we encourage you to share your work with the11 * community by sending a pull request to:12 * https://github.com/flowtype/flow-typed13 */14declare module 'codecov' {15 declare module.exports: any;16}17/**18 * We include stubs for each file inside this npm package in case you need to19 * require those files directly. Feel free to delete any files that aren't20 * needed.21 */22declare module 'codecov/lib/codecov' {23 declare module.exports: any;24}25declare module 'codecov/lib/detect' {26 declare module.exports: any;27}28declare module 'codecov/lib/git' {29 declare module.exports: any;30}31declare module 'codecov/lib/offline' {32 declare module.exports: any;33}34declare module 'codecov/lib/services/appveyor' {35 declare module.exports: any;36}37declare module 'codecov/lib/services/azurePipelines' {38 declare module.exports: any;39}40declare module 'codecov/lib/services/buildkite' {41 declare module.exports: any;42}43declare module 'codecov/lib/services/circle' {44 declare module.exports: any;45}46declare module 'codecov/lib/services/cirrus' {47 declare module.exports: any;48}49declare module 'codecov/lib/services/codebuild' {50 declare module.exports: any;51}52declare module 'codecov/lib/services/codeship' {53 declare module.exports: any;54}55declare module 'codecov/lib/services/drone' {56 declare module.exports: any;57}58declare module 'codecov/lib/services/gitlab' {59 declare module.exports: any;60}61declare module 'codecov/lib/services/heroku' {62 declare module.exports: any;63}64declare module 'codecov/lib/services/jenkins' {65 declare module.exports: any;66}67declare module 'codecov/lib/services/localGit' {68 declare module.exports: any;69}70declare module 'codecov/lib/services/semaphore' {71 declare module.exports: any;72}73declare module 'codecov/lib/services/semaphore2x' {74 declare module.exports: any;75}76declare module 'codecov/lib/services/shippable' {77 declare module.exports: any;78}79declare module 'codecov/lib/services/snap' {80 declare module.exports: any;81}82declare module 'codecov/lib/services/teamcity' {83 declare module.exports: any;84}85declare module 'codecov/lib/services/travis' {86 declare module.exports: any;87}88declare module 'codecov/lib/services/wercker' {89 declare module.exports: any;90}91declare module 'codecov/test/detect.test' {92 declare module.exports: any;93}94declare module 'codecov/test/git.test' {95 declare module.exports: any;96}97declare module 'codecov/test/index.test' {98 declare module.exports: any;99}100declare module 'codecov/test/services/appveyor.test' {101 declare module.exports: any;102}103declare module 'codecov/test/services/azure-pipelines.test' {104 declare module.exports: any;105}106declare module 'codecov/test/services/buildkite.test' {107 declare module.exports: any;108}109declare module 'codecov/test/services/circle.test' {110 declare module.exports: any;111}112declare module 'codecov/test/services/cirrus.test' {113 declare module.exports: any;114}115declare module 'codecov/test/services/codebuild.test' {116 declare module.exports: any;117}118declare module 'codecov/test/services/codeship.test' {119 declare module.exports: any;120}121declare module 'codecov/test/services/drone.test' {122 declare module.exports: any;123}124declare module 'codecov/test/services/gitlab.test' {125 declare module.exports: any;126}127declare module 'codecov/test/services/heroku.test' {128 declare module.exports: any;129}130declare module 'codecov/test/services/jenkins.test' {131 declare module.exports: any;132}133declare module 'codecov/test/services/localGit.test' {134 declare module.exports: any;135}136declare module 'codecov/test/services/semaphore.test' {137 declare module.exports: any;138}139declare module 'codecov/test/services/semaphore2x.test' {140 declare module.exports: any;141}142declare module 'codecov/test/services/shippable.test' {143 declare module.exports: any;144}145declare module 'codecov/test/services/snap.test' {146 declare module.exports: any;147}148declare module 'codecov/test/services/teamcity.test' {149 declare module.exports: any;150}151declare module 'codecov/test/services/travis.test' {152 declare module.exports: any;153}154declare module 'codecov/test/services/wercker.test' {155 declare module.exports: any;156}157declare module 'codecov/test/upload.test' {158 declare module.exports: any;159}160// Filename aliases161declare module 'codecov/index' {162 declare module.exports: $Exports<'codecov'>;163}164declare module 'codecov/index.js' {165 declare module.exports: $Exports<'codecov'>;166}167declare module 'codecov/lib/codecov.js' {168 declare module.exports: $Exports<'codecov/lib/codecov'>;169}170declare module 'codecov/lib/detect.js' {171 declare module.exports: $Exports<'codecov/lib/detect'>;172}173declare module 'codecov/lib/git.js' {174 declare module.exports: $Exports<'codecov/lib/git'>;175}176declare module 'codecov/lib/offline.js' {177 declare module.exports: $Exports<'codecov/lib/offline'>;178}179declare module 'codecov/lib/services/appveyor.js' {180 declare module.exports: $Exports<'codecov/lib/services/appveyor'>;181}182declare module 'codecov/lib/services/azurePipelines.js' {183 declare module.exports: $Exports<'codecov/lib/services/azurePipelines'>;184}185declare module 'codecov/lib/services/buildkite.js' {186 declare module.exports: $Exports<'codecov/lib/services/buildkite'>;187}188declare module 'codecov/lib/services/circle.js' {189 declare module.exports: $Exports<'codecov/lib/services/circle'>;190}191declare module 'codecov/lib/services/cirrus.js' {192 declare module.exports: $Exports<'codecov/lib/services/cirrus'>;193}194declare module 'codecov/lib/services/codebuild.js' {195 declare module.exports: $Exports<'codecov/lib/services/codebuild'>;196}197declare module 'codecov/lib/services/codeship.js' {198 declare module.exports: $Exports<'codecov/lib/services/codeship'>;199}200declare module 'codecov/lib/services/drone.js' {201 declare module.exports: $Exports<'codecov/lib/services/drone'>;202}203declare module 'codecov/lib/services/gitlab.js' {204 declare module.exports: $Exports<'codecov/lib/services/gitlab'>;205}206declare module 'codecov/lib/services/heroku.js' {207 declare module.exports: $Exports<'codecov/lib/services/heroku'>;208}209declare module 'codecov/lib/services/jenkins.js' {210 declare module.exports: $Exports<'codecov/lib/services/jenkins'>;211}212declare module 'codecov/lib/services/localGit.js' {213 declare module.exports: $Exports<'codecov/lib/services/localGit'>;214}215declare module 'codecov/lib/services/semaphore.js' {216 declare module.exports: $Exports<'codecov/lib/services/semaphore'>;217}218declare module 'codecov/lib/services/semaphore2x.js' {219 declare module.exports: $Exports<'codecov/lib/services/semaphore2x'>;220}221declare module 'codecov/lib/services/shippable.js' {222 declare module.exports: $Exports<'codecov/lib/services/shippable'>;223}224declare module 'codecov/lib/services/snap.js' {225 declare module.exports: $Exports<'codecov/lib/services/snap'>;226}227declare module 'codecov/lib/services/teamcity.js' {228 declare module.exports: $Exports<'codecov/lib/services/teamcity'>;229}230declare module 'codecov/lib/services/travis.js' {231 declare module.exports: $Exports<'codecov/lib/services/travis'>;232}233declare module 'codecov/lib/services/wercker.js' {234 declare module.exports: $Exports<'codecov/lib/services/wercker'>;235}236declare module 'codecov/test/detect.test.js' {237 declare module.exports: $Exports<'codecov/test/detect.test'>;238}239declare module 'codecov/test/git.test.js' {240 declare module.exports: $Exports<'codecov/test/git.test'>;241}242declare module 'codecov/test/index.test.js' {243 declare module.exports: $Exports<'codecov/test/index.test'>;244}245declare module 'codecov/test/services/appveyor.test.js' {246 declare module.exports: $Exports<'codecov/test/services/appveyor.test'>;247}248declare module 'codecov/test/services/azure-pipelines.test.js' {249 declare module.exports: $Exports<'codecov/test/services/azure-pipelines.test'>;250}251declare module 'codecov/test/services/buildkite.test.js' {252 declare module.exports: $Exports<'codecov/test/services/buildkite.test'>;253}254declare module 'codecov/test/services/circle.test.js' {255 declare module.exports: $Exports<'codecov/test/services/circle.test'>;256}257declare module 'codecov/test/services/cirrus.test.js' {258 declare module.exports: $Exports<'codecov/test/services/cirrus.test'>;259}260declare module 'codecov/test/services/codebuild.test.js' {261 declare module.exports: $Exports<'codecov/test/services/codebuild.test'>;262}263declare module 'codecov/test/services/codeship.test.js' {264 declare module.exports: $Exports<'codecov/test/services/codeship.test'>;265}266declare module 'codecov/test/services/drone.test.js' {267 declare module.exports: $Exports<'codecov/test/services/drone.test'>;268}269declare module 'codecov/test/services/gitlab.test.js' {270 declare module.exports: $Exports<'codecov/test/services/gitlab.test'>;271}272declare module 'codecov/test/services/heroku.test.js' {273 declare module.exports: $Exports<'codecov/test/services/heroku.test'>;274}275declare module 'codecov/test/services/jenkins.test.js' {276 declare module.exports: $Exports<'codecov/test/services/jenkins.test'>;277}278declare module 'codecov/test/services/localGit.test.js' {279 declare module.exports: $Exports<'codecov/test/services/localGit.test'>;280}281declare module 'codecov/test/services/semaphore.test.js' {282 declare module.exports: $Exports<'codecov/test/services/semaphore.test'>;283}284declare module 'codecov/test/services/semaphore2x.test.js' {285 declare module.exports: $Exports<'codecov/test/services/semaphore2x.test'>;286}287declare module 'codecov/test/services/shippable.test.js' {288 declare module.exports: $Exports<'codecov/test/services/shippable.test'>;289}290declare module 'codecov/test/services/snap.test.js' {291 declare module.exports: $Exports<'codecov/test/services/snap.test'>;292}293declare module 'codecov/test/services/teamcity.test.js' {294 declare module.exports: $Exports<'codecov/test/services/teamcity.test'>;295}296declare module 'codecov/test/services/travis.test.js' {297 declare module.exports: $Exports<'codecov/test/services/travis.test'>;298}299declare module 'codecov/test/services/wercker.test.js' {300 declare module.exports: $Exports<'codecov/test/services/wercker.test'>;301}302declare module 'codecov/test/upload.test.js' {303 declare module.exports: $Exports<'codecov/test/upload.test'>;...
serviceuser_v1_client.py
Source:serviceuser_v1_client.py
1"""Generated client library for serviceuser version v1."""2# NOTE: This file is autogenerated and should not be edited by hand.3from apitools.base.py import base_api4from googlecloudsdk.third_party.apis.serviceuser.v1 import serviceuser_v1_messages as messages5class ServiceuserV1(base_api.BaseApiClient):6 """Generated client library for service serviceuser version v1."""7 MESSAGES_MODULE = messages8 BASE_URL = u'https://serviceuser.googleapis.com/'9 _PACKAGE = u'serviceuser'10 _SCOPES = [u'https://www.googleapis.com/auth/cloud-platform', u'https://www.googleapis.com/auth/cloud-platform.read-only', u'https://www.googleapis.com/auth/service.management']11 _VERSION = u'v1'12 _CLIENT_ID = '1042881264118.apps.googleusercontent.com'13 _CLIENT_SECRET = 'x_Tw5K8nnjoRAqULM9PFAC2b'14 _USER_AGENT = 'x_Tw5K8nnjoRAqULM9PFAC2b'15 _CLIENT_CLASS_NAME = u'ServiceuserV1'16 _URL_VERSION = u'v1'17 _API_KEY = None18 def __init__(self, url='', credentials=None,19 get_credentials=True, http=None, model=None,20 log_request=False, log_response=False,21 credentials_args=None, default_global_params=None,22 additional_http_headers=None, response_encoding=None):23 """Create a new serviceuser handle."""24 url = url or self.BASE_URL25 super(ServiceuserV1, self).__init__(26 url, credentials=credentials,27 get_credentials=get_credentials, http=http, model=model,28 log_request=log_request, log_response=log_response,29 credentials_args=credentials_args,30 default_global_params=default_global_params,31 additional_http_headers=additional_http_headers,32 response_encoding=response_encoding)33 self.projects_services = self.ProjectsServicesService(self)34 self.projects = self.ProjectsService(self)35 self.services = self.ServicesService(self)36 class ProjectsServicesService(base_api.BaseApiService):37 """Service class for the projects_services resource."""38 _NAME = u'projects_services'39 def __init__(self, client):40 super(ServiceuserV1.ProjectsServicesService, self).__init__(client)41 self._upload_configs = {42 }43 def Disable(self, request, global_params=None):44 r"""Disable a service so it can no longer be used with a.45project. This prevents unintended usage that may cause unexpected billing46charges or security leaks.47Operation<response: google.protobuf.Empty>48 Args:49 request: (ServiceuserProjectsServicesDisableRequest) input message50 global_params: (StandardQueryParameters, default: None) global arguments51 Returns:52 (Operation) The response message.53 """54 config = self.GetMethodConfig('Disable')55 return self._RunMethod(56 config, request, global_params=global_params)57 Disable.method_config = lambda: base_api.ApiMethodInfo(58 http_method=u'POST',59 method_id=u'serviceuser.projects.services.disable',60 ordered_params=[u'projectsId', u'servicesId'],61 path_params=[u'projectsId', u'servicesId'],62 query_params=[],63 relative_path=u'v1/projects/{projectsId}/services/{servicesId}:disable',64 request_field=u'disableServiceRequest',65 request_type_name=u'ServiceuserProjectsServicesDisableRequest',66 response_type_name=u'Operation',67 supports_download=False,68 )69 def Enable(self, request, global_params=None):70 r"""Enable a service so it can be used with a project.71See [Cloud Auth Guide](https://cloud.google.com/docs/authentication) for72more information.73Operation<response: google.protobuf.Empty>74 Args:75 request: (ServiceuserProjectsServicesEnableRequest) input message76 global_params: (StandardQueryParameters, default: None) global arguments77 Returns:78 (Operation) The response message.79 """80 config = self.GetMethodConfig('Enable')81 return self._RunMethod(82 config, request, global_params=global_params)83 Enable.method_config = lambda: base_api.ApiMethodInfo(84 http_method=u'POST',85 method_id=u'serviceuser.projects.services.enable',86 ordered_params=[u'projectsId', u'servicesId'],87 path_params=[u'projectsId', u'servicesId'],88 query_params=[],89 relative_path=u'v1/projects/{projectsId}/services/{servicesId}:enable',90 request_field=u'enableServiceRequest',91 request_type_name=u'ServiceuserProjectsServicesEnableRequest',92 response_type_name=u'Operation',93 supports_download=False,94 )95 def List(self, request, global_params=None):96 r"""List enabled services for the specified consumer.97 Args:98 request: (ServiceuserProjectsServicesListRequest) input message99 global_params: (StandardQueryParameters, default: None) global arguments100 Returns:101 (ListEnabledServicesResponse) The response message.102 """103 config = self.GetMethodConfig('List')104 return self._RunMethod(105 config, request, global_params=global_params)106 List.method_config = lambda: base_api.ApiMethodInfo(107 http_method=u'GET',108 method_id=u'serviceuser.projects.services.list',109 ordered_params=[u'projectsId'],110 path_params=[u'projectsId'],111 query_params=[u'pageSize', u'pageToken'],112 relative_path=u'v1/projects/{projectsId}/services',113 request_field='',114 request_type_name=u'ServiceuserProjectsServicesListRequest',115 response_type_name=u'ListEnabledServicesResponse',116 supports_download=False,117 )118 class ProjectsService(base_api.BaseApiService):119 """Service class for the projects resource."""120 _NAME = u'projects'121 def __init__(self, client):122 super(ServiceuserV1.ProjectsService, self).__init__(client)123 self._upload_configs = {124 }125 class ServicesService(base_api.BaseApiService):126 """Service class for the services resource."""127 _NAME = u'services'128 def __init__(self, client):129 super(ServiceuserV1.ServicesService, self).__init__(client)130 self._upload_configs = {131 }132 def Search(self, request, global_params=None):133 r"""Search available services.134When no filter is specified, returns all accessible services. For135authenticated users, also returns all services the calling user has136"servicemanagement.services.bind" permission for.137 Args:138 request: (ServiceuserServicesSearchRequest) input message139 global_params: (StandardQueryParameters, default: None) global arguments140 Returns:141 (SearchServicesResponse) The response message.142 """143 config = self.GetMethodConfig('Search')144 return self._RunMethod(145 config, request, global_params=global_params)146 Search.method_config = lambda: base_api.ApiMethodInfo(147 http_method=u'GET',148 method_id=u'serviceuser.services.search',149 ordered_params=[],150 path_params=[],151 query_params=[u'pageSize', u'pageToken'],152 relative_path=u'v1/services:search',153 request_field='',154 request_type_name=u'ServiceuserServicesSearchRequest',155 response_type_name=u'SearchServicesResponse',156 supports_download=False,...
sort_services_test.py
Source:sort_services_test.py
1from __future__ import absolute_import2from __future__ import unicode_literals3import pytest4from compose.config.errors import DependencyError5from compose.config.sort_services import sort_service_dicts6from compose.config.types import VolumeFromSpec7class TestSortService(object):8 def test_sort_service_dicts_1(self):9 services = [10 {11 'links': ['redis'],12 'name': 'web'13 },14 {15 'name': 'grunt'16 },17 {18 'name': 'redis'19 }20 ]21 sorted_services = sort_service_dicts(services)22 assert len(sorted_services) == 323 assert sorted_services[0]['name'] == 'grunt'24 assert sorted_services[1]['name'] == 'redis'25 assert sorted_services[2]['name'] == 'web'26 def test_sort_service_dicts_2(self):27 services = [28 {29 'links': ['redis', 'postgres'],30 'name': 'web'31 },32 {33 'name': 'postgres',34 'links': ['redis']35 },36 {37 'name': 'redis'38 }39 ]40 sorted_services = sort_service_dicts(services)41 assert len(sorted_services) == 342 assert sorted_services[0]['name'] == 'redis'43 assert sorted_services[1]['name'] == 'postgres'44 assert sorted_services[2]['name'] == 'web'45 def test_sort_service_dicts_3(self):46 services = [47 {48 'name': 'child'49 },50 {51 'name': 'parent',52 'links': ['child']53 },54 {55 'links': ['parent'],56 'name': 'grandparent'57 },58 ]59 sorted_services = sort_service_dicts(services)60 assert len(sorted_services) == 361 assert sorted_services[0]['name'] == 'child'62 assert sorted_services[1]['name'] == 'parent'63 assert sorted_services[2]['name'] == 'grandparent'64 def test_sort_service_dicts_4(self):65 services = [66 {67 'name': 'child'68 },69 {70 'name': 'parent',71 'volumes_from': [VolumeFromSpec('child', 'rw', 'service')]72 },73 {74 'links': ['parent'],75 'name': 'grandparent'76 },77 ]78 sorted_services = sort_service_dicts(services)79 assert len(sorted_services) == 380 assert sorted_services[0]['name'] == 'child'81 assert sorted_services[1]['name'] == 'parent'82 assert sorted_services[2]['name'] == 'grandparent'83 def test_sort_service_dicts_5(self):84 services = [85 {86 'links': ['parent'],87 'name': 'grandparent'88 },89 {90 'name': 'parent',91 'network_mode': 'service:child'92 },93 {94 'name': 'child'95 }96 ]97 sorted_services = sort_service_dicts(services)98 assert len(sorted_services) == 399 assert sorted_services[0]['name'] == 'child'100 assert sorted_services[1]['name'] == 'parent'101 assert sorted_services[2]['name'] == 'grandparent'102 def test_sort_service_dicts_6(self):103 services = [104 {105 'links': ['parent'],106 'name': 'grandparent'107 },108 {109 'name': 'parent',110 'volumes_from': [VolumeFromSpec('child', 'ro', 'service')]111 },112 {113 'name': 'child'114 }115 ]116 sorted_services = sort_service_dicts(services)117 assert len(sorted_services) == 3118 assert sorted_services[0]['name'] == 'child'119 assert sorted_services[1]['name'] == 'parent'120 assert sorted_services[2]['name'] == 'grandparent'121 def test_sort_service_dicts_7(self):122 services = [123 {124 'network_mode': 'service:three',125 'name': 'four'126 },127 {128 'links': ['two'],129 'name': 'three'130 },131 {132 'name': 'two',133 'volumes_from': [VolumeFromSpec('one', 'rw', 'service')]134 },135 {136 'name': 'one'137 }138 ]139 sorted_services = sort_service_dicts(services)140 assert len(sorted_services) == 4141 assert sorted_services[0]['name'] == 'one'142 assert sorted_services[1]['name'] == 'two'143 assert sorted_services[2]['name'] == 'three'144 assert sorted_services[3]['name'] == 'four'145 def test_sort_service_dicts_circular_imports(self):146 services = [147 {148 'links': ['redis'],149 'name': 'web'150 },151 {152 'name': 'redis',153 'links': ['web']154 },155 ]156 with pytest.raises(DependencyError) as exc:157 sort_service_dicts(services)158 assert 'redis' in exc.exconly()159 assert 'web' in exc.exconly()160 def test_sort_service_dicts_circular_imports_2(self):161 services = [162 {163 'links': ['postgres', 'redis'],164 'name': 'web'165 },166 {167 'name': 'redis',168 'links': ['web']169 },170 {171 'name': 'postgres'172 }173 ]174 with pytest.raises(DependencyError) as exc:175 sort_service_dicts(services)176 assert 'redis' in exc.exconly()177 assert 'web' in exc.exconly()178 def test_sort_service_dicts_circular_imports_3(self):179 services = [180 {181 'links': ['b'],182 'name': 'a'183 },184 {185 'name': 'b',186 'links': ['c']187 },188 {189 'name': 'c',190 'links': ['a']191 }192 ]193 with pytest.raises(DependencyError) as exc:194 sort_service_dicts(services)195 assert 'a' in exc.exconly()196 assert 'b' in exc.exconly()197 def test_sort_service_dicts_self_imports(self):198 services = [199 {200 'links': ['web'],201 'name': 'web'202 },203 ]204 with pytest.raises(DependencyError) as exc:205 sort_service_dicts(services)206 assert 'web' in exc.exconly()207 def test_sort_service_dicts_depends_on_self(self):208 services = [209 {210 'depends_on': ['web'],211 'name': 'web'212 },213 ]214 with pytest.raises(DependencyError) as exc:215 sort_service_dicts(services)...
service_util.py
Source:service_util.py
1# -*- coding: utf-8 -*- #2# Copyright 2015 Google Inc. All Rights Reserved.3#4# Licensed under the Apache License, Version 2.0 (the "License");5# you may not use this file except in compliance with the License.6# You may obtain a copy of the License at7#8# http://www.apache.org/licenses/LICENSE-2.09#10# Unless required by applicable law or agreed to in writing, software11# distributed under the License is distributed on an "AS IS" BASIS,12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.13# See the License for the specific language governing permissions and14# limitations under the License.15"""Utilities for dealing with service resources."""16from __future__ import absolute_import17from __future__ import division18from __future__ import unicode_literals19from googlecloudsdk.api_lib.app import operations_util20from googlecloudsdk.core import exceptions21from googlecloudsdk.core.util import text22import six23class ServiceValidationError(exceptions.Error):24 pass25class ServicesDeleteError(exceptions.Error):26 pass27class ServicesNotFoundError(exceptions.Error):28 @classmethod29 def FromServiceLists(cls, requested_services, all_services):30 """Format a ServiceNotFoundError.31 Args:32 requested_services: list of str, IDs of services that were not found.33 all_services: list of str, IDs of all available services34 Returns:35 ServicesNotFoundError, error with properly formatted message36 """37 return cls(38 'The following {0} not found: [{1}]\n\n'39 'All services: [{2}]'.format(40 text.Pluralize(len(requested_services), 'service was',41 plural='services were'),42 ', '.join(requested_services),43 ', '.join(all_services)))44class ServicesSplitTrafficError(exceptions.Error):45 pass46class Service(object):47 """Value class representing a service resource."""48 def __init__(self, project, id_, split=None):49 self.project = project50 self.id = id_51 self.split = split or {}52 def __eq__(self, other):53 return (type(other) is Service and54 self.project == other.project and self.id == other.id)55 def __ne__(self, other):56 return not self == other57 @classmethod58 def FromResourcePath(cls, path):59 parts = path.split('/')60 if len(parts) != 2:61 raise ServiceValidationError('[{0}] is not a valid resource path. '62 'Expected <project>/<service>.')63 return cls(*parts)64 # TODO(b/25662075): convert to use functools.total_ordering65 def __lt__(self, other):66 return (self.project, self.id) < (other.project, other.id)67 def __le__(self, other):68 return (self.project, self.id) <= (other.project, other.id)69 def __gt__(self, other):70 return (self.project, self.id) > (other.project, other.id)71 def __ge__(self, other):72 return (self.project, self.id) >= (other.project, other.id)73 def __repr__(self):74 return '{0}/{1}'.format(self.project, self.id)75def _ValidateServicesAreSubset(filtered_services, all_services):76 not_found_services = set(filtered_services) - set(all_services)77 if not_found_services:78 raise ServicesNotFoundError.FromServiceLists(not_found_services,79 all_services)80def GetMatchingServices(all_services, args_services):81 """Return a list of services to act on based on user arguments.82 Args:83 all_services: list of Services representing all services in the project.84 args_services: list of string, service IDs to filter for, from arguments85 given by the user to the command line. If empty, match all services.86 Returns:87 list of matching Services sorted by the order they were given to the88 command line.89 Raises:90 ServiceValidationError: If an improper combination of arguments is given91 """92 if not args_services:93 args_services = sorted(s.id for s in all_services)94 else:95 _ValidateServicesAreSubset(args_services, [s.id for s in all_services])96 matching_services = []97 # Match the order to the order of arguments.98 for service_id in args_services:99 matching_services += [s for s in all_services if s.id == service_id]100 return matching_services101def ParseTrafficAllocations(args_allocations, split_method):102 """Parses the user-supplied allocations into a format acceptable by the API.103 Args:104 args_allocations: The raw allocations passed on the command line. A dict105 mapping version_id (str) to the allocation (float).106 split_method: Whether the traffic will be split by ip or cookie. This107 affects the format we specify the splits in.108 Returns:109 A dict mapping version id (str) to traffic split (float).110 Raises:111 ServicesSplitTrafficError: if the sum of traffic allocations is zero.112 """113 # Splitting by IP allows 2 decimal places, splitting by cookie allows 3.114 max_decimal_places = 2 if split_method == 'ip' else 3115 sum_of_splits = sum([float(s) for s in args_allocations.values()])116 err = ServicesSplitTrafficError(117 'Cannot set traffic split to zero. If you would like a version to '118 'receive no traffic, send 100% of traffic to other versions or delete '119 'the service.')120 # Prevent division by zero121 if sum_of_splits == 0.0:122 raise err123 allocations = {}124 for version, split in six.iteritems(args_allocations):125 allocation = float(split) / sum_of_splits126 allocation = round(allocation, max_decimal_places)127 if allocation == 0.0:128 raise err129 allocations[version] = allocation130 # The API requires that these sum to 1.0. This is hard to get exactly correct,131 # (think .33, .33, .33) so we take our difference and subtract it from the132 # first maximum element of our sorted allocations dictionary133 total_splits = round(sum(allocations.values()), max_decimal_places)134 difference = total_splits - 1.0135 max_split = max(allocations.values())136 for version, split in sorted(allocations.items()):137 if max_split == split:138 allocations[version] -= difference139 break140 return allocations141def DeleteServices(api_client, services):142 """Delete the given services."""143 errors = {}144 for service in services:145 try:146 operations_util.CallAndCollectOpErrors(147 api_client.DeleteService, service.id)148 except operations_util.MiscOperationError as err:149 errors[service.id] = str(err)150 if errors:151 printable_errors = {}152 for service_id, error_msg in errors.items():153 printable_errors[service_id] = '[{0}]: {1}'.format(service_id,154 error_msg)155 raise ServicesDeleteError(156 'Issue deleting {0}: [{1}]\n\n'.format(157 text.Pluralize(len(printable_errors), 'service'),158 ', '.join(list(printable_errors.keys()))) +...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!