У меня есть сценарий python, и я хотел написать контрольные примеры для этого файла, однако я использую библиотеку googleads, и меня смущает вопрос о том, как смоделировать мой юнит-тест для библиотеки googleads. Вот файл python:
from dateutil.relativedelta import relativedelta
from modules.db_models import Campaigns
from modules.utils import *
class campaign_util:
def _pause_campaign(self, client, campaign_id):
# Initialize appropriate service.
campaign_service = client.GetService('CampaignService', version='v201809')
# Construct operations and update campaign.
operations = [{
'operator': 'SET',
'operand': {
'id': campaign_id,
'status': 'PAUSED'
}
}]
result = campaign_service.mutate(operations)
print(result)
И здесь я пытаюсь написать контрольный пример для файла. test_file.py
:
from __future__ import absolute_import
import unittest
import os
import sys
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from modules.db_models import Campaigns
from modules.campaign_util import campaign_util
from unittest.mock import Mock
mock = Mock()
print('hiii',mock.dumps())
class test_campaign_util(unittest.TestCase):
@mock.patch('path_to_module.AdWordsClient',autospec=True)
@mock.patch('path_to_module.GoogleRefreshTokenClient',autospec=True)
@mock.patch('modules.campaign_util.campaign_id')
def test_pause_campaign(self,client,campaign_id):
campaign_service = client.GetService.assert_called_with('CampaignService',version='v201809')
campaign_service = mock.Mock()
test_operation = []
self.assertEqual(test_operation,['operator','operand'])
return result
Я пытался искать в другом месте, но не смог прийти к выводу. Пожалуйста, укажите, если я что-то упустил.
вот обратная связь:
Traceback (most recent call last):
File "/usr/lib/python3.7/unittest/mock.py", line 1255, in patched
return func(*args, **keywargs)
File "/home/mayureshk/PycharmProjects/adassist_bnt/venv/test/test_campaign_util.py", line 17, in test_pause_campaign
campaign_service = client.GetService.assert_called_with('CampaignService',version='v201809')
File "/usr/lib/python3.7/unittest/mock.py", line 864, in assert_called_with
raise AssertionError('Expected call: %s\nNot called' % (expected,))
AssertionError: Expected call: GetService('CampaignService', version='v201809')
Not called
----------------------------------------------------------------------
Ran 1 test in 0.001s
FAILED (failures=1)