Added new functions to Twitter Ads API, together with integration tests for them.

This commit is contained in:
Marko Novak 2015-10-27 14:47:11 +01:00 committed by markonovak
parent 3219026432
commit 4b83630850
3 changed files with 70 additions and 11 deletions

View file

@ -13,6 +13,14 @@ from twython.api_ads import TwythonAds
class TwythonEndpointsTestCase(unittest.TestCase):
TEST_CAMPAIGN = {
'name': 'Test Twitter campaign - Twython',
'funding_instrument_id': test_funding_instrument_id,
'start_time': datetime.datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ'),
'daily_budget_amount_local_micro': 10 * 1000000,
'paused': True
}
def setUp(self):
client_args = {
@ -45,6 +53,10 @@ class TwythonEndpointsTestCase(unittest.TestCase):
with self.assertRaises(TwythonError):
self.api.get_account('1234')
def test_get_account_features(self):
account_features = self.api.get_account_features(test_account_id)
self.assertTrue(len(account_features) > 0)
def test_get_funding_instruments(self):
funding_instruments = self.api.get_funding_instruments(test_account_id)
self.assertTrue(len(funding_instruments) > 0)
@ -56,17 +68,38 @@ class TwythonEndpointsTestCase(unittest.TestCase):
with self.assertRaises(TwythonError):
self.api.get_funding_instrument('1234', '1234')
def test_get_iab_categories(self):
iab_categories = self.api.get_iab_categories()
self.assertTrue(len(iab_categories) > 0)
def test_get_campaigns(self):
campaigns = self.api.get_campaigns(test_account_id)
self.assertTrue(len(campaigns) > 0)
def test_create_campaign(self):
new_campaign = {
'name': 'Test Twitter campaign - Twython',
'funding_instrument_id': test_funding_instrument_id,
'start_time': datetime.datetime.now().strftime('%Y-%m-%dT%H:%M:%SZ'),
'daily_budget_amount_local_micro': 10 * 1000000
}
campaign = self.api.create_campaign(test_account_id, **new_campaign)
def test_create_and_delete_campaign(self):
campaign = self.api.create_campaign(test_account_id, **self.TEST_CAMPAIGN)
campaign_id = campaign['id']
self.assertEqual(campaign['account_id'], test_account_id)
self.assertIsNotNone(campaign['id'])
self.assertIsNotNone(campaign_id)
campaign_check = self.api.get_campaign(test_account_id, campaign_id)
self.assertEqual(campaign_check['id'], campaign_id)
is_deleted = self.api.delete_campaign(test_account_id, campaign_id)
self.assertTrue(is_deleted)
def test_create_line_item(self):
campaign = self.api.create_campaign(test_account_id, **self.TEST_CAMPAIGN)
campaign_id = campaign['id']
self.assertEqual(campaign['account_id'], test_account_id)
website_clicks_line_item = {
'bid_type': 'MAX',
'bid_amount_local_micro': 2000000,
'product_type': 'PROMOTED_TWEETS',
'placements': 'ALL_ON_TWITTER',
'objective': 'WEBSITE_CLICKS',
'paused': True
}
response = self.api.create_line_item(test_account_id, campaign_id, **website_clicks_line_item)
self.assertEqual(response['account_id'], test_account_id)
self.assertEqual(response['campaign_id'], campaign_id)
campaign_check = self.api.get_campaign(test_account_id, campaign_id)
self.assertTrue(True)