def setUp(self): super(TestFulfillmentShipmentCreator, self).setUp() self.merchant = factories.MerchantAccountFactory() self.creator = FulfillmentOrderCreator() self.address = ShippingAddress.objects.create( first_name='test', last_name='man', line1="123 Imanginary Ave", line4="Funky Town", state="CA", postcode="56789", country=Country.objects.all()[0], ) self.basket = factories.BasketFactory() self.basket.add_product(factories.ProductFactory()) self.basket.add_product(factories.ProductFactory())
def test_doesnt_change_stock_when_mws_record(self): stock_record = StockRecord.objects.create( product=factories.ProductFactory(), partner=self.merchant.partner) stock_record.num_in_stock = 12 stock_record.num_allocated = 3 stock_record.consume_allocation(quantity=1) self.assertEquals(stock_record.num_in_stock, 12) self.assertEquals(stock_record.num_allocated, 3)
def test_changes_stock_when_it_isnt_mws_record(self): stock_record = StockRecord.objects.create( product=factories.ProductFactory(), partner=factories.PartnerFactory()) stock_record.num_in_stock = 12 stock_record.num_allocated = 3 stock_record.consume_allocation(quantity=2) self.assertEquals(stock_record.num_in_stock, 10) self.assertEquals(stock_record.num_allocated, 1)
def setUp(self): super(TestAmazonProfileDashboard, self).setUp() self.product = factories.ProductFactory(amazon_profile=None) self.marketplace = factories.AmazonMarketplaceFactory() try: self.product.amazon_profile except AmazonProfile.DoesNotExist: pass else: self.fail("product has Amazon profile but shouldn't")
def test_ignores_order_lines_without_amazon_profile(self): non_mws_product = factories.ProductFactory(amazon_profile=None) self.basket.add_product(non_mws_product) order = create_order(basket=self.basket, shipping_address=self.address) self.creator.create_fulfillment_order(order) mws_orders = FulfillmentOrder.objects.all() self.assertEquals(len(mws_orders), 1) mws_order = mws_orders[0] self.assertEquals(mws_order.status, mws_order.UNSUBMITTED) self.assertEquals(mws_order.shipping_address.id, self.address.id) self.assertItemsEqual( [l.product for l in mws_order.lines.all()], list(Product.objects.exclude(id=non_mws_product.id)))
def test_parses_the_response_correctly(self): xml_data = self.load_data('get_fulfillment_order_response.xml') httpretty.register_uri( httpretty.GET, 'https://mws.amazonservices.com/FulfillmentOutboundShipment/2010-10-01', body=xml_data, ) basket = factories.BasketFactory() basket.add_product(factories.ProductFactory()) order = create_order(basket=basket) update_fulfillment_order( factories.FulfillmentOrderFactory(order=order)) fulfillment_order = FulfillmentOrder.objects.all()[0] self.assertEquals(FulfillmentOrder.objects.count(), 1) self.assertEquals(fulfillment_order.status, 'COMPLETE') shipments = FulfillmentShipment.objects.all() self.assertEquals(len(shipments), 1) expected = { 'Dkw.3ko298': { 'shipment_id': 'Dkw.3ko298', 'status': 'SHIPPED', 'fulfillment_center_id': 'FCID01', 'date_shipped': du_parse('2013-10-29T00:50:03Z'), 'date_estimated_arrival': du_parse('2013-10-30T23:59:59Z'), }, } for shipment in shipments: for attr, value in expected[shipment.shipment_id].iteritems(): self.assertEquals(getattr(shipment, attr), value) packages = ShipmentPackage.objects.all() self.assertEquals(len(packages), 1) self.assertEquals(packages[0].tracking_number, 'MPT_1234') self.assertEquals(packages[0].carrier_code, 'Magic Parcels') shipping_events = ShippingEvent.objects.all() self.assertEquals(len(shipping_events), 1) self.assertItemsEqual([s.notes for s in shipping_events], [ '* Shipped package via Magic Parcels with tracking number ' 'MPT_1234' ])
def setUp(self): super(TestUpdateInventory, self).setUp() self.original_bases = StockRecord.__bases__ if not mws_mixins.AmazonStockTrackingMixin in StockRecord.__bases__: StockRecord.__bases__ += (mws_mixins.AmazonStockTrackingMixin, ) marketplace = factories.AmazonMarketplaceFactory() product = factories.ProductFactory( stockrecord__partner=marketplace.merchant.partner, amazon_profile__sku='SKU_12345') self.profile = product.amazon_profile self.profile.marketplaces.add(marketplace) self.assertEquals(self.profile.product.stockrecords.count(), 1) self.stockrecord = self.profile.product.stockrecords.all()[0] self.assertFalse(self.stockrecord.num_in_stock) self.assertFalse(self.stockrecord.num_allocated)
def setUp(self): self.product = factories.ProductFactory( upc='9781741173420', title='Kayaking Around Australia', amazon_profile=None) self.merchant = factories.MerchantAccountFactory( name="Integration Test Account", seller_id=os.getenv('SELLER_ID'), aws_api_key=os.getenv('AWS_ACCESS_KEY_ID'), aws_api_secret=os.getenv('AWS_SECRET_ACCESS_KEY')) self.marketplace = factories.AmazonMarketplaceFactory( merchant=self.merchant, marketplace_id='ATVPDKIKX0DER') amazon_profile = factories.AmazonProfileFactory( product=self.product, fulfillment_by=AmazonProfile.FULFILLMENT_BY_AMAZON) amazon_profile.marketplaces.add(self.marketplace)
def test_returns_true_if_it_is_mws_stockrecord(self): self.assertTrue(self.merchant.partner.name.startswith('Amazon')) stock_record = StockRecord.objects.create( product=factories.ProductFactory(), partner=self.merchant.partner) self.assertTrue(stock_record.is_mws_record)
def test_returns_false_if_it_isnt_mws_stockrecord(self): stock_record = StockRecord.objects.create( product=factories.ProductFactory(), partner=factories.PartnerFactory()) self.assertFalse(stock_record.is_mws_record)