예제 #1
0
    def test_t000_wad_Campaign_add_remove_usingaddremove(self):

        print('wad_Campaign test t000')

        client = adwords.AdWordsClient.LoadFromStorage()

        # creates three new campaigns
        campaign0id = Campaign.addcampaign(client,
                                           'test_t000_campaign0').campaignid
        campaign1id = Campaign.addcampaign(client,
                                           'test_t000_campaign1').campaignid
        campaign2id = Campaign.addcampaign(client,
                                           'test_t000_campaign2').campaignid

        # gets the lists of all campaigns
        campaignlist = Campaign.listcampaigns(client)

        campaignidlist = []

        # builds a list of campaigns with status != REMOVED
        for campaign in campaignlist:
            if campaign['status'] != Campaign.STATE_REMOVED:
                campaignidlist.append(campaign['id'])

        # asserts the campaigns added are in the list
        self.assertTrue(campaign0id in campaignidlist)
        self.assertTrue(campaign1id in campaignidlist)
        self.assertTrue(campaign2id in campaignidlist)

        # removes the campaigns
        Campaign.removecampaign(client, campaign0id)
        Campaign.removecampaign(client, campaign1id)
        Campaign.removecampaign(client, campaign2id)

        # gets the list of all campaigns
        campaignlist = Campaign.listcampaigns(client)

        campaignidlist = []

        # builds a list of campaigns with status != REMOVED
        for campaign in campaignlist:
            if campaign['status'] != Campaign.STATE_REMOVED:
                campaignidlist.append(campaign['campaignId'])

        # asserts the campaigns added are not in the list
        self.assertFalse(campaign0id in campaignidlist)
        self.assertFalse(campaign1id in campaignidlist)
        self.assertFalse(campaign2id in campaignidlist)

        Budget.removenorefbudgets(client)
예제 #2
0
    def test_t025_wad_Campaign_sync_with_nonexisting_budget(self):

        print('wad_Campaign test t025')

        client = adwords.AdWordsClient.LoadFromStorage()

        # sync with django db
        Campaign.sync(client)

        campaign0 = Campaign(campaignname='t025_campaign0')
        campaign0.save()
        campaign1 = Campaign(campaignname='t025_campaign1')
        campaign1.save()
        campaign2 = Campaign(campaignname='t025_campaign2')
        campaign2.save()

        allcampaigns = Campaign.listcampaigns(client)

        for campaign in allcampaigns:
            if campaign['id'] == campaign0.campaignid:
                self.assertEqual(campaign['name'], campaign0.campaignname)

            if campaign['id'] == campaign1.campaignid:
                self.assertEqual(campaign['name'], campaign1.campaignname)

            if campaign['id'] == campaign2.campaignid:
                self.assertEqual(campaign['name'], campaign2.campaignname)

        campaign0.delete()
        campaign1.delete()
        campaign2.delete()

        removedbudgets = Budget.removenorefbudgets(client)

        self.assertEqual(len(removedbudgets), 3)
예제 #3
0
    def test_t021_wad_Campaign_remove_noref_budgets(self):

        # this test checks if noref budgets are removed successfully using
        # Budget.removenorefbudgets ( )

        client = adwords.AdWordsClient.LoadFromStorage()

        campaignnames = [
            'test_t021_campaign0', 'test_t021_campaign1', 'test_t021_campaign2'
        ]

        # create three campaigns with unspecified budgets, budgets are created
        # for them automatically
        c0 = Campaign.addcampaign(client, campaignnames[0])
        c1 = Campaign.addcampaign(client, campaignnames[1])
        c2 = Campaign.addcampaign(client, campaignnames[2])

        # remove the campaigns, budgets are now 0 ref budgets
        Campaign.removecampaign(client, c0.campaignid)
        Campaign.removecampaign(client, c1.campaignid)
        Campaign.removecampaign(client, c2.campaignid)

        removedbudgets = Budget.removenorefbudgets(client)

        for budget in removedbudgets:
            print(budget.budgetname[11:])
            self.assertTrue(budget.budgetname[11:] in campaignnames)
예제 #4
0
    def test_t020_wad_Campaign_list_campaigns(self):

        client = adwords.AdWordsClient.LoadFromStorage()

        campaigns = Campaign.listcampaigns(client)

        rslt = Campaign._aw_addcampaign(client, 'test_t020_campaign0')

        #print ( rslt )

        campaigns = Campaign.listcampaigns(client)

        Campaign.removecampaign(client, rslt['id'])

        rslt = Campaign.addcampaign(client, 'test_t020_campaign1')

        print(rslt)

        rslt = Campaign.removecampaign(client, rslt.campaignid)

        #print ( rslt )

        Budget.removenorefbudgets(client)
