#python #pytest #google-api-client #pytest-mock
#python #pytest #google-api-клиент #pytest-макет
Вопрос:
у меня есть некоторый код, который инициализирует iam_service
, а затем есть несколько запросов для получения ServiceAccounts и ключей.
инициализация:
iam_service = googleapiclient.discovery.build('iam', 'v1', credentials=self.credentials
затем iam_service
передается функциям и выполняется
например, для перечисления ServiceAccounts:
req = iam_service.projects().serviceAccounts().list(name=name).execute()
и для получения ключей:
req = iam_service.projects().serviceAccounts().keys().list(name=serviceAccountEmail).execute()
Это добавление кода в функцию очистки существующего модуля (gce.py ). в целом, как это выглядит на данный момент:
def cleanup(self):
..other clean
self.cleanup_serviceaccounts()
def cleanup_serviceaccounts(self):
self.log_info(f"## GCE cleaning - {self.__project} ##")
service = googleapiclient.discovery.build('iam', 'v1', credentials=self.credentials)
# Get service account emails
service_accounts_emails = self.parser_service_account_list(service)
# For each email found return the ones with associated old date
service_accounts_emails_filtered = self.filter_email_service_accounts(service,
service_accounts_emails)
self.delete_service_accounts(service, service_accounts_emails_filtered)
def parser_service_account_list(service):
...
def self.filter_email_service_accounts(service, service_accounts_emails):
...
def delete_service_accounts(service, service_accounts_emails_filtered):
...
я нашел документацию в модуле googleapiclient для макетов. Но я не понял, как это будет соответствовать моим потребностям. Например, для примера требуется файл auth_creds.json. Документация немного короткая, и я не понимаю, как на самом деле должны быть реализованы шаги от аутентификации до запросов.
Может ли кто-нибудь поделиться тем, как должен быть реализован pytest с помощью monkeypatch модуля, используя HttpMock / HttpMockSequence или как это было бы реализовано без.
я могу поделиться тестовым кодом, как он выглядит из предыдущих реализаций.
Любые дополнительные идеи приветствуются, поскольку я пытаюсь понять, как издевательство над такими случаями работает во благо. В Google есть много вещей, но с очень простыми тестовыми примерами, где они обычно не применяются в реальном мире.