Exemple #1
0
    def handle(self, *args, **options):
        if len(args) != 1:
            raise CommandError("Usage: <product.id>")

        product_id = args

        product = Product.objects.get(pk=product_id)
        campaign_name = 'PLA - %s' % product.category_tree

        client = AdWordsClient(path=os.path.join('..', '..', '..', '..', '..'))
        campaign_service = client.GetCampaignService(version='v201306')

        selector = {
            'fields': ['Id', 'Name', 'Status'],
            'paging': {
                'startIndex': str(0),
                'numberResults': str(10)
            },
            'predicates': [{
                'field':
                'Name',
                'operator':
                'EQUALS',
                'values':
                ['PLA - Animals and Pets > Houses and Kennels > Houses']
            }]
        }
    def _RunTestWithBuffer(self, buffer_):
        """Tests error parsing using the given AdWordsSoapBuffer."""
        client = AdWordsClient(headers={
            'userAgent':
            'USER_AGENT',
            'developerToken':
            'DEVELOPER_TOKEN',
            'clientCustomerId':
            'CLIENT_CUSTOMER_ID',
            'oauth2credentials':
            OAuth2Credentials('ACCESS_TOKEN', 'client_id', 'client_secret',
                              'refresh_token', None, 'uri', 'user_agent')
        },
                               path='/tmp/')

        with mock.patch('adspygoogle.SOAPpy.WSDL.Proxy'):
            service = client.GetCampaignService()

        buffer_.write(open(BUFFER_FILE_LOCATION).read())

        try:
            service._HandleLogsAndErrors(buffer_, '', '', {'data': 'datum'})
        except AdWordsRequestError, e:
            self.assertEqual(-1, e.code)
            self.assertEqual(1, len(e.errors))
            error_detail = e.errors[0]
            self.assertEqual(
                'Please correct the capitalization in the following '
                'phrase(s): \'AAAAAAAAAAAAAAAAAAAAA\'',
                error_detail.externalPolicyDescription)
            self.assertEqual('[Capitalization] Excessive capitalization',
                             error_detail.externalPolicyName)
            self.assertEqual(None, error_detail.externalPolicyUrl)
            self.assertEqual('true', error_detail.isExemptable)
            self.assertEqual('operations[0].operand.ad.headline',
                             error_detail.fieldPath)
            self.assertEqual('PolicyViolationError', error_detail.type)
            self.assertEqual(None, error_detail.trigger)
            self.assertEqual(
                {
                    'policyName': 'capitalization',
                    'violatingText': 'AAAAAAAAAAAAAAAAAAAAA'
                }, error_detail.key)
            self.assertEqual({
                'index': '0',
                'length': '21'
            }, error_detail.violatingParts)
Exemple #3
0
            'oauth2credentials': credential
        })

    # OAuth2 credentials objects can be reused
    credentials = client.oauth2credentials
    print 'OAuth2 authorization successful!'

    # OAuth2 credential objects can be refreshed via credentials.refresh() - the
    # access token expires after 1 hour.
    credentials.refresh(httplib2.Http())

    # Note: you could simply set the credentials as below and skip the previous
    # steps once access has been granted.
    client.oauth2credentials = credentials

    campaign_service = client.GetCampaignService(version='v201402')

    # Get all campaigns.
    # Construct selector and get all campaigns.
    selector = {'fields': ['Id', 'Name', 'Status']}
    campaigns = campaign_service.Get(selector)[0]

    # Display results.
    if 'entries' in campaigns:
        for campaign in campaigns['entries']:
            print(
                'Campaign with id \'%s\', name \'%s\' and status \'%s\' was found.'
                % (campaign['id'], campaign['name'], campaign['status']))
    else:
        print 'No campaigns were found.'