Как издеваться над googleads для написания юнит-тестов в python? - PullRequest
1 голос
/ 20 января 2020

У меня есть сценарий 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)
...