def update_line_items(self, line_items): """ Update multiple Line Item for a provider @param line_items: L{parselmouth.delivery.LineItem} """ # Convert line items into native format for the dfp client to use native_line_items = [ transform_line_item_to_dfp(line_item) for line_item in line_items ] self.dfp_client.update_line_items(native_line_items)
def update_line_items(self, line_items): """ Update multiple Line Item for a provider @param line_items: L{parselmouth.delivery.LineItem} """ # Convert line items into native format for the dfp client to use native_line_items = [ transform_line_item_to_dfp(line_item) for line_item in line_items ] self.dfp_client.update_line_items(native_line_items)
def test_line_item_utils(self): dfp_line_item = { "budget": {"currencyCode": "USD", "microAmount": "0"}, "costPerUnit": {"currencyCode": "USD", "microAmount": "0"}, "costType": "CPM", "creativePlaceholders": [ { "creativeSizeType": "PIXEL", "expectedCreativeCount": "1", "size": {"height": "768", "isAspectRatio": False, "width": "1024"}, } ], "deliveryRateType": "FRONTLOADED", "endDateTime": { "date": {"day": 31, "month": 5, "year": 2014}, "hour": 23, "minute": 59, "second": 0, "timeZoneID": "America/New_York", }, "id": "line_item_id", "lastModifiedByApp": None, "lastModifiedDateTime": { "date": {"day": 23, "month": 4, "year": 2014}, "hour": 15, "minute": 50, "second": 0, "timeZoneID": "America/New_York", }, "lineItemType": "STANDARD", "name": "line_item_name", "orderId": "campaign_id", "orderName": "campaign_name", "primaryGoal": {"goalType": "LIFETIME", "unitType": "IMPRESSIONS", "units": u"1000000"}, "startDateTime": { "date": {"day": 23, "month": 4, "year": 2014}, "hour": 15, "minute": 50, "second": 0, "timeZoneID": "America/New_York", }, "stats": { "clicksDelivered": 0, "impressionsDelivered": 0, "videoCompletionsDelivered": 0, "videoStartsDelivered": 0, }, "targetPlatform": "ANY", "targeting": { "inventoryTargeting": {"targetedAdUnits": [{"adUnitId": "adunit", "includeDescendants": True}]} }, "valueCostPerUnit": {"currencyCode": "USD", "microAmount": "0"}, "status": "DRAFT", } # Check transform_line_item_to_dfp self.assertDictEqual(dfp_line_item, transform_line_item_to_dfp(TEST_LINE_ITEM)) # Check transform_line_item_from_dfp self.assertEqual(TEST_LINE_ITEM, transform_line_item_from_dfp(dfp_line_item)) # Check inversion of dfp line_item self.assertDictEqual(dfp_line_item, transform_line_item_to_dfp(transform_line_item_from_dfp(dfp_line_item))) # Check inversion of native line_item self.assertEqual(TEST_LINE_ITEM, transform_line_item_from_dfp(transform_line_item_to_dfp(TEST_LINE_ITEM)))
def test_line_item_utils(self): dfp_line_item = { 'budget': { 'currencyCode': 'USD', 'microAmount': '0', }, 'costPerUnit': { 'currencyCode': 'USD', 'microAmount': '0', }, 'costType': 'CPM', 'creativePlaceholders': [{ 'creativeSizeType': 'PIXEL', 'expectedCreativeCount': '1', 'size': { 'height': '768', 'isAspectRatio': False, 'width': '1024', }, }], 'deliveryRateType': 'FRONTLOADED', 'endDateTime': { 'date': { 'day': 31, 'month': 5, 'year': 2014, }, 'hour': 23, 'minute': 59, 'second': 0, 'timeZoneID': 'America/New_York', }, 'id': 'line_item_id', 'lastModifiedByApp': None, 'lastModifiedDateTime': { 'date': { 'day': 23, 'month': 4, 'year': 2014, }, 'hour': 15, 'minute': 50, 'second': 0, 'timeZoneID': 'America/New_York', }, 'lineItemType': 'STANDARD', 'name': 'line_item_name', 'orderId': 'campaign_id', 'orderName': 'campaign_name', 'primaryGoal': { 'goalType': 'LIFETIME', 'unitType': 'IMPRESSIONS', 'units': u'1000000', }, 'startDateTime': { 'date': { 'day': 23, 'month': 4, 'year': 2014, }, 'hour': 15, 'minute': 50, 'second': 0, 'timeZoneID': 'America/New_York', }, 'stats': { 'clicksDelivered': 0, 'impressionsDelivered': 0, 'videoCompletionsDelivered': 0, 'videoStartsDelivered': 0, }, 'targetPlatform': 'ANY', 'targeting': { 'inventoryTargeting': { 'targetedAdUnits': [{ 'adUnitId': 'adunit', 'includeDescendants': True, }], }, }, 'valueCostPerUnit': { 'currencyCode': 'USD', 'microAmount': '0', }, 'status': 'DRAFT', } # Check transform_line_item_to_dfp self.assertDictEqual( dfp_line_item, transform_line_item_to_dfp(TEST_LINE_ITEM), ) # Check transform_line_item_from_dfp self.assertEqual( TEST_LINE_ITEM, transform_line_item_from_dfp(dfp_line_item), ) # Check inversion of dfp line_item self.assertDictEqual( dfp_line_item, transform_line_item_to_dfp( transform_line_item_from_dfp(dfp_line_item)), ) # Check inversion of native line_item self.assertEqual( TEST_LINE_ITEM, transform_line_item_from_dfp( transform_line_item_to_dfp(TEST_LINE_ITEM)), )