예제 #5
0
    def test_t023_wad_Campaign_sync_with_existing_budget(self):

        print('wad_Campaign test t023')

        client = adwords.AdWordsClient.LoadFromStorage()

        # sync with django db
        Campaign.sync(client)

        budget0 = Budget(budgetname='t023_budget0', budgetamount=10000000)
        budget0.save()
        budget1 = Budget(budgetname='t023_budget1', budgetamount=20000000)
        budget1.save()
        budget2 = Budget(budgetname='t023_budget2', budgetamount=30000000)
        budget2.save()

        campaign0 = Campaign(campaignname='t023_campaign0',
                             campaignbudget=budget0)
        campaign0.save()
        campaign1 = Campaign(campaignname='t023_campaign1',
                             campaignbudget=budget1)
        campaign1.save()
        campaign2 = Campaign(campaignname='t023_campaign2',
                             campaignbudget=budget2)
        campaign2.save()

        allcampaigns = Campaign.listcampaigns(client)

        for campaign in allcampaigns:
            if campaign['budget']['budgetId'] == budget0.budgetid:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget0.budgetamount)

            if campaign['budget']['budgetId'] == budget1.budgetid:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget1.budgetamount)

            if campaign['budget']['budgetId'] == budget2.budgetid:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget2.budgetamount)

        campaign0.delete()
        campaign1.delete()
        campaign2.delete()

        removedbudgets = Budget.removenorefbudgets(client)
        self.assertEqual(len(removedbudgets), 3)
