コード例 #1
0
ファイル: test_base.py プロジェクト: zavod/admitad-python-api
    def test_sanitize_float_value(self):
        self.assertEqual(Item.sanitize_float_value(1, '', False), 1)
        self.assertEqual(Item.sanitize_float_value(0, '', False), 0)
        self.assertEqual(Item.sanitize_float_value('12', '', False), '12')
        self.assertEqual(Item.sanitize_float_value('3.14', '', False), '3.14')
        self.assertEqual(Item.sanitize_float_value(3.14, '', False), 3.14)
        self.assertEqual(Item.sanitize_float_value(None, '', True), None)

        with self.assertRaises(ValueError):
            Item.sanitize_float_value(None, '', False)
            Item.sanitize_float_value('foo', '', False)
コード例 #2
0
class LostOrdersManager(Item):

    SCOPE = 'manage_lost_orders'

    DELETE_URL = Item.prepare_url('lost_orders/%(lost_order_id)s/decline')
    CREATE_URL = Item.prepare_url('lost_orders/create')
    UPDATE_URL = Item.prepare_url('lost_orders/%(lost_order_id)s/update')

    CREATE_FIELDS = {
        'campaign': lambda x: Item.sanitize_integer_value(x, 'campaign'),
        'website': lambda x: Item.sanitize_integer_value(x, 'website'),
        'order_id': lambda x: Item.sanitize_string_value(x, 'order_id'),
        'order_date': lambda x: Item.sanitize_date(x, 'order_date'),
        'order_price': lambda x: Item.sanitize_float_value(x, 'order_price'),
        'comment': lambda x: Item.sanitize_string_value(x, 'comment'),
        'appeal_id': lambda x: Item.sanitize_string_value(x, 'appeal_id'),
    }

    def delete(self, lost_order_id):
        """
        Args:
            lost_order_id (int)

        """
        request_data = {
            'url': self.DELETE_URL,
            'lost_order_id': Item.sanitize_id(lost_order_id),
        }

        return self.transport.delete().request(**request_data)

    def create(self, attachments, **kwargs):
        """
        Args:
            attachments (list of str)
            campaign (int)
            website (int)
            order_id (str)
            order_date (date)
            order_price (float)
            appeal_id (str)
            comment (str)

        """
        data = Item.sanitize_fields(self.CREATE_FIELDS, **kwargs)
        files = [('attachment', open(item, 'rb')) for item in Item.sanitize_string_array(attachments, 'attachments')]

        return self.transport.post().set_data(data).set_files(files).request(url=self.CREATE_URL)

    def update(self, lost_order_id, appeal_status):
        """
        Args:
            lost_order_id (int)
            appeal_status (str)

        """
        request_data = {
            'url': self.UPDATE_URL,
            'lost_order_id': Item.sanitize_id(lost_order_id),
        }

        data = {
            'appeal_status': self.sanitize_string_value(appeal_status, 'appeal_status'),
        }

        return self.transport.put().set_data(data).request(**request_data)