def get_creatives(self, order=DFP_QUERY_DEFAULTS['order'], limit=None, offset=DFP_QUERY_DEFAULTS['offset'], **filter_kwargs): """ Get creatives on optional filters @param order: str, PQL key to sort on (default=ID) @param limit: int, number of PQL results to return @param offset: int, page in a stream of PQL results to return @param filter_kwargs: dict, keyword arguments on which to filter PQL results @return: L{parselmouth.delivery.LineItem} """ # Fetch the SUDS object and convert to a proper dictionary dfp_creatives = self.dfp_client.get_creatives(order=order, limit=limit, offset=offset, **filter_kwargs) results = self._convert_response_to_dict(dfp_creatives) creatives = [] for creative in results: creatives.append(transform_creative_from_dfp(creative)) return creatives
def get_creatives(self, order=DFP_QUERY_DEFAULTS['order'], limit=None, offset=DFP_QUERY_DEFAULTS['offset'], **filter_kwargs): """ Get creatives on optional filters @param order: str, PQL key to sort on (default=ID) @param limit: int, number of PQL results to return @param offset: int, page in a stream of PQL results to return @param filter_kwargs: dict, keyword arguments on which to filter PQL results @return: L{parselmouth.delivery.LineItem} """ # Fetch the SUDS object and convert to a proper dictionary dfp_creatives = self.dfp_client.get_creatives( order=order, limit=limit, offset=offset, **filter_kwargs ) results = self._convert_response_to_dict(dfp_creatives) creatives = [] for creative in results: creatives.append( transform_creative_from_dfp(creative) ) return creatives
def test_creative_utils(self): creative = Creative( advertiser_id="ad_id", id="creative_id", name="creative_name", size={"height": "250", "isAspectRatio": False, "width": "300"}, preview_url="image.com", last_modified=datetime(2015, 3, 3, 15, 57, tzinfo=timezone("America/New_York")), ) dfp_creative = { "id": "creative_id", "advertiserId": "ad_id", "name": "creative_name", "previewUrl": "image.com", "size": {"height": "250", "isAspectRatio": False, "width": "300"}, "lastModifiedDateTime": { "date": {"day": 3, "month": 3, "year": 2015}, "hour": 15, "minute": 57, "second": 0, "timeZoneID": "America/New_York", }, } # Check transform_creative_to_dfp self.assertDictEqual(dfp_creative, transform_creative_to_dfp(creative)) # Check transform_creative_from_dfp self.assertEqual(creative, transform_creative_from_dfp(dfp_creative)) # Check inversion of dfp creative self.assertDictEqual(dfp_creative, transform_creative_to_dfp(transform_creative_from_dfp(dfp_creative))) # Check inversion of native creative self.assertEqual(creative, transform_creative_from_dfp(transform_creative_to_dfp(creative)))
def get_creative(self, creative_id): """ Return a creative object given an id @param creative_id: str, id of the campaign to return @return: parselmouth.delivery.Creative """ dfp_creative = self.dfp_client.get_creative(creative_id) creatives = self._convert_response_to_dict(dfp_creative) if len(creatives) == 0: raise ParselmouthException( "No results for creative with id: {0}".format(creative_id)) elif len(creatives) > 1: raise ParselmouthException( "More than one result for creative with id: {0}".format( creative_id)) return transform_creative_from_dfp(creatives[0])
def get_creative(self, creative_id): """ Return a creative object given an id @param creative_id: str, id of the campaign to return @return: parselmouth.delivery.Creative """ dfp_creative = self.dfp_client.get_creative(creative_id) creatives = self._convert_response_to_dict(dfp_creative) if len(creatives) == 0: raise ParselmouthException( "No results for creative with id: {0}".format(creative_id) ) elif len(creatives) > 1: raise ParselmouthException( "More than one result for creative with id: {0}".format( creative_id ) ) return transform_creative_from_dfp(creatives[0])
def test_creative_utils(self): creative = Creative( advertiser_id='ad_id', id='creative_id', name='creative_name', size={ 'height': '250', 'isAspectRatio': False, 'width': '300', }, preview_url='image.com', last_modified=datetime(2015, 3, 3, 15, 57, tzinfo=timezone('America/New_York')), ) dfp_creative = { 'id': 'creative_id', 'advertiserId': 'ad_id', 'name': 'creative_name', 'previewUrl': 'image.com', 'size': { 'height': '250', 'isAspectRatio': False, 'width': '300', }, 'lastModifiedDateTime': { 'date': { 'day': 3, 'month': 3, 'year': 2015, }, 'hour': 15, 'minute': 57, 'second': 0, 'timeZoneID': 'America/New_York', }, } # Check transform_creative_to_dfp self.assertDictEqual( dfp_creative, transform_creative_to_dfp(creative), ) # Check transform_creative_from_dfp self.assertEqual( creative, transform_creative_from_dfp(dfp_creative), ) # Check inversion of dfp creative self.assertDictEqual( dfp_creative, transform_creative_to_dfp( transform_creative_from_dfp(dfp_creative)), ) # Check inversion of native creative self.assertEqual( creative, transform_creative_from_dfp(transform_creative_to_dfp(creative)), )