예제 #6
0
    def test_t026_wad_Campaign_modify_sync(self):

        print('wad_Campaign test t026')

        client = adwords.AdWordsClient.LoadFromStorage()
        service = Campaign.serviceobj(client)

        # modify name

        campaign0 = Campaign(campaignname='t026_campaign0')
        campaign0.save()

        mdict = Campaign.modifydict(
            campaign0.campaignid,
            't026_campaign0_renamed',
            campaign0.campaignstatus,
            campaign0.campaignbudget,
            campaign0.campaigntargetgooglesearch,
            campaign0.campaigntargetsearchnetwork,
            campaign0.campaigntargetcontentnetwork,
        )

        service.mutate([mdict])

        campaign0 = Campaign.objects.get(campaignid=campaign0.campaignid)
        self.assertEqual(campaign0.campaignname, 't026_campaign0')

        Campaign.sync(client)

        campaign0 = Campaign.objects.get(campaignid=campaign0.campaignid)
        self.assertEqual(campaign0.campaignname, 't026_campaign0_renamed')

        # modify status

        campaign1 = Campaign(campaignname='t026_campaign1')
        campaign1.save()

        statusnew = Campaign.objects.get(
            campaignid=campaign1.campaignid).campaignstatus

        if campaign1.campaignstatus == Campaign.STATE_ENABLED:
            statusnew = Campaign.STATE_PAUSED
        else:
            statusnew = Campaign.STATE_ENABLED

        mdict = Campaign.modifydict(campaign1.campaignid,
                                    campaign1.campaignname, statusnew,
                                    campaign1.campaignbudget,
                                    campaign1.campaigntargetgooglesearch,
                                    campaign1.campaigntargetsearchnetwork,
                                    campaign1.campaigntargetcontentnetwork)

        service.mutate([mdict])

        if statusnew == Campaign.STATE_ENABLED:
            statusnew = Campaign.STATE_PAUSED
        else:
            statusnew = Campaign.STATE_ENABLED

        campaign1 = Campaign.objects.get(campaignid=campaign1.campaignid)
        self.assertEqual(campaign1.campaignstatus, statusnew)

        Campaign.sync(client)

        if statusnew == Campaign.STATE_ENABLED:
            statusnew = Campaign.STATE_PAUSED
        else:
            statusnew = Campaign.STATE_ENABLED

        campaign1 = Campaign.objects.get(campaignid=campaign1.campaignid)
        self.assertEqual(campaign1.campaignstatus, statusnew)

        # modify budget

        campaign2 = Campaign(campaignname='t026_campaign2')
        campaign2.save()

        oldbudget = Campaign.objects.get(
            campaignid=campaign2.campaignid).campaignbudget

        newbudget = Budget(client, 'test_t026_budget2', 6000000000)
        newbudget.save()

        mdict = Campaign.modifydict(campaign2.campaignid,
                                    campaign2.campaignname,
                                    campaign2.campaignstatus,
                                    newbudget.asdict(),
                                    campaign2.campaigntargetgooglesearch,
                                    campaign2.campaigntargetsearchnetwork,
                                    campaign2.campaigntargetcontentnetwork)

        service.mutate([mdict])

        Campaign.sync(client)

        campaign2 = Campaign.objects.get(campaignid=campaign2.campaignid)
        self.assertNotEqual(campaign2.campaignbudget.budgetid,
                            oldbudget.budgetid)
        self.assertEqual(campaign2.campaignbudget.budgetid, newbudget.budgetid)

        # modify budget name

        campaign3 = Campaign(campaignname='t026_campaign3')
        campaign3.save()

        abudget = campaign3.campaignbudget

        abudget.budgetname = 'budget_for_t026_new_budget_name'

        abudget.save()

        #mdict = Campaign.modifydict (campaign3.campaignid,
        #campaign3.campaignname,
        #campaign3.campaignstatus,
        #campaign3.campaignbudget,
        #campaign3.campaigntargetgooglesearch,
        #campaign3.campaigntargetsearchnetwork,
        #campaign3.campaigntargetcontentnetwork,
        #)

        #service.mutate ( [mdict] )

        campaign3budgetname = Campaign.objects.get(
            campaignid=campaign3.campaignid).campaignbudget.budgetname
        self.assertEqual(campaign3budgetname, 'budget_for_t026_campaign3')

        Campaign.sync(client)

        campaign3budgetname = Campaign.objects.get(
            campaignid=campaign3.campaignid).campaignbudget.budgetname
        self.assertEqual(campaign3budgetname,
                         'budget_for_t026_new_budget_name')

        # modify budget 4

        campaign4 = Campaign(campaignname='t026_campaign4')
        campaign4.save()

        oldbudget = Campaign.objects.get(
            campaignid=campaign4.campaignid).campaignbudget

        newbudget = Budget(client, 'test_t026_budget4', 6000000000)
        newbudget.save()

        campaign4.campaignbudget = newbudget
        campaign4.save()

        #Campaign.sync( client )

        campaign4 = Campaign.objects.get(campaignid=campaign4.campaignid)
        self.assertNotEqual(campaign4.campaignbudget.budgetid,
                            oldbudget.budgetid)
        self.assertEqual(campaign4.campaignbudget.budgetid, newbudget.budgetid)

        # modify ad channel type

        #campaign2 = Campaign ( campaignname = 't026_campaign2' )
        #campaign2.save ()

        #adchan = Campaign.objects.get ( campaignid = campaign2.campaignid ).campaignadchanneltype

        #if campaign2.campaignadchanneltype == Campaign.TYPE_AD_CHAN_SEARCH:
        #adchan = Campaign.TYPE_AD_CHAN_DISPLAY
        #else:
        #adchan = Campaign.TYPE_AD_CHAN_SEARCH

        #mdict = Campaign.modifydict (campaign2.campaignid,
        #campaign2.campaignname,
        #campaign2.campaignstatus,
        #adchan,
        #campaign2.campaignbudget )
        #print ( mdict )
        #service.mutate ( [mdict] )

        #if adchan == Campaign.TYPE_AD_CHAN_SEARCH:
        #adchan = Campaign.TYPE_AD_CHAN_DISPLAY
        #else:
        #adchan = Campaign.TYPE_AD_CHAN_SEARCH

        #campaign2 = Campaign.objects.get ( campaignid = campaign2.campaignid )
        #self.assertEqual ( campaign2.campaignadchanneltype, adchan )

        #Campaign.sync( client )

        #if adchan == Campaign.TYPE_AD_CHAN_SEARCH:
        #adchan = Campaign.TYPE_AD_CHAN_DISPLAY
        #else:
        #adchan = Campaign.TYPE_AD_CHAN_SEARCH

        #campaign2 = Campaign.objects.get ( campaignid = campaign2.campaignid )
        #self.assertEqual ( campaign2.campaignadchanneltype, adchan )

        campaign0.delete()
        campaign1.delete()
        campaign2.delete()
        campaign3.delete()
        campaign4.delete()

        removedbudgets = Budget.removenorefbudgets(client)

        self.assertEqual(len(removedbudgets), 5)
