def _post_json_data(url, data): th_collection = data[jm.project] OAuthCredentials.set_credentials( SampleData.get_credentials() ) credentials = OAuthCredentials.get_credentials(jm.project) tr = TreeherderRequest( protocol='http', host='localhost', project=jm.project, oauth_key=credentials['consumer_key'], oauth_secret=credentials['consumer_secret'] ) signed_uri = tr.oauth_client.get_signed_uri( th_collection.to_json(), tr.get_uri(th_collection.endpoint_base), "POST" ) response = TestApp(application).post_json( str(signed_uri), params=th_collection.get_collection_data() ) response.getcode = lambda: response.status_int return response
def post_collection( project, th_collection, status=None, expect_errors=False, consumer_key=None, consumer_secret=None): # Set the credentials OAuthCredentials.set_credentials( SampleData.get_credentials() ) credentials = OAuthCredentials.get_credentials(project) # The only time the credentials should be overridden are when # a client needs to test authentication failure confirmation if consumer_key: credentials['consumer_key'] = consumer_key if consumer_secret: credentials['consumer_secret'] = consumer_secret tr = TreeherderRequest( protocol='http', host='localhost', project=project, oauth_key=credentials['consumer_key'], oauth_secret=credentials['consumer_secret'] ) signed_uri = tr.get_signed_uri( th_collection.to_json(), tr.get_uri(th_collection) ) response = TestApp(application).post_json( str(signed_uri), params=th_collection.get_collection_data(), status=status ) return response
def load(self, th_collections): errors = [] for project in th_collections: credentials = OAuthCredentials.get_credentials(project) th_request = TreeherderRequest( protocol=settings.TREEHERDER_REQUEST_PROTOCOL, host=settings.TREEHERDER_REQUEST_HOST, project=project, oauth_key=credentials.get('consumer_key', None), oauth_secret=credentials.get('consumer_secret', None) ) logger.info( "collection loading request: {0}".format( th_request.get_uri(th_collections[project].endpoint_base))) response = th_request.post(th_collections[project]) if not response or response.status != 200: errors.append({ "project": project, "url": th_collections[project].endpoint_base, "message": response.read() }) if errors: raise CollectionNotLoadedException(errors)
def test_send_without_oauth( self, mock_HTTPConnection, mock_time, mock_generate_nonce): """Can send data to the server.""" mock_time.return_value = 1342229050 mock_generate_nonce.return_value = "46810593" host = 'host' req = TreeherderRequest( protocol='http', host=host, project='project', oauth_key=None, oauth_secret=None, ) mock_conn = mock_HTTPConnection.return_value mock_request = mock_conn.request mock_response = mock_conn.getresponse.return_value tjc = TreeherderJobCollection() for job in self.job_data: tjc.add( tjc.get_job(job) ) break response = req.post(tjc) self.assertEqual(mock_HTTPConnection.call_count, 1) self.assertEqual(mock_HTTPConnection.call_args[0][0], host) self.assertEqual(mock_response, response) self.assertEqual(mock_request.call_count, 1) uri = req.get_uri(tjc) method, path, data, header = mock_request.call_args[0] self.assertEqual(method, "POST") deserialized_data = json.loads(data) self.assertEqual( deserialized_data, tjc.get_collection_data() ) self.assertEqual( header['Content-Type'], 'application/json', )
def test_send_without_oauth(self, mock_HTTPConnection, mock_time, mock_generate_nonce): """Can send data to the server.""" mock_time.return_value = 1342229050 mock_generate_nonce.return_value = "46810593" host = 'host' req = TreeherderRequest( protocol='http', host=host, project='project', oauth_key=None, oauth_secret=None, ) mock_conn = mock_HTTPConnection.return_value mock_request = mock_conn.request mock_response = mock_conn.getresponse.return_value tjc = TreeherderJobCollection() for job in self.job_data: tjc.add(tjc.get_job(job)) break response = req.post(tjc) self.assertEqual(mock_HTTPConnection.call_count, 1) self.assertEqual(mock_HTTPConnection.call_args[0][0], host) self.assertEqual(mock_response, response) self.assertEqual(mock_request.call_count, 1) uri = req.get_uri(tjc) method, path, data, header = mock_request.call_args[0] self.assertEqual(method, "POST") deserialized_data = json.loads(data) self.assertEqual(deserialized_data, tjc.get_collection_data()) self.assertEqual( header['Content-Type'], 'application/json', )
def load(self, th_collections): for project in th_collections: credentials = OAuthCredentials.get_credentials(project) th_request = TreeherderRequest( protocol=settings.TREEHERDER_REQUEST_PROTOCOL, host=settings.TREEHERDER_REQUEST_HOST, project=project, oauth_key=credentials.get('consumer_key', None), oauth_secret=credentials.get('consumer_secret', None) ) logger.info("collection loading request: {0}".format(th_request.get_uri(th_collections[project].endpoint_base))) response = th_request.post(th_collections[project]) if not response or response.status != 200: message = response.read() raise Exception('collection loading failed: {0}'.format(message))
def load(self, th_collections): for project in th_collections: credentials = OAuthCredentials.get_credentials(project) th_request = TreeherderRequest( protocol=settings.TREEHERDER_REQUEST_PROTOCOL, host=settings.TREEHERDER_REQUEST_HOST, project=project, oauth_key=credentials.get('consumer_key', None), oauth_secret=credentials.get('consumer_secret', None) ) logger.info( "collection loading request: {0}".format( th_request.get_uri(th_collections[project].endpoint_base))) response = th_request.post(th_collections[project]) if not response or response.status != 200: message = response.read() logger.error('[{0}]Error posting data to {1} : {2}'.format( project, th_collections[project].endpoint_base, message))
def post_collection(project, th_collection, status=None, expect_errors=False, consumer_key=None, consumer_secret=None): # Set the credentials OAuthCredentials.set_credentials(SampleData.get_credentials()) credentials = OAuthCredentials.get_credentials(project) # The only time the credentials should be overridden are when # a client needs to test authentication failure confirmation if consumer_key: credentials['consumer_key'] = consumer_key if consumer_secret: credentials['consumer_secret'] = consumer_secret tr = TreeherderRequest(protocol='http', host='localhost', project=project, oauth_key=credentials['consumer_key'], oauth_secret=credentials['consumer_secret']) signed_uri = tr.oauth_client.get_signed_uri( th_collection.to_json(), tr.get_uri(th_collection.endpoint_base), 'POST') response = TestApp(application).post_json( str(signed_uri), params=th_collection.get_collection_data(), status=status) return response