Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)),
        )