1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/sale_amazon/tests/common.py
2024-12-10 09:04:09 +07:00

118 lines
4.1 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from unittest.mock import patch
from odoo.tests import TransactionCase
ORDER_BUYER_INFO_MOCK = {
'BuyerEmail': 'iliketurtles@marketplace.amazon.com',
'BuyerName': 'Gederic Frilson',
}
ORDER_ADDRESS_MOCK = {
'AddressLine1': '123 RainBowMan Street',
'Phone': '+1 234-567-8910 ext. 12345',
'PostalCode': '12345-1234',
'City': 'New Duck City DC',
'StateOrRegion': 'CA',
'CountryCode': 'US',
'Name': 'Gederic Frilson',
'AddressType': 'Commercial',
}
ORDER_MOCK = {
'BuyerInfo': ORDER_BUYER_INFO_MOCK,
'AmazonOrderId': '123456789',
'PurchaseDate': '1378-04-08T00:00:00Z',
'LastUpdateDate': '2017-01-20T00:00:00Z',
'OrderStatus': 'Unshipped',
'FulfillmentChannel': 'MFN',
'ShipServiceLevel': 'SHIPPING-CODE',
'OrderTotal': {'CurrencyCode': 'USD', 'Amount': '120.00'},
'MarketplaceId': 'ATVPDKIKX0DER',
'ShippingAddress': ORDER_ADDRESS_MOCK,
}
GET_ORDERS_RESPONSE_MOCK = {
'payload': {
'LastUpdatedBefore': '2020-01-01T00:00:00Z',
'Orders': [ORDER_MOCK],
},
}
GET_ORDER_ITEMS_MOCK = {
'payload': {
'AmazonOrderId': '123456789',
'OrderItems': [
{
'BuyerInfo': {
'OrderItemId': '987654321',
'GiftMessageText': 'Wrapped Hello',
'GiftWrapLevel': 'WRAP-CODE',
'GiftWrapTax': {'CurrencyCode': 'USD', 'Amount': '1.33'},
'GiftWrapPrice': {'CurrencyCode': 'USD', 'Amount': '3.33'},
},
'ItemTax': {'CurrencyCode': 'USD', 'Amount': '20.00'},
'ItemPrice': {'CurrencyCode': 'USD', 'Amount': '100.00'},
'ShippingTax': {'CurrencyCode': 'USD', 'Amount': '2.50'},
'ShippingPrice': {'CurrencyCode': 'USD', 'Amount': '12.50'},
'ShippingDiscountTax': {'CurrencyCode': 'USD', 'Amount': '0.50'},
'ShippingDiscount': {'CurrencyCode': 'USD', 'Amount': '2.50'},
'PromotionDiscountTax': {'CurrencyCode': 'USD', 'Amount': '1.00'},
'PromotionDiscount': {'CurrencyCode': 'USD', 'Amount': '5.00'},
'SellerSKU': 'TEST',
'Title': 'Run Test, Run!',
'IsGift': 'true',
'ConditionNote': 'DO NOT BUY THIS',
'ConditionId': 'Used',
'ConditionSubtypeId': 'Acceptable',
'QuantityOrdered': 2,
'OrderItemId': '987654321',
},
],
},
}
OPERATIONS_RESPONSES_MAP = {
'getOrder': {'payload': ORDER_MOCK},
'getOrders': GET_ORDERS_RESPONSE_MOCK,
'getOrderItems': GET_ORDER_ITEMS_MOCK,
'createFeedDocument': {'feedDocumentId': '123123', 'url': 'my_amazing_feed_url.test'},
'createFeed': None,
}
class TestAmazonCommon(TransactionCase):
def setUp(self):
super().setUp()
self.marketplace = self.env['amazon.marketplace'].search(
[('api_ref', '=', ORDER_MOCK['MarketplaceId'])]
)
self.account = self.env['amazon.account'].create({
'name': 'TestAccountName',
'seller_key': 'Random Seller Key',
'refresh_token': 'A refresh token',
'base_marketplace_id': self.marketplace.id,
'available_marketplace_ids': [self.marketplace.id],
'active_marketplace_ids': [self.marketplace.id],
'company_id': self.env.company.id,
})
# Create an offer linked to the product
self.product = self.env['product.product'].create(
{'name': "This is a storable product", 'type': 'product'}
)
self.offer = self.env['amazon.offer'].create({
'account_id': self.account.id,
'marketplace_id': self.marketplace.id,
'product_id': self.product.id,
'sku': 'TESTING_SKU',
})
# Create a delivery carrier
self.carrier = self.env['delivery.carrier'].create(
{'name': "My Truck", 'product_id': self.product.id} # delivery_type == 'fixed'
)
self.tracking_ref = "dummy tracking ref"