예제 #1
0
    def setUpClass(self):
        client = adwords.AdWordsClient.LoadFromStorage()

        # keep a list of starting campaigns
        self.startingcampaigns = Campaign.listcampaigns(client)

        # create a list of starting campaign ids
        for campaign in self.startingcampaigns:
            self.startingcampaignsids.append(campaign['id'])

        # keep track of the len of the starting campaigns list in aw
        self.n_non_test_campaigns_aw = len(self.startingcampaigns)

        # keep track of the len of the starting campaigns list in django
        Campaign.sync(client)
        self.n_non_test_campaigns_db = len(Campaign.objects.all())

        # budgets section

        # keep a list of starting budgets
        self.startingbudgets = Budget.listbudgets(client)

        # create a list of starting budget ids
        for budget in self.startingbudgets:
            self.startingbudgetsids.append(budget['budgetId'])

        # keep track of the len of the starting budgets list in aw
        self.n_non_test_budgets_aw = len(self.startingbudgets)

        # keep track of the len of the starting budgets list in django
        Budget.sync(client)
        self.n_non_test_budgets_db = len(Budget.objects.all())
예제 #2
0
    def test_t005_wad_Budget_create_remove_sync(self):

        print('wad_Budget test t005')

        client = adwords.AdWordsClient.LoadFromStorage()

        # create the budgets in aw and django
        newbudget0 = Budget(budgetname='test005_budget0name0')
        newbudget1 = Budget(budgetname='test005_budget1name1')
        newbudget2 = Budget(budgetname='test005_budget2name2')

        newbudget0.save()
        newbudget1.save()
        newbudget2.save()

        # remove the budgets from aw
        Budget._aw_removebudget(client, newbudget0.budgetid)
        Budget._aw_removebudget(client, newbudget1.budgetid)
        Budget._aw_removebudget(client, newbudget2.budgetid)

        #Budget.removebudget ( client, newbudget0.budgetid )
        #Budget.removebudget ( client, newbudget1.budgetid )
        #Budget.removebudget ( client, newbudget2.budgetid )

        # sync with django db
        Budget.sync(client)

        return
예제 #3
0
    def test_t001_wad_Budget_sync_add_remove_usingaddremove(self):

        print('wad_Budget test t001')

        client = adwords.AdWordsClient.LoadFromStorage()

        # sync with django db
        Budget.sync(client)

        # beginning django budgets queryset
        beginningbudgets = Budget.objects.all()

        # beginning awbudgetslst
        beginningawbudgetslst = Budget.listbudgets(client)

        # assert that the django budget set and aw budgetset correspond
        self.assertEqual(len(beginningbudgets), len(beginningawbudgetslst))

        # create three new budgets in aw
        budget0id = Budget.addbudget(client, 'test_t001_budget0',
                                     7000000000).budgetid
        budget1id = Budget.addbudget(client, 'test_t001_budget1',
                                     7000000000).budgetid
        budget2id = Budget.addbudget(client, 'test_t001_budget2',
                                     7000000000).budgetid

        # sync with django db
        ###Budget.sync ( client )

        # test if the new budgets added to aw are in the Django system
        self.assertEqual(len(beginningbudgets) + 3, len(Budget.objects.all()))
        self.assertEqual(
            len(beginningawbudgetslst) + 3, len(Budget.objects.all()))

        self.assertTrue(
            Budget.objects.filter(budgetname='test_t001_budget0').exists())
        self.assertTrue(
            Budget.objects.filter(budgetname='test_t001_budget1').exists())
        self.assertTrue(
            Budget.objects.filter(budgetname='test_t001_budget2').exists())

        # removes the budgets from aw
        Budget.removebudget(client, budget0id)
        Budget.removebudget(client, budget1id)
        Budget.removebudget(client, budget2id)

        # sync with django db
        ###Budget.sync ( client )

        # test if the django budget set is equal to the aw budget set after deletions
        self.assertEqual(len(beginningbudgets), len(Budget.objects.all()))
        self.assertEqual(len(beginningawbudgetslst), len(Budget.objects.all()))

        self.assertFalse(
            Budget.objects.filter(budgetname='test_t001_budget0').exists())
        self.assertFalse(
            Budget.objects.filter(budgetname='test_t001_budget1').exists())
        self.assertFalse(
            Budget.objects.filter(budgetname='test_t001_budget2').exists())
예제 #4
0
    def test_t004_wad_Budget_sync_modify(self):

        print('wad_Budget test t004')

        client = adwords.AdWordsClient.LoadFromStorage()

        # add 3 budgets to aw only
        budget0 = Budget._aw_addbudget(client, 'test_t004_budget0', 7000000000)
        budget1 = Budget._aw_addbudget(client, 'test_t004_budget1', 7000000000)
        budget2 = Budget._aw_addbudget(client, 'test_t004_budget2', 7000000000)

        # initial sync
        Budget.sync(client)

        # control will be used to check if the values return to original after modifications
        beginningbudgets_control = Budget.objects.all()
        # queryset used to modify values
        beginningbudgets = Budget.objects.all()

        # make sure we are working with querysets that aren't empty, should be at least 3
        self.assertTrue(len(beginningbudgets) >= 3)
        self.assertTrue(len(beginningbudgets_control) >= 3)

        # change values in the django database
        for budget in beginningbudgets:

            budget.budgetstatus = Budget.STATE_TESTING
            budget.budgetname = budget.budgetname + '_testing'
            budget.budgetamount = budget.budgetamount + 10000000

            budget.save(sync_aw=False)

        # sync
        Budget.sync(client)

        # queryset used to test if values revert to original values
        postmodifybudgets = Budget.objects.all()

        # make sure we are working with querysets that aren't empty, should be at least 3 b/c of SetUp
        self.assertTrue(len(postmodifybudgets) >= 3)

        # iterate budgets in database to check if values returned to original
        for budget in postmodifybudgets:

            controlbudget = beginningbudgets_control.get(id=budget.id)

            self.assertEqual(controlbudget.budgetstatus, budget.budgetstatus)
            self.assertEqual(controlbudget.budgetname, budget.budgetname)
            self.assertEqual(controlbudget.budgetamount, budget.budgetamount)

        # remove the budgets we initially created
        Budget.removebudget(client, budget0['budgetId'])
        Budget.removebudget(client, budget1['budgetId'])
        Budget.removebudget(client, budget2['budgetId'])
예제 #5
0
 def handle ( self, *args, **options ):
       
   client = adwords.AdWordsClient.LoadFromStorage()
   
   syncobjs = Budget.sync ( client )
   
   print ( 'modified: %s' % syncobjs.rmodified )
   print ( 'added: %s' % syncobjs.radded )
   print ( 'removed: %s' % syncobjs.rremoved )
     
   print ( 'Budget sync complete. Synced %s budgets.' % 
           len ( Budget.objects.all() ) )
           
   
     
     
     
     
     
     
예제 #6
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)