예제 #7
0
    def test_t024_wad_Campaign_sync_with_existing_budget2(self):

        print('wad_Campaign test t024')

        client = adwords.AdWordsClient.LoadFromStorage()

        # sync with django db
        Campaign.sync(client)

        budget0 = Budget._aw_addbudget(client, 't024_budget0', 10000000)
        budget1 = Budget._aw_addbudget(client, 't024_budget1', 20000000)
        budget2 = Budget._aw_addbudget(client, 't024_budget2', 30000000)

        Budget.sync(client)

        campaign0 = Campaign._aw_addcampaign(
            client, 't024_campaign0',
            Budget.objects.get(budgetamount=10000000))
        campaign1 = Campaign._aw_addcampaign(
            client, 't024_campaign1',
            Budget.objects.get(budgetamount=20000000))
        campaign2 = Campaign._aw_addcampaign(
            client, 't024_campaign2',
            Budget.objects.get(budgetamount=30000000))

        allcampaigns = Campaign.listcampaigns(client)

        #print ( budget0 )

        for campaign in allcampaigns:
            if campaign['id'] == campaign0['id']:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget0['amount']['microAmount'])

            if campaign['id'] == campaign1['id']:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget1['amount']['microAmount'])

            if campaign['id'] == campaign2['id']:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget2['amount']['microAmount'])

            if campaign['budget']['budgetId'] == budget0['budgetId']:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget0['amount']['microAmount'])

            if campaign['budget']['budgetId'] == budget1['budgetId']:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget1['amount']['microAmount'])

            if campaign['budget']['budgetId'] == budget2['budgetId']:
                self.assertEqual(campaign['budget']['amount']['microAmount'],
                                 budget2['amount']['microAmount'])

        Campaign.sync(client)

        Campaign.objects.get(campaignbudget=Budget.objects.get(
            budgetid=budget0['budgetId'])).delete()
        Campaign.objects.get(campaignbudget=Budget.objects.get(
            budgetid=budget1['budgetId'])).delete()
        Campaign.objects.get(campaignbudget=Budget.objects.get(
            budgetid=budget2['budgetId'])).delete()

        #print ( campaign0 )

        #campaign0.delete()
        #campaign1.delete()
        #campaign2.delete()

        Budget.removenorefbudgets(client)
예제 #8
0
    def test_t003_wad_Campaign_sync_add_remove_usingsync(self):

        print('wad_Campaign test t003')

        client = adwords.AdWordsClient.LoadFromStorage()

        # sync with django db
        Campaign.sync(client)

        # beginning django campaigns queryset
        beginningcampaigns = Campaign.objects.all()

        # beginning awcampaignslst
        beginningawcampaignslst = Campaign.listcampaigns(client)

        # assert that the django campaign set and aw campaignset correspond
        self.assertEqual(len(beginningcampaigns), len(beginningawcampaignslst))

        # create three new campaigns in aw
        campaign0id = Campaign._aw_addcampaign(client,
                                               'test_t003_campaign0')['id']
        campaign1id = Campaign._aw_addcampaign(client,
                                               'test_t003_campaign1')['id']
        campaign2id = Campaign._aw_addcampaign(client,
                                               'test_t003_campaign2')['id']

        # sync with django db
        Campaign.sync(client)

        # test if the new campaigns added to aw are in the Django system
        self.assertEqual(
            len(beginningcampaigns) + 3, len(Campaign.objects.all()))
        self.assertEqual(
            len(beginningawcampaignslst) + 3, len(Campaign.objects.all()))

        self.assertTrue(
            Campaign.objects.filter(
                campaignname='test_t003_campaign0').exists())
        self.assertTrue(
            Campaign.objects.filter(
                campaignname='test_t003_campaign1').exists())
        self.assertTrue(
            Campaign.objects.filter(
                campaignname='test_t003_campaign2').exists())

        # removes the campaigns from aw
        Campaign.removecampaign(client, campaign0id)
        Campaign.removecampaign(client, campaign1id)
        Campaign.removecampaign(client, campaign2id)

        # sync with django db
        Campaign.sync(client)

        # test if the django campaign set is equal to the aw campaign set after deletions
        self.assertEqual(len(beginningcampaigns), len(Campaign.objects.all()))
        self.assertEqual(len(beginningawcampaignslst),
                         len(Campaign.objects.all()))

        self.assertFalse(
            Campaign.objects.filter(
                campaignname='test_t003_campaign0').exists())
        self.assertFalse(
            Campaign.objects.filter(
                campaignname='test_t003_campaign1').exists())
        self.assertFalse(
            Campaign.objects.filter(
                campaignname='test_t003_campaign2').exists())

        Budget.removenorefbudgets(client)