3535
3636PYTHON2 = sys .version_info [0 ] == 2
3737URL_REQUEST_PATH = ('urllib2' if PYTHON2 else 'urllib.request' )
38+ CURRENT_VERSION = sorted (googleads .adwords ._SERVICE_MAP .keys ())[- 1 ]
3839
3940
4041class AdWordsHeaderHandlerTest (unittest .TestCase ):
4142 """Tests for the googleads.adwords._AdWordsHeaderHandler class."""
4243
4344 def setUp (self ):
4445 self .adwords_client = mock .Mock ()
46+ self .header_handler_v201402 = googleads .adwords ._AdWordsHeaderHandler (
47+ self .adwords_client , 'v201402' )
4548 self .header_handler = googleads .adwords ._AdWordsHeaderHandler (
46- self .adwords_client , 'v12345' )
49+ self .adwords_client , CURRENT_VERSION )
4750
4851 def testSetHeaders (self ):
4952 suds_client = mock .Mock ()
@@ -65,7 +68,8 @@ def testSetHeaders(self):
6568
6669 # Check that the SOAP header has the correct values.
6770 suds_client .factory .create .assert_called_once_with (
68- '{https://adwords.google.com/api/adwords/cm/v12345}SoapHeader' )
71+ '{https://adwords.google.com/api/adwords/cm/%s}SoapHeader' %
72+ CURRENT_VERSION )
6973 soap_header = suds_client .factory .create .return_value
7074 self .assertEqual (ccid , soap_header .clientCustomerId )
7175 self .assertEqual (dev_token , soap_header .developerToken )
@@ -79,7 +83,7 @@ def testSetHeaders(self):
7983 suds_client .set_options .assert_any_call (
8084 soapheaders = soap_header , headers = oauth_header )
8185
82- def testGetReportDownloadHeaders (self ):
86+ def testGetReportDownloadHeaders_v201402 (self ):
8387 ccid = 'client customer id'
8488 dev_token = 'developer token'
8589 user_agent = 'user agent!'
@@ -103,14 +107,15 @@ def testGetReportDownloadHeaders(self):
103107 # Check that returnMoneyInMicros works when set to true.
104108 expected_return_value ['returnMoneyInMicros' ] = 'True'
105109 self .assertEqual (expected_return_value ,
106- self .header_handler .GetReportDownloadHeaders (True ))
110+ self .header_handler_v201402 .GetReportDownloadHeaders (True ))
107111
108112 # Check that returnMoneyInMicros works when set to false.
109113 expected_return_value ['returnMoneyInMicros' ] = 'False'
110114 self .adwords_client .oauth2_client .CreateHttpHeader .return_value = dict (
111115 oauth_header )
112116 self .assertEqual (expected_return_value ,
113- self .header_handler .GetReportDownloadHeaders (False ))
117+ self .header_handler_v201402 .GetReportDownloadHeaders (False )
118+ )
114119
115120 # Default returnMoneyInMicros value is not included in the headers.
116121 del expected_return_value ['returnMoneyInMicros' ]
@@ -119,6 +124,40 @@ def testGetReportDownloadHeaders(self):
119124 self .assertEqual (expected_return_value ,
120125 self .header_handler .GetReportDownloadHeaders ())
121126
127+ def testGetReportDownloadHeaders_v201406 (self ):
128+ ccid = 'client customer id'
129+ dev_token = 'developer token'
130+ user_agent = 'user agent!'
131+ oauth_header = {'Authorization' : 'header' }
132+ self .adwords_client .client_customer_id = ccid
133+ self .adwords_client .developer_token = dev_token
134+ self .adwords_client .user_agent = user_agent
135+ self .adwords_client .oauth2_client .CreateHttpHeader .return_value = dict (
136+ oauth_header )
137+ expected_return_value = {
138+ 'Content-type' : 'application/x-www-form-urlencoded' ,
139+ 'developerToken' : dev_token ,
140+ 'clientCustomerId' : ccid ,
141+ 'Authorization' : 'header' ,
142+ 'User-Agent' : '' .join ([
143+ user_agent , googleads .adwords ._AdWordsHeaderHandler ._LIB_SIG ,
144+ ',gzip' ])
145+ }
146+
147+ # Check that returnMoneyInMicros fails when set to true.
148+ self .assertRaises (googleads .errors .GoogleAdsValueError ,
149+ self .header_handler .GetReportDownloadHeaders , True )
150+
151+ # Check that returnMoneyInMicros fails when set to false.
152+ self .assertRaises (googleads .errors .GoogleAdsValueError ,
153+ self .header_handler .GetReportDownloadHeaders , False )
154+
155+ # Check that it works when returnMoneyInMicros not set.
156+ self .adwords_client .oauth2_client .CreateHttpHeader .return_value = dict (
157+ oauth_header )
158+ self .assertEqual (expected_return_value ,
159+ self .header_handler .GetReportDownloadHeaders ())
160+
122161
123162class AdWordsClientTest (unittest .TestCase ):
124163 """Tests for the googleads.adwords.AdWordsClient class."""
@@ -144,7 +183,7 @@ def testLoadFromStorage(self):
144183 googleads .adwords .AdWordsClient )
145184
146185 def testGetService_success (self ):
147- version = googleads . adwords . _SERVICE_MAP . keys ()[ 0 ]
186+ version = CURRENT_VERSION
148187 service = googleads .adwords ._SERVICE_MAP [version ].keys ()[0 ]
149188 namespace = googleads .adwords ._SERVICE_MAP [version ][service ]
150189
@@ -172,7 +211,7 @@ def testGetService_success(self):
172211 self .assertIsInstance (suds_service , googleads .common .SudsServiceProxy )
173212
174213 def testGetService_badService (self ):
175- version = googleads . adwords . _SERVICE_MAP . keys ()[ 0 ]
214+ version = CURRENT_VERSION
176215 self .assertRaises (
177216 googleads .errors .GoogleAdsValueError , self .adwords_client .GetService ,
178217 'GYIVyievfyiovslf' , version )
@@ -195,7 +234,7 @@ class ReportDownloaderTest(unittest.TestCase):
195234 """Tests for the googleads.adwords.ReportDownloader class."""
196235
197236 def setUp (self ):
198- self .version = googleads . adwords . _SERVICE_MAP . keys ()[ - 1 ]
237+ self .version = CURRENT_VERSION
199238 self .marshaller = mock .Mock ()
200239 self .header_handler = mock .Mock ()
201240 self .adwords_client = mock .Mock ()
0 commit comments