Skip to content
This repository has been archived by the owner on Oct 6, 2020. It is now read-only.

Docs for running tests #6

Open
natea opened this issue May 27, 2014 · 13 comments
Open

Docs for running tests #6

natea opened this issue May 27, 2014 · 13 comments

Comments

@natea
Copy link

natea commented May 27, 2014

What is the best way to run the tests? I noticed that tox was in the requirements_dev.txt file and there is a pytest.ini file, so I ran this:

$ tox -c pytest.ini 
GLOB sdist-make: /Users/nateaune/Dropbox/code/django-oscar-mws/setup.py
python create: /Users/nateaune/Dropbox/code/django-oscar-mws/.tox/python
python inst: /Users/nateaune/Dropbox/code/django-oscar-mws/.tox/dist/django-oscar-mws-0.1.0.zip
python runtests: PYTHONHASHSEED='2763631094'
_________________________________________ summary __________________________________________
  python: commands succeeded
  congratulations :)

Does this mean that all the tests passed? (sorry, I haven't used tox before)

@roadsideseb
Copy link
Contributor

Thanks for pointing that out. As far as I am aware, the tox setup is in an intermittent state. I've started setting it up but never finished. I should either finish that or remove it complete.

What I usually do to run the tests and what I am running on Travis is:

$ py.test --pep8

This will run all tests except the integration ones that require an account with Amazon. I've added it to issue #7 to write some documentation on that as well.

@natea
Copy link
Author

natea commented May 28, 2014

Great, I ran that and it appears that all the tests pass. :-) How can I run the integration tests that require an account with Amazon (which I have)?

(django-oscar-mws)➜  django-oscar-mws git:(master) ✗ py.test --pep8
=================================== test session starts ====================================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cache, cov, django, pep8
collected 101 items 

setup.py .
oscar_mws/__init__.py .
oscar_mws/abstract_models.py .
oscar_mws/admin.py .
oscar_mws/api.py .
oscar_mws/connection.py .
oscar_mws/defaults.py .
oscar_mws/mixins.py .
oscar_mws/models.py .
oscar_mws/receivers.py .
oscar_mws/signals.py .
oscar_mws/utils.py .
oscar_mws/dashboard/__init__.py .
oscar_mws/dashboard/app.py .
oscar_mws/dashboard/forms.py .
oscar_mws/dashboard/models.py .
oscar_mws/dashboard/views.py .
oscar_mws/feeds/__init__.py .
oscar_mws/feeds/gateway.py .
oscar_mws/feeds/mappers.py .
oscar_mws/feeds/writers.py .
oscar_mws/fulfillment/__init__.py .
oscar_mws/fulfillment/adapters.py .
oscar_mws/fulfillment/creator.py .
oscar_mws/fulfillment/finders.py .
oscar_mws/fulfillment/gateway.py .
oscar_mws/management/__init__.py .
oscar_mws/management/commands/__init__.py .
oscar_mws/management/commands/mws_feed_results.py .
oscar_mws/management/commands/mws_submit_product_feed.py .
oscar_mws/management/commands/mws_switch_product_fulfillment.py .
oscar_mws/management/commands/mws_update_products.py .
oscar_mws/seller/__init__.py .
oscar_mws/seller/gateway.py .
oscar_mws/templatetags/__init__.py .
oscar_mws/templatetags/mws_tags.py .
oscar_mws/test/__init__.py .
oscar_mws/test/factories.py .
oscar_mws/test/mixins.py .
tests/functional/test_dashboard.py ..
tests/functional/test_feeds.py ...
tests/functional/test_fulfillment.py ......
tests/functional/test_profile_dashboard.py .
tests/functional/test_seller.py .
tests/unit/test_fulfillment.py ...
tests/unit/test_mixins.py ......
tests/unit/test_models.py ..............
tests/unit/test_receivers.py .
tests/unit/test_signals.py ..
tests/unit/test_writers.py ....
tests/unit/api/test_mws.py .......
tests/unit/api/test_outbound_shipments.py ...
tests/unit/fulfillment/test_creator.py ..
tests/unit/fulfillment/test_gateway.py ..

======================= 5 tests deselected by "-m 'not integration'" =======================
========================= 96 passed, 5 deselected in 10.12 seconds =========================

@roadsideseb
Copy link
Contributor

Great 😄 It's always good when tests pass.

To run the integration tests you have to run py.test enabling the integration marker:

$ py.test -m integration

For it to work you've got set the SELLER_ID, AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables. So something along the lines of:

$ export SELLER_ID="you_seller_id"
$ export AWS_ACCESS_KEY_ID="your_aws_key"
$ export AWS_SECRET_ACCESS_KEY="your_aws_secret"
$ py.test -m integration

Currently the integration tests aren't running on Travis so there might be issues with it because running tests against the MWS API fully automated is tricky because of some of there constraints when creating products. Let me know how it goes and if you have any issues.

@natea
Copy link
Author

natea commented May 28, 2014

Not so lucky with the integration tests:

(django-oscar-mws)➜  django-oscar-mws git:(master) ✗ py.test -m integration
=================================== test session starts ====================================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cache, cov, django, pep8
collected 62 items 

tests/integration/test_feeds.py .F
tests/integration/test_fulfillment.py FFF

========================================= FAILURES =========================================
__________________________ TestSubmittingAFeed.test_is_processed ___________________________

self = <tests.integration.test_feeds.TestSubmittingAFeed testMethod=test_is_processed>

    def test_is_processed(self):
        submissions = feeds_gw.submit_product_feed(
            products=[self.product],
            marketplaces=[self.marketplace]
        )
        submission = self._check_submission(submissions[0])
        self.assertEquals(submission.processing_status, am.STATUS_DONE)

        # Switch the product to FBA
        submission = feeds_gw.switch_product_fulfillment(
            marketplace=self.marketplace,
>           products=[self.product],
        )

tests/integration/test_feeds.py:80: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

marketplace = <AmazonMarketplace: Dummy Marketplace (US)>
products = [<Product: Kayaking Around Australia>], dry_run = False

    def switch_product_fulfillment(marketplace, products, dry_run=False):
        """
        Switches the list of *products* sold on the given :class:`AmazonMarketplace
        <oscar_mws.models.AmazonMarketplace` *marketplace* to
        the fulfillment set on the :class:`AmazonProfile
        <oscar_mws.models.AmazonProfile>`'s ``fulfillment_by`` attribute. If the
        fulfillment is changed to "Fulfillment By Amazon (FBA)" all manually set
        stock information is discarded and handled by Amazon automatically based on
        inbound shipments (refer to the Amazon MWS documentation for more details).

        :param AmazonMarketplace marketplace: an Amazon marketplace instance
        :param list products: a list of Oscar products
        :param boolean dry_run: flag to enable dry run. If set to ``True`` the
            generated XML is printed to stdout rather than submitted to MWS.
            Default: ``False``

        :rtype FeedSubmission: a submission object representing the succesfully
            submitted XML feed. Used to track the processing status of the feed.

        :raises MWSError: if an error occurs while communicating with MWS.
        """
        seller_id = marketplace.merchant.seller_id
        writer = writers.InventoryFeedWriter(seller_id)
        for product in products:
            writer.add_product(
                product,
                fulfillment_by=product.amazon_profile.fulfillment_by,
>               fulfillment_center_id=marketplace.fulfillment_center_id,
            )

oscar_mws/feeds/gateway.py:442: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <oscar_mws.feeds.writers.InventoryFeedWriter object at 0x104cd1090>
product = <Product: Kayaking Around Australia>, operation_type = 'Update'
fulfillment_center_id = 'AMAZON_NA', fulfillment_by = 'AFN'

    def add_product(self, product, operation_type=OP_UPDATE,
                    fulfillment_center_id=None, fulfillment_by=None):
        msg_id = self.msg_counter.next()

        inventory = E.Inventory(
>           self.mapper_class(product).get_value_element('SKU'),
        )

oscar_mws/feeds/writers.py:118: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <lxml.builder.ElementMaker object at 0x104636a90>, tag = 'Inventory'
children = (None,), attrib = {}
get = <built-in method get of dict object at 0x7fe52f1f08b0>
elem = <Element Inventory at 0x104ce7518>, item = None, t = None, basetype = <type 'object'>

    def __call__(self, tag, *children, **attrib):
        get = self._typemap.get

        if self._namespace is not None and tag[0] != '{':
            tag = self._namespace + tag
        elem = self._makeelement(tag, nsmap=self._nsmap)
        if attrib:
            get(dict)(elem, attrib)

        for item in children:
            if callable(item):
                item = item()
            t = get(type(item))
            if t is None:
                if ET.iselement(item):
                    elem.append(item)
                    continue
                for basetype in type(item).__mro__:
                    # See if the typemap knows of any of this type's bases.
                    t = get(basetype)
                    if t is not None:
                        break
                else:
                    raise TypeError("bad argument type: %s(%r)" %
>                                   (type(item).__name__, item))
E                   TypeError: bad argument type: NoneType(None)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/lxml-3.3.5-py2.7-macosx-10.9-x86_64.egg/lxml/builder.py:227: TypeError
------------------------------------- Captured stderr --------------------------------------
INFO Updating 1 products for seller ID A24554KR292FDV
INFO:oscar_mws:Updating 1 products for seller ID A24554KR292FDV
DEBUG Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy item class</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG:oscar_mws:Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy item class</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-05-28T00:28:14Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-05-28T00:28:14Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-05-28T00:28:14Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:16+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>7ff58dbb-c4fb-4d80-94e3-f83ec89b6da1</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:16+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>7ff58dbb-c4fb-4d80-94e3-f83ec89b6da1</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:16+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>7ff58dbb-c4fb-4d80-94e3-f83ec89b6da1</RequestId></ResponseMetadata></SubmitFeedResponse>
INFO Feed submission successful as ID 10028704816
INFO:oscar_mws:Feed submission successful as ID 10028704816
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-05-28T00:28:45Z', 'FeedSubmissionIdList.Id.1': u'10028704816', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-05-28T00:28:45Z', 'FeedSubmissionIdList.Id.1': u'10028704816', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-05-28T00:28:45Z', 'FeedSubmissionIdList.Id.1': u'10028704816', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:15+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-05-28T00:28:33+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>2c92ce8a-20bf-4ec1-9b9d-56798bc2bcae</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:15+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-05-28T00:28:33+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>2c92ce8a-20bf-4ec1-9b9d-56798bc2bcae</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:15+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-05-28T00:28:33+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>2c92ce8a-20bf-4ec1-9b9d-56798bc2bcae</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-05-28T00:29:18Z', 'FeedSubmissionIdList.Id.1': u'10028704816', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-05-28T00:29:18Z', 'FeedSubmissionIdList.Id.1': u'10028704816', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-05-28T00:29:18Z', 'FeedSubmissionIdList.Id.1': u'10028704816', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:15+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-05-28T00:28:33+00:00</StartedProcessingDate><CompletedProcessingDate>2014-05-28T00:29:18+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>360b86c0-95cf-4154-b98f-214f9c232e59</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:15+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-05-28T00:28:33+00:00</StartedProcessingDate><CompletedProcessingDate>2014-05-28T00:29:18+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>360b86c0-95cf-4154-b98f-214f9c232e59</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10028704816</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-05-28T00:28:15+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-05-28T00:28:33+00:00</StartedProcessingDate><CompletedProcessingDate>2014-05-28T00:29:18+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>360b86c0-95cf-4154-b98f-214f9c232e59</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
________________________ TestSubmittingAFeed.test_can_be_cancelled _________________________

self = <tests.integration.test_fulfillment.TestSubmittingAFeed testMethod=test_can_be_cancelled>

    def setUp(self):
        super(IntegrationMixin, self).setUp()
        self.product = factories.ProductFactory(
            upc='9781741173420', title='Kayaking Around Australia')
        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'))

>       amazon_profile = factories.AmazonProfileFactory(product=self.product)

oscar_mws/test/mixins.py:36: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
kwargs = {'product': <Product: Kayaking Around Australia>}

    def __call__(cls, **kwargs):
        """Override the default Factory() syntax to call the default strategy.

            Returns an instance of the associated class.
            """

        if cls.FACTORY_STRATEGY == BUILD_STRATEGY:
            return cls.build(**kwargs)
        elif cls.FACTORY_STRATEGY == CREATE_STRATEGY:
>           return cls.create(**kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:81: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
kwargs = {'product': <Product: Kayaking Around Australia>}
attrs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    @classmethod
    def create(cls, **kwargs):
        """Create an instance of the associated class, with overriden attrs."""
        attrs = cls.attributes(create=True, extra=kwargs)
>       return cls._generate(True, attrs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:523: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>, create = True
attrs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    @classmethod
    def _generate(cls, create, attrs):
        """generate the object.

            Args:
                create (bool): whether to 'build' or 'create' the object
                attrs (dict): attributes to use for generating the object
            """
        if cls._abstract_factory:
            raise FactoryError(
                "Cannot generate instances of abstract factory %(f)s; "
                "Ensure %(f)s.FACTORY_FOR is set and %(f)s.ABSTRACT_FACTORY "
                "is either not set or False." % dict(f=cls))

        # Extract declarations used for post-generation
        postgen_declarations = getattr(cls,
                CLASS_ATTRIBUTE_POSTGEN_DECLARATIONS)
        postgen_attributes = {}
        for name, decl in sorted(postgen_declarations.items()):
            postgen_attributes[name] = decl.extract(name, attrs)

        # Generate the object
>       obj = cls._prepare(create, **attrs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:448: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>, create = True
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
target_class = <class 'oscar_mws.models.AmazonProfile'>, args = ()

    @classmethod
    def _prepare(cls, create, **kwargs):
        """Prepare an object for this factory.

            Args:
                create: bool, whether to create or to build the object
                **kwargs: arguments to pass to the creation function
            """
        target_class = cls._get_target_class()
        kwargs = cls._adjust_kwargs(**kwargs)

        # Remove 'hidden' arguments.
        for arg in cls.FACTORY_HIDDEN_ARGS:
            del kwargs[arg]

        # Extract *args from **kwargs
        args = tuple(kwargs.pop(key) for key in cls.FACTORY_ARG_PARAMETERS)

        logger.debug('BaseFactory: Generating %s.%s(%s)',
            cls.__module__,
            cls.__name__,
            utils.log_pprint(args, kwargs),
        )
        if create:
>           return cls._create(target_class, *args, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:422: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
target_class = <class 'oscar_mws.models.AmazonProfile'>, args = ()
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
manager = <django.db.models.manager.Manager object at 0x1048f2590>

    @classmethod
    def _create(cls, target_class, *args, **kwargs):
        """Create an instance of the model, and save it to the database."""
        manager = cls._get_manager(target_class)

        if cls.FACTORY_DJANGO_GET_OR_CREATE:
            return cls._get_or_create(target_class, *args, **kwargs)

>       return manager.create(*args, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/django.py:119: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.manager.Manager object at 0x1048f2590>
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    def create(self, **kwargs):
>       return self.get_queryset().create(**kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/manager.py:157: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = []
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
obj = <AmazonProfile: Amazon profile for Kayaking Around Australia>

    def create(self, **kwargs):
        """
            Creates a new object with the given kwargs, saving it to the database
            and returning the created object.
            """
        obj = self.model(**kwargs)
        self._for_write = True
>       obj.save(force_insert=True, using=self.db)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/query.py:322: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, args = ()
kwargs = {'force_insert': True, 'using': 'default'}

    def save(self, *args, **kwargs):
>       super(AbstractAmazonProfile, self).save(*args, **kwargs)

oscar_mws/abstract_models.py:314: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, force_insert = True
force_update = False, using = 'default', update_fields = None

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        """
            Saves the current instance. Override this in a subclass if you want to
            control the saving process.

            The 'force_insert' and 'force_update' parameters can be used to insist
            that the "save" must be an SQL insert or update (or equivalent for
            non-SQL backends), respectively. Normally, they should not be set.
            """
        using = using or router.db_for_write(self.__class__, instance=self)
        if force_insert and (force_update or update_fields):
            raise ValueError("Cannot force both insert and updating in model saving.")

        if update_fields is not None:
            # If update_fields is empty, skip the save. We do also check for
            # no-op saves later on for inheritance cases. This bailout is
            # still needed for skipping signal sending.
            if len(update_fields) == 0:
                return

            update_fields = frozenset(update_fields)
            field_names = set()

            for field in self._meta.fields:
                if not field.primary_key:
                    field_names.add(field.name)

                    if field.name != field.attname:
                        field_names.add(field.attname)

            non_model_fields = update_fields.difference(field_names)

            if non_model_fields:
                raise ValueError("The following fields do not exist in this "
                                 "model or are m2m fields: %s"
                                 % ', '.join(non_model_fields))

        # If saving to the same database, and this model is deferred, then
        # automatically do a "update_fields" save on the loaded fields.
        elif not force_insert and self._deferred and using == self._state.db:
            field_names = set()
            for field in self._meta.concrete_fields:
                if not field.primary_key and not hasattr(field, 'through'):
                    field_names.add(field.attname)
            deferred_fields = [
                f.attname for f in self._meta.fields
                if f.attname not in self.__dict__
                   and isinstance(self.__class__.__dict__[f.attname],
                                  DeferredAttribute)]

            loaded_fields = field_names.difference(deferred_fields)
            if loaded_fields:
                update_fields = frozenset(loaded_fields)

        self.save_base(using=using, force_insert=force_insert,
>                      force_update=force_update, update_fields=update_fields)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:545: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, raw = False
force_insert = True, force_update = False, using = 'default', update_fields = None

    def save_base(self, raw=False, force_insert=False,
                  force_update=False, using=None, update_fields=None):
        """
            Handles the parts of saving which should be done only once per save,
            yet need to be done in raw saves, too. This includes some sanity
            checks and signal sending.

            The 'raw' argument is telling save_base not to save any parent
            models and not to do any changes to the values before save. This
            is used by fixture loading.
            """
        using = using or router.db_for_write(self.__class__, instance=self)
        assert not (force_insert and (force_update or update_fields))
        assert update_fields is None or len(update_fields) > 0
        cls = origin = self.__class__
        # Skip proxies, but keep the origin as the proxy model.
        if cls._meta.proxy:
            cls = cls._meta.concrete_model
        meta = cls._meta
        if not meta.auto_created:
            signals.pre_save.send(sender=origin, instance=self, raw=raw, using=using,
                                  update_fields=update_fields)
        with transaction.commit_on_success_unless_managed(using=using, savepoint=False):
            if not raw:
                self._save_parents(cls, using, update_fields)
>           updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:573: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, raw = False
cls = <class 'oscar_mws.models.AmazonProfile'>, force_insert = True, force_update = False
using = 'default', update_fields = None

    def _save_table(self, raw=False, cls=None, force_insert=False,
                    force_update=False, using=None, update_fields=None):
        """
            Does the heavy-lifting involved in saving. Updates or inserts the data
            for a single table.
            """
        meta = cls._meta
        non_pks = [f for f in meta.local_concrete_fields if not f.primary_key]

        if update_fields:
            non_pks = [f for f in non_pks
                       if f.name in update_fields or f.attname in update_fields]

        pk_val = self._get_pk_val(meta)
        pk_set = pk_val is not None
        if not pk_set and (force_update or update_fields):
            raise ValueError("Cannot force an update in save() with no primary key.")
        updated = False
        # If possible, try an UPDATE. If that doesn't update anything, do an INSERT.
        if pk_set and not force_insert:
            base_qs = cls._base_manager.using(using)
            values = [(f, None, (getattr(self, f.attname) if raw else f.pre_save(self, False)))
                      for f in non_pks]
            forced_update = update_fields or force_update
            updated = self._do_update(base_qs, using, pk_val, values, update_fields,
                                      forced_update)
            if force_update and not updated:
                raise DatabaseError("Forced update did not affect any rows.")
            if update_fields and not updated:
                raise DatabaseError("Save with update_fields did not affect any rows.")
        if not updated:
            if meta.order_with_respect_to:
                # If this is a model with an order_with_respect_to
                # autopopulate the _order field
                field = meta.order_with_respect_to
                order_value = cls._base_manager.using(using).filter(
                    **{field.name: getattr(self, field.attname)}).count()
                self._order = order_value

            fields = meta.local_concrete_fields
            if not pk_set:
                fields = [f for f in fields if not isinstance(f, AutoField)]

            update_pk = bool(meta.has_auto_field and not pk_set)
>           result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:654: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>
manager = <django.db.models.manager.Manager object at 0x1048f2590>, using = 'default'
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
update_pk = True, raw = False

    def _do_insert(self, manager, using, fields, update_pk, raw):
        """
            Do an INSERT. If update_pk is defined then this method should return
            the new pk for the model.
            """
        return manager._insert([self], fields=fields, return_id=update_pk,
>                              using=using, raw=raw)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:687: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.manager.Manager object at 0x1048f2590>
objs = [<AmazonProfile: Amazon profile for Kayaking Around Australia>]
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
kwargs = {'raw': False, 'return_id': True, 'using': 'default'}

    def _insert(self, objs, fields, **kwargs):
>       return insert_query(self.model, objs, fields, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/manager.py:232: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

model = <class 'oscar_mws.models.AmazonProfile'>
objs = [<AmazonProfile: Amazon profile for Kayaking Around Australia>]
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
return_id = True, raw = False, using = 'default'

    def insert_query(model, objs, fields, return_id=False, raw=False, using=None):
        """
        Inserts a new record for the given model. This provides an interface to
        the InsertQuery class and is how Model.save() is implemented. It is not
        part of the public API.
        """
        query = sql.InsertQuery(model)
        query.insert_values(fields, objs, raw=raw)
>       return query.get_compiler(using=using).execute_sql(return_id)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/query.py:1514: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.sql.compiler.SQLInsertCompiler object at 0x104ce9b50>
return_id = True

    def execute_sql(self, return_id=False):
        assert not (return_id and len(self.query.objs) != 1)
        self.return_id = return_id
        cursor = self.connection.cursor()
        for sql, params in self.as_sql():
>           cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/sql/compiler.py:903: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.util.CursorWrapper object at 0x104ce94d0>
sql = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, sql, params=None):
        self.db.validate_no_broken_transaction()
        self.db.set_dirty()
        with self.db.wrap_database_errors:
            if params is None:
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/util.py:53: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.utils.DatabaseErrorWrapper object at 0x104b46c10>
exc_type = <class 'sqlite3.IntegrityError'>
exc_value = IntegrityError('UNIQUE constraint failed: oscar_mws_amazonprofile.product_id',)
traceback = <traceback object at 0x104bf1878>

    def __exit__(self, exc_type, exc_value, traceback):
        if exc_type is None:
            return
        for dj_exc_type in (
                DataError,
                OperationalError,
                IntegrityError,
                InternalError,
                ProgrammingError,
                NotSupportedError,
                DatabaseError,
                InterfaceError,
                Error,
            ):
            db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)
            if issubclass(exc_type, db_exc_type):
                # Under Python 2.6, exc_value can still be a string.
                try:
                    args = tuple(exc_value.args)
                except AttributeError:
                    args = (exc_value,)
                dj_exc_value = dj_exc_type(*args)
                dj_exc_value.__cause__ = exc_value
                # Only set the 'errors_occurred' flag for errors that may make
                # the connection unusable.
                if dj_exc_type not in (DataError, IntegrityError):
                    self.wrapper.errors_occurred = True
>               six.reraise(dj_exc_type, dj_exc_value, traceback)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/utils.py:99: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.util.CursorWrapper object at 0x104ce94d0>
sql = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, sql, params=None):
        self.db.validate_no_broken_transaction()
        self.db.set_dirty()
        with self.db.wrap_database_errors:
            if params is None:
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/util.py:53: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x104d583e0>
query = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, query, params=None):
        if params is None:
            return Database.Cursor.execute(self, query)
        query = self.convert_query(query)
>       return Database.Cursor.execute(self, query, params)
E       IntegrityError: UNIQUE constraint failed: oscar_mws_amazonprofile.product_id

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:451: IntegrityError
------------------------------------- Captured stderr --------------------------------------
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
__________________________ TestSubmittingAFeed.test_is_processed ___________________________

self = <tests.integration.test_fulfillment.TestSubmittingAFeed testMethod=test_is_processed>

    def setUp(self):
        super(IntegrationMixin, self).setUp()
        self.product = factories.ProductFactory(
            upc='9781741173420', title='Kayaking Around Australia')
        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'))

>       amazon_profile = factories.AmazonProfileFactory(product=self.product)

oscar_mws/test/mixins.py:36: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
kwargs = {'product': <Product: Kayaking Around Australia>}

    def __call__(cls, **kwargs):
        """Override the default Factory() syntax to call the default strategy.

            Returns an instance of the associated class.
            """

        if cls.FACTORY_STRATEGY == BUILD_STRATEGY:
            return cls.build(**kwargs)
        elif cls.FACTORY_STRATEGY == CREATE_STRATEGY:
>           return cls.create(**kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:81: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
kwargs = {'product': <Product: Kayaking Around Australia>}
attrs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    @classmethod
    def create(cls, **kwargs):
        """Create an instance of the associated class, with overriden attrs."""
        attrs = cls.attributes(create=True, extra=kwargs)
>       return cls._generate(True, attrs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:523: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>, create = True
attrs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    @classmethod
    def _generate(cls, create, attrs):
        """generate the object.

            Args:
                create (bool): whether to 'build' or 'create' the object
                attrs (dict): attributes to use for generating the object
            """
        if cls._abstract_factory:
            raise FactoryError(
                "Cannot generate instances of abstract factory %(f)s; "
                "Ensure %(f)s.FACTORY_FOR is set and %(f)s.ABSTRACT_FACTORY "
                "is either not set or False." % dict(f=cls))

        # Extract declarations used for post-generation
        postgen_declarations = getattr(cls,
                CLASS_ATTRIBUTE_POSTGEN_DECLARATIONS)
        postgen_attributes = {}
        for name, decl in sorted(postgen_declarations.items()):
            postgen_attributes[name] = decl.extract(name, attrs)

        # Generate the object
>       obj = cls._prepare(create, **attrs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:448: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>, create = True
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
target_class = <class 'oscar_mws.models.AmazonProfile'>, args = ()

    @classmethod
    def _prepare(cls, create, **kwargs):
        """Prepare an object for this factory.

            Args:
                create: bool, whether to create or to build the object
                **kwargs: arguments to pass to the creation function
            """
        target_class = cls._get_target_class()
        kwargs = cls._adjust_kwargs(**kwargs)

        # Remove 'hidden' arguments.
        for arg in cls.FACTORY_HIDDEN_ARGS:
            del kwargs[arg]

        # Extract *args from **kwargs
        args = tuple(kwargs.pop(key) for key in cls.FACTORY_ARG_PARAMETERS)

        logger.debug('BaseFactory: Generating %s.%s(%s)',
            cls.__module__,
            cls.__name__,
            utils.log_pprint(args, kwargs),
        )
        if create:
>           return cls._create(target_class, *args, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:422: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
target_class = <class 'oscar_mws.models.AmazonProfile'>, args = ()
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
manager = <django.db.models.manager.Manager object at 0x1048f2590>

    @classmethod
    def _create(cls, target_class, *args, **kwargs):
        """Create an instance of the model, and save it to the database."""
        manager = cls._get_manager(target_class)

        if cls.FACTORY_DJANGO_GET_OR_CREATE:
            return cls._get_or_create(target_class, *args, **kwargs)

>       return manager.create(*args, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/django.py:119: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.manager.Manager object at 0x1048f2590>
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    def create(self, **kwargs):
>       return self.get_queryset().create(**kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/manager.py:157: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = []
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
obj = <AmazonProfile: Amazon profile for Kayaking Around Australia>

    def create(self, **kwargs):
        """
            Creates a new object with the given kwargs, saving it to the database
            and returning the created object.
            """
        obj = self.model(**kwargs)
        self._for_write = True
>       obj.save(force_insert=True, using=self.db)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/query.py:322: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, args = ()
kwargs = {'force_insert': True, 'using': 'default'}

    def save(self, *args, **kwargs):
>       super(AbstractAmazonProfile, self).save(*args, **kwargs)

oscar_mws/abstract_models.py:314: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, force_insert = True
force_update = False, using = 'default', update_fields = None

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        """
            Saves the current instance. Override this in a subclass if you want to
            control the saving process.

            The 'force_insert' and 'force_update' parameters can be used to insist
            that the "save" must be an SQL insert or update (or equivalent for
            non-SQL backends), respectively. Normally, they should not be set.
            """
        using = using or router.db_for_write(self.__class__, instance=self)
        if force_insert and (force_update or update_fields):
            raise ValueError("Cannot force both insert and updating in model saving.")

        if update_fields is not None:
            # If update_fields is empty, skip the save. We do also check for
            # no-op saves later on for inheritance cases. This bailout is
            # still needed for skipping signal sending.
            if len(update_fields) == 0:
                return

            update_fields = frozenset(update_fields)
            field_names = set()

            for field in self._meta.fields:
                if not field.primary_key:
                    field_names.add(field.name)

                    if field.name != field.attname:
                        field_names.add(field.attname)

            non_model_fields = update_fields.difference(field_names)

            if non_model_fields:
                raise ValueError("The following fields do not exist in this "
                                 "model or are m2m fields: %s"
                                 % ', '.join(non_model_fields))

        # If saving to the same database, and this model is deferred, then
        # automatically do a "update_fields" save on the loaded fields.
        elif not force_insert and self._deferred and using == self._state.db:
            field_names = set()
            for field in self._meta.concrete_fields:
                if not field.primary_key and not hasattr(field, 'through'):
                    field_names.add(field.attname)
            deferred_fields = [
                f.attname for f in self._meta.fields
                if f.attname not in self.__dict__
                   and isinstance(self.__class__.__dict__[f.attname],
                                  DeferredAttribute)]

            loaded_fields = field_names.difference(deferred_fields)
            if loaded_fields:
                update_fields = frozenset(loaded_fields)

        self.save_base(using=using, force_insert=force_insert,
>                      force_update=force_update, update_fields=update_fields)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:545: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, raw = False
force_insert = True, force_update = False, using = 'default', update_fields = None

    def save_base(self, raw=False, force_insert=False,
                  force_update=False, using=None, update_fields=None):
        """
            Handles the parts of saving which should be done only once per save,
            yet need to be done in raw saves, too. This includes some sanity
            checks and signal sending.

            The 'raw' argument is telling save_base not to save any parent
            models and not to do any changes to the values before save. This
            is used by fixture loading.
            """
        using = using or router.db_for_write(self.__class__, instance=self)
        assert not (force_insert and (force_update or update_fields))
        assert update_fields is None or len(update_fields) > 0
        cls = origin = self.__class__
        # Skip proxies, but keep the origin as the proxy model.
        if cls._meta.proxy:
            cls = cls._meta.concrete_model
        meta = cls._meta
        if not meta.auto_created:
            signals.pre_save.send(sender=origin, instance=self, raw=raw, using=using,
                                  update_fields=update_fields)
        with transaction.commit_on_success_unless_managed(using=using, savepoint=False):
            if not raw:
                self._save_parents(cls, using, update_fields)
>           updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:573: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, raw = False
cls = <class 'oscar_mws.models.AmazonProfile'>, force_insert = True, force_update = False
using = 'default', update_fields = None

    def _save_table(self, raw=False, cls=None, force_insert=False,
                    force_update=False, using=None, update_fields=None):
        """
            Does the heavy-lifting involved in saving. Updates or inserts the data
            for a single table.
            """
        meta = cls._meta
        non_pks = [f for f in meta.local_concrete_fields if not f.primary_key]

        if update_fields:
            non_pks = [f for f in non_pks
                       if f.name in update_fields or f.attname in update_fields]

        pk_val = self._get_pk_val(meta)
        pk_set = pk_val is not None
        if not pk_set and (force_update or update_fields):
            raise ValueError("Cannot force an update in save() with no primary key.")
        updated = False
        # If possible, try an UPDATE. If that doesn't update anything, do an INSERT.
        if pk_set and not force_insert:
            base_qs = cls._base_manager.using(using)
            values = [(f, None, (getattr(self, f.attname) if raw else f.pre_save(self, False)))
                      for f in non_pks]
            forced_update = update_fields or force_update
            updated = self._do_update(base_qs, using, pk_val, values, update_fields,
                                      forced_update)
            if force_update and not updated:
                raise DatabaseError("Forced update did not affect any rows.")
            if update_fields and not updated:
                raise DatabaseError("Save with update_fields did not affect any rows.")
        if not updated:
            if meta.order_with_respect_to:
                # If this is a model with an order_with_respect_to
                # autopopulate the _order field
                field = meta.order_with_respect_to
                order_value = cls._base_manager.using(using).filter(
                    **{field.name: getattr(self, field.attname)}).count()
                self._order = order_value

            fields = meta.local_concrete_fields
            if not pk_set:
                fields = [f for f in fields if not isinstance(f, AutoField)]

            update_pk = bool(meta.has_auto_field and not pk_set)
>           result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:654: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>
manager = <django.db.models.manager.Manager object at 0x1048f2590>, using = 'default'
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
update_pk = True, raw = False

    def _do_insert(self, manager, using, fields, update_pk, raw):
        """
            Do an INSERT. If update_pk is defined then this method should return
            the new pk for the model.
            """
        return manager._insert([self], fields=fields, return_id=update_pk,
>                              using=using, raw=raw)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:687: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.manager.Manager object at 0x1048f2590>
objs = [<AmazonProfile: Amazon profile for Kayaking Around Australia>]
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
kwargs = {'raw': False, 'return_id': True, 'using': 'default'}

    def _insert(self, objs, fields, **kwargs):
>       return insert_query(self.model, objs, fields, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/manager.py:232: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

model = <class 'oscar_mws.models.AmazonProfile'>
objs = [<AmazonProfile: Amazon profile for Kayaking Around Australia>]
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
return_id = True, raw = False, using = 'default'

    def insert_query(model, objs, fields, return_id=False, raw=False, using=None):
        """
        Inserts a new record for the given model. This provides an interface to
        the InsertQuery class and is how Model.save() is implemented. It is not
        part of the public API.
        """
        query = sql.InsertQuery(model)
        query.insert_values(fields, objs, raw=raw)
>       return query.get_compiler(using=using).execute_sql(return_id)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/query.py:1514: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.sql.compiler.SQLInsertCompiler object at 0x104d77350>
return_id = True

    def execute_sql(self, return_id=False):
        assert not (return_id and len(self.query.objs) != 1)
        self.return_id = return_id
        cursor = self.connection.cursor()
        for sql, params in self.as_sql():
>           cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/sql/compiler.py:903: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.util.CursorWrapper object at 0x104d77250>
sql = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, sql, params=None):
        self.db.validate_no_broken_transaction()
        self.db.set_dirty()
        with self.db.wrap_database_errors:
            if params is None:
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/util.py:53: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.utils.DatabaseErrorWrapper object at 0x104b46c10>
exc_type = <class 'sqlite3.IntegrityError'>
exc_value = IntegrityError('UNIQUE constraint failed: oscar_mws_amazonprofile.product_id',)
traceback = <traceback object at 0x104d85c20>

    def __exit__(self, exc_type, exc_value, traceback):
        if exc_type is None:
            return
        for dj_exc_type in (
                DataError,
                OperationalError,
                IntegrityError,
                InternalError,
                ProgrammingError,
                NotSupportedError,
                DatabaseError,
                InterfaceError,
                Error,
            ):
            db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)
            if issubclass(exc_type, db_exc_type):
                # Under Python 2.6, exc_value can still be a string.
                try:
                    args = tuple(exc_value.args)
                except AttributeError:
                    args = (exc_value,)
                dj_exc_value = dj_exc_type(*args)
                dj_exc_value.__cause__ = exc_value
                # Only set the 'errors_occurred' flag for errors that may make
                # the connection unusable.
                if dj_exc_type not in (DataError, IntegrityError):
                    self.wrapper.errors_occurred = True
>               six.reraise(dj_exc_type, dj_exc_value, traceback)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/utils.py:99: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.util.CursorWrapper object at 0x104d77250>
sql = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, sql, params=None):
        self.db.validate_no_broken_transaction()
        self.db.set_dirty()
        with self.db.wrap_database_errors:
            if params is None:
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/util.py:53: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x104d586d8>
query = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, query, params=None):
        if params is None:
            return Database.Cursor.execute(self, query)
        query = self.convert_query(query)
>       return Database.Cursor.execute(self, query, params)
E       IntegrityError: UNIQUE constraint failed: oscar_mws_amazonprofile.product_id

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:451: IntegrityError
------------------------------------- Captured stderr --------------------------------------
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
________________________ TestAFulfillmentOrder.test_can_be_created _________________________

self = <tests.integration.test_fulfillment.TestAFulfillmentOrder testMethod=test_can_be_created>

    def setUp(self):
>       super(TestAFulfillmentOrder, self).setUp()

tests/integration/test_fulfillment.py:86: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.integration.test_fulfillment.TestAFulfillmentOrder testMethod=test_can_be_created>

    def setUp(self):
        super(IntegrationMixin, self).setUp()
        self.product = factories.ProductFactory(
            upc='9781741173420', title='Kayaking Around Australia')
        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'))

>       amazon_profile = factories.AmazonProfileFactory(product=self.product)

oscar_mws/test/mixins.py:36: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
kwargs = {'product': <Product: Kayaking Around Australia>}

    def __call__(cls, **kwargs):
        """Override the default Factory() syntax to call the default strategy.

            Returns an instance of the associated class.
            """

        if cls.FACTORY_STRATEGY == BUILD_STRATEGY:
            return cls.build(**kwargs)
        elif cls.FACTORY_STRATEGY == CREATE_STRATEGY:
>           return cls.create(**kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:81: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
kwargs = {'product': <Product: Kayaking Around Australia>}
attrs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    @classmethod
    def create(cls, **kwargs):
        """Create an instance of the associated class, with overriden attrs."""
        attrs = cls.attributes(create=True, extra=kwargs)
>       return cls._generate(True, attrs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:523: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>, create = True
attrs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    @classmethod
    def _generate(cls, create, attrs):
        """generate the object.

            Args:
                create (bool): whether to 'build' or 'create' the object
                attrs (dict): attributes to use for generating the object
            """
        if cls._abstract_factory:
            raise FactoryError(
                "Cannot generate instances of abstract factory %(f)s; "
                "Ensure %(f)s.FACTORY_FOR is set and %(f)s.ABSTRACT_FACTORY "
                "is either not set or False." % dict(f=cls))

        # Extract declarations used for post-generation
        postgen_declarations = getattr(cls,
                CLASS_ATTRIBUTE_POSTGEN_DECLARATIONS)
        postgen_attributes = {}
        for name, decl in sorted(postgen_declarations.items()):
            postgen_attributes[name] = decl.extract(name, attrs)

        # Generate the object
>       obj = cls._prepare(create, **attrs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:448: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>, create = True
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
target_class = <class 'oscar_mws.models.AmazonProfile'>, args = ()

    @classmethod
    def _prepare(cls, create, **kwargs):
        """Prepare an object for this factory.

            Args:
                create: bool, whether to create or to build the object
                **kwargs: arguments to pass to the creation function
            """
        target_class = cls._get_target_class()
        kwargs = cls._adjust_kwargs(**kwargs)

        # Remove 'hidden' arguments.
        for arg in cls.FACTORY_HIDDEN_ARGS:
            del kwargs[arg]

        # Extract *args from **kwargs
        args = tuple(kwargs.pop(key) for key in cls.FACTORY_ARG_PARAMETERS)

        logger.debug('BaseFactory: Generating %s.%s(%s)',
            cls.__module__,
            cls.__name__,
            utils.log_pprint(args, kwargs),
        )
        if create:
>           return cls._create(target_class, *args, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/base.py:422: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

cls = <class 'oscar_mws.test.factories.AmazonProfileFactory'>
target_class = <class 'oscar_mws.models.AmazonProfile'>, args = ()
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
manager = <django.db.models.manager.Manager object at 0x1048f2590>

    @classmethod
    def _create(cls, target_class, *args, **kwargs):
        """Create an instance of the model, and save it to the database."""
        manager = cls._get_manager(target_class)

        if cls.FACTORY_DJANGO_GET_OR_CREATE:
            return cls._get_or_create(target_class, *args, **kwargs)

>       return manager.create(*args, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/factory/django.py:119: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.manager.Manager object at 0x1048f2590>
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}

    def create(self, **kwargs):
>       return self.get_queryset().create(**kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/manager.py:157: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = []
kwargs = {'product': <Product: Kayaking Around Australia>, 'release_date': datetime.datetime(2014, 5, 28, 0, 28, 3, 552174, tzinfo=<UTC>), 'sku': 'sku_1401236968'}
obj = <AmazonProfile: Amazon profile for Kayaking Around Australia>

    def create(self, **kwargs):
        """
            Creates a new object with the given kwargs, saving it to the database
            and returning the created object.
            """
        obj = self.model(**kwargs)
        self._for_write = True
>       obj.save(force_insert=True, using=self.db)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/query.py:322: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, args = ()
kwargs = {'force_insert': True, 'using': 'default'}

    def save(self, *args, **kwargs):
>       super(AbstractAmazonProfile, self).save(*args, **kwargs)

oscar_mws/abstract_models.py:314: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, force_insert = True
force_update = False, using = 'default', update_fields = None

    def save(self, force_insert=False, force_update=False, using=None,
             update_fields=None):
        """
            Saves the current instance. Override this in a subclass if you want to
            control the saving process.

            The 'force_insert' and 'force_update' parameters can be used to insist
            that the "save" must be an SQL insert or update (or equivalent for
            non-SQL backends), respectively. Normally, they should not be set.
            """
        using = using or router.db_for_write(self.__class__, instance=self)
        if force_insert and (force_update or update_fields):
            raise ValueError("Cannot force both insert and updating in model saving.")

        if update_fields is not None:
            # If update_fields is empty, skip the save. We do also check for
            # no-op saves later on for inheritance cases. This bailout is
            # still needed for skipping signal sending.
            if len(update_fields) == 0:
                return

            update_fields = frozenset(update_fields)
            field_names = set()

            for field in self._meta.fields:
                if not field.primary_key:
                    field_names.add(field.name)

                    if field.name != field.attname:
                        field_names.add(field.attname)

            non_model_fields = update_fields.difference(field_names)

            if non_model_fields:
                raise ValueError("The following fields do not exist in this "
                                 "model or are m2m fields: %s"
                                 % ', '.join(non_model_fields))

        # If saving to the same database, and this model is deferred, then
        # automatically do a "update_fields" save on the loaded fields.
        elif not force_insert and self._deferred and using == self._state.db:
            field_names = set()
            for field in self._meta.concrete_fields:
                if not field.primary_key and not hasattr(field, 'through'):
                    field_names.add(field.attname)
            deferred_fields = [
                f.attname for f in self._meta.fields
                if f.attname not in self.__dict__
                   and isinstance(self.__class__.__dict__[f.attname],
                                  DeferredAttribute)]

            loaded_fields = field_names.difference(deferred_fields)
            if loaded_fields:
                update_fields = frozenset(loaded_fields)

        self.save_base(using=using, force_insert=force_insert,
>                      force_update=force_update, update_fields=update_fields)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:545: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, raw = False
force_insert = True, force_update = False, using = 'default', update_fields = None

    def save_base(self, raw=False, force_insert=False,
                  force_update=False, using=None, update_fields=None):
        """
            Handles the parts of saving which should be done only once per save,
            yet need to be done in raw saves, too. This includes some sanity
            checks and signal sending.

            The 'raw' argument is telling save_base not to save any parent
            models and not to do any changes to the values before save. This
            is used by fixture loading.
            """
        using = using or router.db_for_write(self.__class__, instance=self)
        assert not (force_insert and (force_update or update_fields))
        assert update_fields is None or len(update_fields) > 0
        cls = origin = self.__class__
        # Skip proxies, but keep the origin as the proxy model.
        if cls._meta.proxy:
            cls = cls._meta.concrete_model
        meta = cls._meta
        if not meta.auto_created:
            signals.pre_save.send(sender=origin, instance=self, raw=raw, using=using,
                                  update_fields=update_fields)
        with transaction.commit_on_success_unless_managed(using=using, savepoint=False):
            if not raw:
                self._save_parents(cls, using, update_fields)
>           updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:573: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>, raw = False
cls = <class 'oscar_mws.models.AmazonProfile'>, force_insert = True, force_update = False
using = 'default', update_fields = None

    def _save_table(self, raw=False, cls=None, force_insert=False,
                    force_update=False, using=None, update_fields=None):
        """
            Does the heavy-lifting involved in saving. Updates or inserts the data
            for a single table.
            """
        meta = cls._meta
        non_pks = [f for f in meta.local_concrete_fields if not f.primary_key]

        if update_fields:
            non_pks = [f for f in non_pks
                       if f.name in update_fields or f.attname in update_fields]

        pk_val = self._get_pk_val(meta)
        pk_set = pk_val is not None
        if not pk_set and (force_update or update_fields):
            raise ValueError("Cannot force an update in save() with no primary key.")
        updated = False
        # If possible, try an UPDATE. If that doesn't update anything, do an INSERT.
        if pk_set and not force_insert:
            base_qs = cls._base_manager.using(using)
            values = [(f, None, (getattr(self, f.attname) if raw else f.pre_save(self, False)))
                      for f in non_pks]
            forced_update = update_fields or force_update
            updated = self._do_update(base_qs, using, pk_val, values, update_fields,
                                      forced_update)
            if force_update and not updated:
                raise DatabaseError("Forced update did not affect any rows.")
            if update_fields and not updated:
                raise DatabaseError("Save with update_fields did not affect any rows.")
        if not updated:
            if meta.order_with_respect_to:
                # If this is a model with an order_with_respect_to
                # autopopulate the _order field
                field = meta.order_with_respect_to
                order_value = cls._base_manager.using(using).filter(
                    **{field.name: getattr(self, field.attname)}).count()
                self._order = order_value

            fields = meta.local_concrete_fields
            if not pk_set:
                fields = [f for f in fields if not isinstance(f, AutoField)]

            update_pk = bool(meta.has_auto_field and not pk_set)
>           result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:654: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <AmazonProfile: Amazon profile for Kayaking Around Australia>
manager = <django.db.models.manager.Manager object at 0x1048f2590>, using = 'default'
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
update_pk = True, raw = False

    def _do_insert(self, manager, using, fields, update_pk, raw):
        """
            Do an INSERT. If update_pk is defined then this method should return
            the new pk for the model.
            """
        return manager._insert([self], fields=fields, return_id=update_pk,
>                              using=using, raw=raw)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/base.py:687: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.manager.Manager object at 0x1048f2590>
objs = [<AmazonProfile: Amazon profile for Kayaking Around Australia>]
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
kwargs = {'raw': False, 'return_id': True, 'using': 'default'}

    def _insert(self, objs, fields, **kwargs):
>       return insert_query(self.model, objs, fields, **kwargs)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/manager.py:232: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

model = <class 'oscar_mws.models.AmazonProfile'>
objs = [<AmazonProfile: Amazon profile for Kayaking Around Australia>]
fields = [<django.db.models.fields.CharField: asin>, <django.db.models.fields.CharField: sku>, <django.db.models.fields.related...ode>, <django.db.models.fields.DateTimeField: launch_date>, <django.db.models.fields.DateTimeField: release_date>, ...]
return_id = True, raw = False, using = 'default'

    def insert_query(model, objs, fields, return_id=False, raw=False, using=None):
        """
        Inserts a new record for the given model. This provides an interface to
        the InsertQuery class and is how Model.save() is implemented. It is not
        part of the public API.
        """
        query = sql.InsertQuery(model)
        query.insert_values(fields, objs, raw=raw)
>       return query.get_compiler(using=using).execute_sql(return_id)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/query.py:1514: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.models.sql.compiler.SQLInsertCompiler object at 0x105e668d0>
return_id = True

    def execute_sql(self, return_id=False):
        assert not (return_id and len(self.query.objs) != 1)
        self.return_id = return_id
        cursor = self.connection.cursor()
        for sql, params in self.as_sql():
>           cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/models/sql/compiler.py:903: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.util.CursorWrapper object at 0x105e66750>
sql = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, sql, params=None):
        self.db.validate_no_broken_transaction()
        self.db.set_dirty()
        with self.db.wrap_database_errors:
            if params is None:
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/util.py:53: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.utils.DatabaseErrorWrapper object at 0x104b46c10>
exc_type = <class 'sqlite3.IntegrityError'>
exc_value = IntegrityError('UNIQUE constraint failed: oscar_mws_amazonprofile.product_id',)
traceback = <traceback object at 0x104d3c2d8>

    def __exit__(self, exc_type, exc_value, traceback):
        if exc_type is None:
            return
        for dj_exc_type in (
                DataError,
                OperationalError,
                IntegrityError,
                InternalError,
                ProgrammingError,
                NotSupportedError,
                DatabaseError,
                InterfaceError,
                Error,
            ):
            db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)
            if issubclass(exc_type, db_exc_type):
                # Under Python 2.6, exc_value can still be a string.
                try:
                    args = tuple(exc_value.args)
                except AttributeError:
                    args = (exc_value,)
                dj_exc_value = dj_exc_type(*args)
                dj_exc_value.__cause__ = exc_value
                # Only set the 'errors_occurred' flag for errors that may make
                # the connection unusable.
                if dj_exc_type not in (DataError, IntegrityError):
                    self.wrapper.errors_occurred = True
>               six.reraise(dj_exc_type, dj_exc_value, traceback)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/utils.py:99: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.util.CursorWrapper object at 0x105e66750>
sql = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, sql, params=None):
        self.db.validate_no_broken_transaction()
        self.db.set_dirty()
        with self.db.wrap_database_errors:
            if params is None:
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/util.py:53: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x104d585a8>
query = 'INSERT INTO "oscar_mws_amazonprofile" ("asin", "sku", "product_id", "product_tax_code", "launch_date", "release_date", "item_package_quantity", "number_of_items", "fulfillment_by") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'
params = ['', 'sku_1401236968', 1, '', None, '2014-05-28 00:28:03.552174', ...]

    def execute(self, query, params=None):
        if params is None:
            return Database.Cursor.execute(self, query)
        query = self.convert_query(query)
>       return Database.Cursor.execute(self, query, params)
E       IntegrityError: UNIQUE constraint failed: oscar_mws_amazonprofile.product_id

../../../.virtualenvs/django-oscar-mws/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py:451: IntegrityError
------------------------------------- Captured stderr --------------------------------------
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
======================== 57 tests deselected by "-m 'integration'" =========================
==================== 4 failed, 1 passed, 57 deselected in 86.33 seconds ====================

@roadsideseb
Copy link
Contributor

I've now added a section to the README.rst and fixed a few issues in the integration test with the live API. They are now running on Travis as well so it should be more obvious when they break. Could you check and see if the integration tests work for you now as well?

@natea
Copy link
Author

natea commented Jun 2, 2014

I got the latest code, and tried running the integration tests again. I'm getting a lot of errors that look like this:

<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f5b8a9dc-e309-491b-a52c-e237df32bbbf</RequestID>
</ErrorResponse>

and

MWSError: 503 Server Error: Service Unavailable

Any ideas why this might be happening?

@roadsideseb
Copy link
Contributor

That means the integration tests are hitting the MWS API too frequently. The problem here is that getting updates for feed submissions requires polling the API. I've put wait times in several places in the tests to avoid that but it seems that I might have missed some. Is the throttling happening for all tests? Or just some? Can you give more details on where the MWSError is raised?

@natea
Copy link
Author

natea commented Jun 2, 2014

Want me to send you the entire log from running the tests?

@roadsideseb
Copy link
Contributor

Sure, there's no such thing as too much information, right 😉

@natea
Copy link
Author

natea commented Jun 2, 2014

ok, here they are:

(django-oscar-mws)➜  django-oscar-mws git:(master) ✗ py.test -m integration
=================================== test session starts ====================================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cache, cov, django, pep8
collected 62 items 

tests/integration/test_feeds.py .F
tests/integration/test_fulfillment.py F
tests/integration/test_marketplaces.py ..

========================================= FAILURES =========================================
__________________________ TestSubmittingAFeed.test_is_processed ___________________________

self = <tests.integration.test_feeds.TestSubmittingAFeed testMethod=test_is_processed>

    def test_is_processed(self):
        submissions = feeds_gw.submit_product_feed(
            products=[self.product], marketplaces=[self.marketplace])

        submission = self._check_submission(submissions[0])
        self.assertEquals(submission.processing_status, am.STATUS_DONE)

        # Switch the product to FBA
        submission = feeds_gw.switch_product_fulfillment(
            marketplace=self.marketplace, products=[self.product])

        submission = self._check_submission(submission)
        self.assertEquals(submission.processing_status, am.STATUS_DONE)

        feeds_gw.update_product_identifiers(
            submission.merchant, products=[self.product])

        self.assertEquals(
            self.product.amazon_profile.fulfillment_by,
            AmazonProfile.FULFILLMENT_BY_AMAZON)

        # Delete product
        submissions = feeds_gw.submit_product_feed(
            products=[self.product],
            marketplaces=[self.marketplace],
            operation_type=feeds_gw.OP_TYPE_DELETE)

>       submission = self._check_submission(submissions[0])

tests/integration/test_feeds.py:102: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.integration.test_feeds.TestSubmittingAFeed testMethod=test_is_processed>
submission = <FeedSubmission: Feed #10081799690>

    def _check_submission(self, submission):
        self.assertEquals(submission.processing_status, am.STATUS_SUBMITTED)

        statuses = [am.STATUS_DONE, am.STATUS_CANCELLED]
        while submission.processing_status not in statuses:
            time.sleep(INTEGRATION_WAIT_TIME)
>           submission = feeds_gw.update_feed_submission(submission)

tests/integration/test_feeds.py:46: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

submission = <FeedSubmission: Feed #10081799690>

    def update_feed_submission(submission):
        """
        Retrieves the status of a submitted MWS feed stored in *submission* and
        updates the ``processing_status`` of the feed submission.

        :param FeedSubmission submission: a FeedSubmission instance
        :rtype FeedSubmission: updated submission instanceh
        :raises MWError: if an error occurs requesting details from MWS
        """
        seller_id = submission.merchant.seller_id
        feeds_api = get_merchant_connection(seller_id).feeds

        try:
            response = feeds_api.get_feed_submission_list(
>               feedids=[submission.submission_id]
            ).parsed

oscar_mws/feeds/gateway.py:159: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <oscar_mws.api.Feeds object at 0x1041f8250>, feedids = ['10081799690']
max_count = None, feedtypes = None, processingstatuses = None, fromdate = None
todate = None

    def get_feed_submission_list(self, feedids=None, max_count=None,
                                 feedtypes=None, processingstatuses=None,
                                 fromdate=None, todate=None):
        """
            Returns a list of all feed submissions submitted in the previous 90
            days. That match the query parameters.
            """

        data = dict(Action='GetFeedSubmissionList',
                    MaxCount=max_count,
                    SubmittedFromDate=fromdate,
                    SubmittedToDate=todate,)
        data.update(self.enumerate_param('FeedSubmissionIdList.Id', feedids))
        data.update(self.enumerate_param('FeedTypeList.Type', feedtypes))
        data.update(self.enumerate_param('FeedProcessingStatusList.Status',
                                         processingstatuses))
>       return self.make_request(data)

oscar_mws/api.py:351: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <oscar_mws.api.Feeds object at 0x1041f8250>
extra_data = {'Action': 'GetFeedSubmissionList', 'FeedSubmissionIdList.Id.1': '10081799690'}
method = 'GET', kwargs = {}
params = {'AWSAccessKeyId': 'AKIAJLDEYZG6KV7FZOTA', 'Action': 'GetFeedSubmissionList', 'FeedSubmissionIdList.Id.1': '10081799690', 'Merchant': 'A24554KR292FDV', ...}
request_description = 'AWSAccessKeyId=AKIAJLDEYZG6KV7FZOTA&Action=GetFeedSubmissionList&FeedSubmissionIdList.Id.1=10081799690&Merchant=A24554KR292FDV&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-06-02T13%3A20%3A08Z&Version=2009-01-01'
signature = 'tyfZE5svTYyrPpDHwUwSbs/1AH4VNUh3nVukKFCCsLM='
url = 'https://mws.amazonservices.com/?AWSAccessKeyId=AKIAJLDEYZG6KV7FZOTA&Action=GetFeedSubmissionList&FeedSubmissionIdList...rsion=2&Timestamp=2014-06-02T13%3A20%3A08Z&Version=2009-01-01&Signature=tyfZE5svTYyrPpDHwUwSbs/1AH4VNUh3nVukKFCCsLM%3D'
headers = {'User-Agent': 'python-amazon-mws/0.0.1 (Language=Python)'}
response = <Response [503]>

    def make_request(self, extra_data, method="GET", **kwargs):
        """
            Make request to Amazon MWS API with these parameters
            """

        # Remove all keys with an empty value because
        # Amazon's MWS does not allow such a thing.
        extra_data = remove_empty(extra_data)
        params = {
            'AWSAccessKeyId': self.access_key,
            self.ACCOUNT_TYPE: self.account_id,
            'SignatureVersion': '2',
            'Timestamp': self.get_timestamp(),
            'Version': self.version,
            'SignatureMethod': 'HmacSHA256',
        }
        params.update(extra_data)
        logger.debug("Request Parameters: {}".format(params))

        request_description = self._get_quote_params(params)
        signature = self.calc_signature(method, request_description)

        logger.debug('Domain: {} URI: {}'.format(self.domain, self.uri))
        url = '%s%s?%s&Signature=%s' % (self.domain, self.uri,
                                        request_description,
                                        urllib.quote(signature))
        headers = {'User-Agent': 'python-amazon-mws/0.0.1 (Language=Python)'}
        headers.update(kwargs.get('extra_headers', {}))

        try:
            # Some might wonder as to why i don't pass the params dict as the
            # params argument to request. My answer is, here i have to get the
            # url parsed string of params in order to sign it, so if i pass the
            # params dict as params to request, request will repeat that step
            # because it will need to convert the dict to a url parsed string,
            # so why do it twice if i can just pass the full url :).
            response = self.session.request(
                method, url, data=kwargs.get('body', ''), headers=headers)
            response.raise_for_status()
            # When retrieving data from the response object, be aware that
            # response.content returns the content in bytes while response.text
            # calls response.content and converts it to unicode.
            data = response.content

            # I do not check the headers to decide which content structure to
            # server simply because sometimes Amazon's MWS API returns XML
            # error responses with "text/plain" as the Content-Type.
            action = extra_data.get('Action')
            if not action.endswith('Result'):
                action = "{}Result".format(action)
            try:
                parsed_response = DictWrapper(data, action)
            except XMLError:
                parsed_response = DataWrapper(data, response.headers)

        except HTTPError, e:
            error = MWSError(unicode(e))
            error.response = e.response
            error.url = url
            logger.error(
                "Received {} with message: {}".format(
                    unicode(e),
                    e.response.content
                )
            )
>           raise error
E           MWSError: 503 Server Error: Service Unavailable

oscar_mws/api.py:252: MWSError
------------------------------------- Captured stderr --------------------------------------
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO Updating 1 products for seller ID A24554KR292FDV
INFO:oscar_mws:Updating 1 products for seller ID A24554KR292FDV
DEBUG Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401714952</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T13:15:31.397018+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 2</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG:oscar_mws:Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401714952</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T13:15:31.397018+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 2</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:15:52Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:15:52Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:15:52Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:53+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>93631272-9852-4c50-999c-b833b6a495fa</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:53+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>93631272-9852-4c50-999c-b833b6a495fa</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:53+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>93631272-9852-4c50-999c-b833b6a495fa</RequestId></ResponseMetadata></SubmitFeedResponse>
INFO Feed submission successful as ID 10081780532
INFO:oscar_mws:Feed submission successful as ID 10081780532
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:08Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:08Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:08Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>8411a771-42b1-4c7f-8939-c2c6869bcee0</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>8411a771-42b1-4c7f-8939-c2c6869bcee0</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>8411a771-42b1-4c7f-8939-c2c6869bcee0</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:24Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:24Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:24Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>54259a60-d927-49ef-a282-750207594444</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>54259a60-d927-49ef-a282-750207594444</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>54259a60-d927-49ef-a282-750207594444</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:39Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:39Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:39Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>9f71cf09-275a-466d-9369-c2b625757758</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>9f71cf09-275a-466d-9369-c2b625757758</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>9f71cf09-275a-466d-9369-c2b625757758</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:55Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:55Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:16:55Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1e05be8e-827f-4b4d-a964-236ed87eeb6e</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1e05be8e-827f-4b4d-a964-236ed87eeb6e</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1e05be8e-827f-4b4d-a964-236ed87eeb6e</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:11Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:11Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:11Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1669a9f9-5ce4-4779-baf4-f3a852fae4c9</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1669a9f9-5ce4-4779-baf4-f3a852fae4c9</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1669a9f9-5ce4-4779-baf4-f3a852fae4c9</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:27Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:27Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:27Z', 'FeedSubmissionIdList.Id.1': u'10081780532', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate><CompletedProcessingDate>2014-06-02T13:17:16+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1ec6ea95-4b73-44c8-97f6-30dd3247daf0</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate><CompletedProcessingDate>2014-06-02T13:17:16+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1ec6ea95-4b73-44c8-97f6-30dd3247daf0</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081780532</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:15:52+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:16:10+00:00</StartedProcessingDate><CompletedProcessingDate>2014-06-02T13:17:16+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1ec6ea95-4b73-44c8-97f6-30dd3247daf0</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Submitting inventory feed with XML:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Inventory</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Inventory><SKU>sku_1401714952</SKU><FulfillmentCenterID>AMAZON_NA</FulfillmentCenterID><Lookup>FulfillmentNetwork</Lookup><SwitchFulfillmentTo>AFN</SwitchFulfillmentTo></Inventory></Message></AmazonEnvelope>
DEBUG:oscar_mws:Submitting inventory feed with XML:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Inventory</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Inventory><SKU>sku_1401714952</SKU><FulfillmentCenterID>AMAZON_NA</FulfillmentCenterID><Lookup>FulfillmentNetwork</Lookup><SwitchFulfillmentTo>AFN</SwitchFulfillmentTo></Inventory></Message></AmazonEnvelope>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_INVENTORY_AVAILABILITY_DATA_', 'Timestamp': '2014-06-02T13:17:29Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_INVENTORY_AVAILABILITY_DATA_', 'Timestamp': '2014-06-02T13:17:29Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_INVENTORY_AVAILABILITY_DATA_', 'Timestamp': '2014-06-02T13:17:29Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:30+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>d38153cf-d7bb-4101-a40a-7f7474a4af64</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:30+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>d38153cf-d7bb-4101-a40a-7f7474a4af64</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:30+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>d38153cf-d7bb-4101-a40a-7f7474a4af64</RequestId></ResponseMetadata></SubmitFeedResponse>
INFO Feed submission successful as ID 10081789956
INFO:oscar_mws:Feed submission successful as ID 10081789956
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:45Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:45Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:17:45Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>2c0bfb8c-4f90-4b67-a79b-1e0c6a1eddfd</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>2c0bfb8c-4f90-4b67-a79b-1e0c6a1eddfd</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>2c0bfb8c-4f90-4b67-a79b-1e0c6a1eddfd</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:00Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:00Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:00Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>7a192911-d50e-4e0c-9187-8144ef423762</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>7a192911-d50e-4e0c-9187-8144ef423762</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>7a192911-d50e-4e0c-9187-8144ef423762</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:16Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:16Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:16Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>e41f809f-1a09-4ac2-b733-50d684cf1b72</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>e41f809f-1a09-4ac2-b733-50d684cf1b72</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>e41f809f-1a09-4ac2-b733-50d684cf1b72</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:32Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:32Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:32Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>0e64f229-25f0-4ac0-9c93-7214a2aa5e8e</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>0e64f229-25f0-4ac0-9c93-7214a2aa5e8e</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>0e64f229-25f0-4ac0-9c93-7214a2aa5e8e</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:47Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:47Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:18:47Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>71b706c0-204b-4185-b372-fb0c3f96c555</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>71b706c0-204b-4185-b372-fb0c3f96c555</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>71b706c0-204b-4185-b372-fb0c3f96c555</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:03Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:03Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:03Z', 'FeedSubmissionIdList.Id.1': u'10081789956', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate><CompletedProcessingDate>2014-06-02T13:19:00+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>84303119-a567-4dde-adf6-0abcad462799</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate><CompletedProcessingDate>2014-06-02T13:19:00+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>84303119-a567-4dde-adf6-0abcad462799</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081789956</FeedSubmissionId><FeedType>_POST_INVENTORY_AVAILABILITY_DATA_</FeedType><SubmittedDate>2014-06-02T13:17:29+00:00</SubmittedDate><FeedProcessingStatus>_DONE_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:17:50+00:00</StartedProcessingDate><CompletedProcessingDate>2014-06-02T13:19:00+00:00</CompletedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>84303119-a567-4dde-adf6-0abcad462799</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'IdList.Id.1': 'sku_1401714952', 'IdType': 'SellerSKU', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:05Z', 'SignatureMethod': 'HmacSHA256', 'Version': '2011-10-01', 'Action': 'GetMatchingProductForId', 'SellerId': 'A24554KR292FDV', 'MarketplaceId': u'ATVPDKIKX0DER'}
DEBUG Request Parameters: {'IdList.Id.1': 'sku_1401714952', 'IdType': 'SellerSKU', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:05Z', 'SignatureMethod': 'HmacSHA256', 'Version': '2011-10-01', 'Action': 'GetMatchingProductForId', 'SellerId': 'A24554KR292FDV', 'MarketplaceId': u'ATVPDKIKX0DER'}
DEBUG:oscar_mws.api:Request Parameters: {'IdList.Id.1': 'sku_1401714952', 'IdType': 'SellerSKU', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:05Z', 'SignatureMethod': 'HmacSHA256', 'Version': '2011-10-01', 'Action': 'GetMatchingProductForId', 'SellerId': 'A24554KR292FDV', 'MarketplaceId': u'ATVPDKIKX0DER'}
DEBUG Domain: https://mws.amazonservices.com URI: /Products/2011-10-01
DEBUG Domain: https://mws.amazonservices.com URI: /Products/2011-10-01
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /Products/2011-10-01
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetMatchingProductForIdResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01"><GetMatchingProductForIdResult Id="sku_1401714952" IdType="SellerSKU" status="Success"><Products xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01" xmlns:ns2="http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd"><Product><Identifiers><MarketplaceASIN><MarketplaceId>ATVPDKIKX0DER</MarketplaceId><ASIN>1741173426</ASIN></MarketplaceASIN></Identifiers><AttributeSets><ns2:ItemAttributes xml:lang="en-US"><ns2:Author>Universal Publishers-Explore Australia</ns2:Author><ns2:Binding>Paperback</ns2:Binding><ns2:ItemDimensions><ns2:Height Units="inches">0.00</ns2:Height><ns2:Length Units="inches">0.00</ns2:Length><ns2:Width Units="inches">0.00</ns2:Width><ns2:Weight Units="pounds">0.00</ns2:Weight></ns2:ItemDimensions><ns2:Label>Universal Publishers-Explore Australia</ns2:Label><ns2:Languages><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Unknown</ns2:Type></ns2:Language><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Original Language</ns2:Type></ns2:Language><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Published</ns2:Type></ns2:Language></ns2:Languages><ns2:ListPrice><ns2:Amount>38.95</ns2:Amount><ns2:CurrencyCode>USD</ns2:CurrencyCode></ns2:ListPrice><ns2:Manufacturer>Universal Publishers-Explore Australia</ns2:Manufacturer><ns2:NumberOfItems>1</ns2:NumberOfItems><ns2:NumberOfPages>375</ns2:NumberOfPages><ns2:PackageDimensions><ns2:Height Units="inches">1.02</ns2:Height><ns2:Length Units="inches">8.98</ns2:Length><ns2:Width Units="inches">7.48</ns2:Width><ns2:Weight Units="pounds">2.51</ns2:Weight></ns2:PackageDimensions><ns2:ProductGroup>Book</ns2:ProductGroup><ns2:ProductTypeName>ABIS_BOOK</ns2:ProductTypeName><ns2:PublicationDate>2011-01-01</ns2:PublicationDate><ns2:Publisher>Universal Publishers-Explore Australia</ns2:Publisher><ns2:SmallImage><ns2:URL>http://ecx.images-amazon.com/images/I/51tx8JXxbvL._SL75_.jpg</ns2:URL><ns2:Height Units="pixels">75</ns2:Height><ns2:Width Units="pixels">62</ns2:Width></ns2:SmallImage><ns2:Studio>Universal Publishers-Explore Australia</ns2:Studio><ns2:Title>Kayaking Around Australia</ns2:Title></ns2:ItemAttributes></AttributeSets><Relationships/><SalesRankings><SalesRank><ProductCategoryId>book_display_on_website</ProductCategoryId><Rank>3620670</Rank></SalesRank></SalesRankings></Product></Products></GetMatchingProductForIdResult><ResponseMetadata><RequestId>35135756-396d-40cc-aa9a-95d5edb75bee</RequestId></ResponseMetadata></GetMatchingProductForIdResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetMatchingProductForIdResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01"><GetMatchingProductForIdResult Id="sku_1401714952" IdType="SellerSKU" status="Success"><Products xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01" xmlns:ns2="http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd"><Product><Identifiers><MarketplaceASIN><MarketplaceId>ATVPDKIKX0DER</MarketplaceId><ASIN>1741173426</ASIN></MarketplaceASIN></Identifiers><AttributeSets><ns2:ItemAttributes xml:lang="en-US"><ns2:Author>Universal Publishers-Explore Australia</ns2:Author><ns2:Binding>Paperback</ns2:Binding><ns2:ItemDimensions><ns2:Height Units="inches">0.00</ns2:Height><ns2:Length Units="inches">0.00</ns2:Length><ns2:Width Units="inches">0.00</ns2:Width><ns2:Weight Units="pounds">0.00</ns2:Weight></ns2:ItemDimensions><ns2:Label>Universal Publishers-Explore Australia</ns2:Label><ns2:Languages><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Unknown</ns2:Type></ns2:Language><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Original Language</ns2:Type></ns2:Language><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Published</ns2:Type></ns2:Language></ns2:Languages><ns2:ListPrice><ns2:Amount>38.95</ns2:Amount><ns2:CurrencyCode>USD</ns2:CurrencyCode></ns2:ListPrice><ns2:Manufacturer>Universal Publishers-Explore Australia</ns2:Manufacturer><ns2:NumberOfItems>1</ns2:NumberOfItems><ns2:NumberOfPages>375</ns2:NumberOfPages><ns2:PackageDimensions><ns2:Height Units="inches">1.02</ns2:Height><ns2:Length Units="inches">8.98</ns2:Length><ns2:Width Units="inches">7.48</ns2:Width><ns2:Weight Units="pounds">2.51</ns2:Weight></ns2:PackageDimensions><ns2:ProductGroup>Book</ns2:ProductGroup><ns2:ProductTypeName>ABIS_BOOK</ns2:ProductTypeName><ns2:PublicationDate>2011-01-01</ns2:PublicationDate><ns2:Publisher>Universal Publishers-Explore Australia</ns2:Publisher><ns2:SmallImage><ns2:URL>http://ecx.images-amazon.com/images/I/51tx8JXxbvL._SL75_.jpg</ns2:URL><ns2:Height Units="pixels">75</ns2:Height><ns2:Width Units="pixels">62</ns2:Width></ns2:SmallImage><ns2:Studio>Universal Publishers-Explore Australia</ns2:Studio><ns2:Title>Kayaking Around Australia</ns2:Title></ns2:ItemAttributes></AttributeSets><Relationships/><SalesRankings><SalesRank><ProductCategoryId>book_display_on_website</ProductCategoryId><Rank>3620670</Rank></SalesRank></SalesRankings></Product></Products></GetMatchingProductForIdResult><ResponseMetadata><RequestId>35135756-396d-40cc-aa9a-95d5edb75bee</RequestId></ResponseMetadata></GetMatchingProductForIdResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetMatchingProductForIdResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01"><GetMatchingProductForIdResult Id="sku_1401714952" IdType="SellerSKU" status="Success"><Products xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01" xmlns:ns2="http://mws.amazonservices.com/schema/Products/2011-10-01/default.xsd"><Product><Identifiers><MarketplaceASIN><MarketplaceId>ATVPDKIKX0DER</MarketplaceId><ASIN>1741173426</ASIN></MarketplaceASIN></Identifiers><AttributeSets><ns2:ItemAttributes xml:lang="en-US"><ns2:Author>Universal Publishers-Explore Australia</ns2:Author><ns2:Binding>Paperback</ns2:Binding><ns2:ItemDimensions><ns2:Height Units="inches">0.00</ns2:Height><ns2:Length Units="inches">0.00</ns2:Length><ns2:Width Units="inches">0.00</ns2:Width><ns2:Weight Units="pounds">0.00</ns2:Weight></ns2:ItemDimensions><ns2:Label>Universal Publishers-Explore Australia</ns2:Label><ns2:Languages><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Unknown</ns2:Type></ns2:Language><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Original Language</ns2:Type></ns2:Language><ns2:Language><ns2:Name>english</ns2:Name><ns2:Type>Published</ns2:Type></ns2:Language></ns2:Languages><ns2:ListPrice><ns2:Amount>38.95</ns2:Amount><ns2:CurrencyCode>USD</ns2:CurrencyCode></ns2:ListPrice><ns2:Manufacturer>Universal Publishers-Explore Australia</ns2:Manufacturer><ns2:NumberOfItems>1</ns2:NumberOfItems><ns2:NumberOfPages>375</ns2:NumberOfPages><ns2:PackageDimensions><ns2:Height Units="inches">1.02</ns2:Height><ns2:Length Units="inches">8.98</ns2:Length><ns2:Width Units="inches">7.48</ns2:Width><ns2:Weight Units="pounds">2.51</ns2:Weight></ns2:PackageDimensions><ns2:ProductGroup>Book</ns2:ProductGroup><ns2:ProductTypeName>ABIS_BOOK</ns2:ProductTypeName><ns2:PublicationDate>2011-01-01</ns2:PublicationDate><ns2:Publisher>Universal Publishers-Explore Australia</ns2:Publisher><ns2:SmallImage><ns2:URL>http://ecx.images-amazon.com/images/I/51tx8JXxbvL._SL75_.jpg</ns2:URL><ns2:Height Units="pixels">75</ns2:Height><ns2:Width Units="pixels">62</ns2:Width></ns2:SmallImage><ns2:Studio>Universal Publishers-Explore Australia</ns2:Studio><ns2:Title>Kayaking Around Australia</ns2:Title></ns2:ItemAttributes></AttributeSets><Relationships/><SalesRankings><SalesRank><ProductCategoryId>book_display_on_website</ProductCategoryId><Rank>3620670</Rank></SalesRank></SalesRankings></Product></Products></GetMatchingProductForIdResult><ResponseMetadata><RequestId>35135756-396d-40cc-aa9a-95d5edb75bee</RequestId></ResponseMetadata></GetMatchingProductForIdResponse>
DEBUG ASIN in response: 1741173426
DEBUG:oscar_mws:ASIN in response: 1741173426
INFO Updating 1 products for seller ID A24554KR292FDV
INFO:oscar_mws:Updating 1 products for seller ID A24554KR292FDV
DEBUG Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401714952</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T13:15:31.397018+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 2</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG:oscar_mws:Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401714952</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T13:15:31.397018+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 2</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:19:05Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:19:05Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:19:05Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>e566ad38-bc72-4b18-b66a-972650c086c3</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>e566ad38-bc72-4b18-b66a-972650c086c3</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>e566ad38-bc72-4b18-b66a-972650c086c3</RequestId></ResponseMetadata></SubmitFeedResponse>
INFO Feed submission successful as ID 10081799690
INFO:oscar_mws:Feed submission successful as ID 10081799690
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:21Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:21Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:21Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>ee77e6c8-5873-43df-9ca3-24a6954a9be7</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>ee77e6c8-5873-43df-9ca3-24a6954a9be7</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>ee77e6c8-5873-43df-9ca3-24a6954a9be7</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:37Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:37Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:37Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1a63b5ca-0b3a-480c-82c6-c65907c132d3</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1a63b5ca-0b3a-480c-82c6-c65907c132d3</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>1a63b5ca-0b3a-480c-82c6-c65907c132d3</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:52Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:52Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:19:52Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>8b0de2ea-1bad-47ed-b58d-fdd66f61b878</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>8b0de2ea-1bad-47ed-b58d-fdd66f61b878</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081799690</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:19:06+00:00</SubmittedDate><FeedProcessingStatus>_IN_PROGRESS_</FeedProcessingStatus><StartedProcessingDate>2014-06-02T13:19:11+00:00</StartedProcessingDate></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>8b0de2ea-1bad-47ed-b58d-fdd66f61b878</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:08Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:08Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:08Z', 'FeedSubmissionIdList.Id.1': u'10081799690', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
ERROR Received 503 Server Error: Service Unavailable with message: <?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f5b8a9dc-e309-491b-a52c-e237df32bbbf</RequestID>
</ErrorResponse>

ERROR Received 503 Server Error: Service Unavailable with message: <?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f5b8a9dc-e309-491b-a52c-e237df32bbbf</RequestID>
</ErrorResponse>

ERROR:oscar_mws.api:Received 503 Server Error: Service Unavailable with message: <?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f5b8a9dc-e309-491b-a52c-e237df32bbbf</RequestID>
</ErrorResponse>

ERROR updating status of feed 10081799690 failed
Traceback (most recent call last):
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/feeds/gateway.py", line 159, in update_feed_submission
    feedids=[submission.submission_id]
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 351, in get_feed_submission_list
    return self.make_request(data)
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 252, in make_request
    raise error
MWSError: 503 Server Error: Service Unavailable
ERROR:oscar_mws:updating status of feed 10081799690 failed
Traceback (most recent call last):
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/feeds/gateway.py", line 159, in update_feed_submission
    feedids=[submission.submission_id]
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 351, in get_feed_submission_list
    return self.make_request(data)
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 252, in make_request
    raise error
MWSError: 503 Server Error: Service Unavailable
________________________ TestAFulfillmentOrder.test_can_be_created _________________________

self = <tests.integration.test_fulfillment.TestAFulfillmentOrder testMethod=test_can_be_created>

    def test_can_be_created(self):
        submissions = feeds_gw.submit_product_feed(
            products=[self.product], marketplaces=[self.marketplace])
>       self._wait_until_submission_processed(submissions[0])

tests/integration/test_fulfillment.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <tests.integration.test_fulfillment.TestAFulfillmentOrder testMethod=test_can_be_created>
submission = <FeedSubmission: Feed #10081806152>

    def _wait_until_submission_processed(self, submission):
        while submission.processing_status not in [am.STATUS_DONE,
                                                   am.STATUS_CANCELLED]:
            time.sleep(INTEGRATION_WAIT_TIME)
>           submission = feeds_gw.update_feed_submission(submission)

tests/integration/test_fulfillment.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

submission = <FeedSubmission: Feed #10081806152>

    def update_feed_submission(submission):
        """
        Retrieves the status of a submitted MWS feed stored in *submission* and
        updates the ``processing_status`` of the feed submission.

        :param FeedSubmission submission: a FeedSubmission instance
        :rtype FeedSubmission: updated submission instanceh
        :raises MWError: if an error occurs requesting details from MWS
        """
        seller_id = submission.merchant.seller_id
        feeds_api = get_merchant_connection(seller_id).feeds

        try:
            response = feeds_api.get_feed_submission_list(
>               feedids=[submission.submission_id]
            ).parsed

oscar_mws/feeds/gateway.py:159: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <oscar_mws.api.Feeds object at 0x104215990>, feedids = ['10081806152']
max_count = None, feedtypes = None, processingstatuses = None, fromdate = None
todate = None

    def get_feed_submission_list(self, feedids=None, max_count=None,
                                 feedtypes=None, processingstatuses=None,
                                 fromdate=None, todate=None):
        """
            Returns a list of all feed submissions submitted in the previous 90
            days. That match the query parameters.
            """

        data = dict(Action='GetFeedSubmissionList',
                    MaxCount=max_count,
                    SubmittedFromDate=fromdate,
                    SubmittedToDate=todate,)
        data.update(self.enumerate_param('FeedSubmissionIdList.Id', feedids))
        data.update(self.enumerate_param('FeedTypeList.Type', feedtypes))
        data.update(self.enumerate_param('FeedProcessingStatusList.Status',
                                         processingstatuses))
>       return self.make_request(data)

oscar_mws/api.py:351: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <oscar_mws.api.Feeds object at 0x104215990>
extra_data = {'Action': 'GetFeedSubmissionList', 'FeedSubmissionIdList.Id.1': '10081806152'}
method = 'GET', kwargs = {}
params = {'AWSAccessKeyId': 'AKIAJLDEYZG6KV7FZOTA', 'Action': 'GetFeedSubmissionList', 'FeedSubmissionIdList.Id.1': '10081806152', 'Merchant': 'A24554KR292FDV', ...}
request_description = 'AWSAccessKeyId=AKIAJLDEYZG6KV7FZOTA&Action=GetFeedSubmissionList&FeedSubmissionIdList.Id.1=10081806152&Merchant=A24554KR292FDV&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2014-06-02T13%3A20%3A40Z&Version=2009-01-01'
signature = 'jHmqzkh+9ZglmZ7+CZAZredO74J916vHTv8z4f0Gc8s='
url = 'https://mws.amazonservices.com/?AWSAccessKeyId=AKIAJLDEYZG6KV7FZOTA&Action=GetFeedSubmissionList&FeedSubmissionIdList...n=2&Timestamp=2014-06-02T13%3A20%3A40Z&Version=2009-01-01&Signature=jHmqzkh%2B9ZglmZ7%2BCZAZredO74J916vHTv8z4f0Gc8s%3D'
headers = {'User-Agent': 'python-amazon-mws/0.0.1 (Language=Python)'}
response = <Response [503]>

    def make_request(self, extra_data, method="GET", **kwargs):
        """
            Make request to Amazon MWS API with these parameters
            """

        # Remove all keys with an empty value because
        # Amazon's MWS does not allow such a thing.
        extra_data = remove_empty(extra_data)
        params = {
            'AWSAccessKeyId': self.access_key,
            self.ACCOUNT_TYPE: self.account_id,
            'SignatureVersion': '2',
            'Timestamp': self.get_timestamp(),
            'Version': self.version,
            'SignatureMethod': 'HmacSHA256',
        }
        params.update(extra_data)
        logger.debug("Request Parameters: {}".format(params))

        request_description = self._get_quote_params(params)
        signature = self.calc_signature(method, request_description)

        logger.debug('Domain: {} URI: {}'.format(self.domain, self.uri))
        url = '%s%s?%s&Signature=%s' % (self.domain, self.uri,
                                        request_description,
                                        urllib.quote(signature))
        headers = {'User-Agent': 'python-amazon-mws/0.0.1 (Language=Python)'}
        headers.update(kwargs.get('extra_headers', {}))

        try:
            # Some might wonder as to why i don't pass the params dict as the
            # params argument to request. My answer is, here i have to get the
            # url parsed string of params in order to sign it, so if i pass the
            # params dict as params to request, request will repeat that step
            # because it will need to convert the dict to a url parsed string,
            # so why do it twice if i can just pass the full url :).
            response = self.session.request(
                method, url, data=kwargs.get('body', ''), headers=headers)
            response.raise_for_status()
            # When retrieving data from the response object, be aware that
            # response.content returns the content in bytes while response.text
            # calls response.content and converts it to unicode.
            data = response.content

            # I do not check the headers to decide which content structure to
            # server simply because sometimes Amazon's MWS API returns XML
            # error responses with "text/plain" as the Content-Type.
            action = extra_data.get('Action')
            if not action.endswith('Result'):
                action = "{}Result".format(action)
            try:
                parsed_response = DictWrapper(data, action)
            except XMLError:
                parsed_response = DataWrapper(data, response.headers)

        except HTTPError, e:
            error = MWSError(unicode(e))
            error.response = e.response
            error.url = url
            logger.error(
                "Received {} with message: {}".format(
                    unicode(e),
                    e.response.content
                )
            )
>           raise error
E           MWSError: 503 Server Error: Service Unavailable

oscar_mws/api.py:252: MWSError
------------------------------------- Captured stderr --------------------------------------
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO Updating 1 products for seller ID A24554KR292FDV
INFO:oscar_mws:Updating 1 products for seller ID A24554KR292FDV
DEBUG Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401715209</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T13:15:31.397018+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 3</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG:oscar_mws:Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401715209</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T13:15:31.397018+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 3</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:20:09Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:20:09Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T13:20:09Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081806152</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:20:10+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>d9029969-8631-40ac-975c-75cff16b32a7</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081806152</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:20:10+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>d9029969-8631-40ac-975c-75cff16b32a7</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10081806152</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:20:10+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>d9029969-8631-40ac-975c-75cff16b32a7</RequestId></ResponseMetadata></SubmitFeedResponse>
INFO Feed submission successful as ID 10081806152
INFO:oscar_mws:Feed submission successful as ID 10081806152
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:25Z', 'FeedSubmissionIdList.Id.1': u'10081806152', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:25Z', 'FeedSubmissionIdList.Id.1': u'10081806152', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:25Z', 'FeedSubmissionIdList.Id.1': u'10081806152', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081806152</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:20:10+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>34a9a37c-52ed-4beb-a49d-d96e2a521879</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081806152</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:20:10+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>34a9a37c-52ed-4beb-a49d-d96e2a521879</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<GetFeedSubmissionListResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><GetFeedSubmissionListResult><NextToken></NextToken><HasNext>false</HasNext><FeedSubmissionInfo><FeedSubmissionId>10081806152</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T13:20:10+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></GetFeedSubmissionListResult><ResponseMetadata><RequestId>34a9a37c-52ed-4beb-a49d-d96e2a521879</RequestId></ResponseMetadata></GetFeedSubmissionListResponse>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:40Z', 'FeedSubmissionIdList.Id.1': u'10081806152', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:40Z', 'FeedSubmissionIdList.Id.1': u'10081806152', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T13:20:40Z', 'FeedSubmissionIdList.Id.1': u'10081806152', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'GetFeedSubmissionList'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
ERROR Received 503 Server Error: Service Unavailable with message: <?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f23466ac-1eb2-49cc-97bd-d3be80da97f0</RequestID>
</ErrorResponse>

ERROR Received 503 Server Error: Service Unavailable with message: <?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f23466ac-1eb2-49cc-97bd-d3be80da97f0</RequestID>
</ErrorResponse>

ERROR:oscar_mws.api:Received 503 Server Error: Service Unavailable with message: <?xml version="1.0"?>
<ErrorResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
  <Error>
    <Type></Type>
    <Code>RequestThrottled</Code>
    <Message>Request is throttled</Message>
  </Error>
  <RequestID>f23466ac-1eb2-49cc-97bd-d3be80da97f0</RequestID>
</ErrorResponse>

ERROR updating status of feed 10081806152 failed
Traceback (most recent call last):
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/feeds/gateway.py", line 159, in update_feed_submission
    feedids=[submission.submission_id]
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 351, in get_feed_submission_list
    return self.make_request(data)
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 252, in make_request
    raise error
MWSError: 503 Server Error: Service Unavailable
ERROR:oscar_mws:updating status of feed 10081806152 failed
Traceback (most recent call last):
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/feeds/gateway.py", line 159, in update_feed_submission
    feedids=[submission.submission_id]
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 351, in get_feed_submission_list
    return self.make_request(data)
  File "/Users/nateaune/Dropbox/code/django-oscar-mws/oscar_mws/api.py", line 252, in make_request
    raise error
MWSError: 503 Server Error: Service Unavailable
======================== 57 tests deselected by "-m 'integration'" =========================
=================== 2 failed, 3 passed, 57 deselected in 313.02 seconds ====================

@roadsideseb
Copy link
Contributor

I've just checked the throttling limit for GetSubmissionResult in the MWS docs which states that the quota recovers at one request per minute. Could you set the INTEGRATION_WAIT_TIME in conftest.py to 60 and try again? It seems that the current setup is hitting the request limit because MWS takes quite long to process received feeds.

@natea
Copy link
Author

natea commented Jun 2, 2014

I changed the INTEGRATION_WAIT_TIME to 60 and re-ran the tests. I'm not getting the request is throttled errors anymore, but still getting failures:

(django-oscar-mws)➜  django-oscar-mws git:(master) ✗ py.test -m integration
=================================== test session starts ====================================
platform darwin -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2
plugins: cache, cov, django, pep8
collected 62 items 

tests/integration/test_feeds.py F.
tests/integration/test_fulfillment.py .
tests/integration/test_marketplaces.py ..

========================================= FAILURES =========================================
________________________ TestSubmittingAFeed.test_can_be_cancelled _________________________

self = <tests.integration.test_feeds.TestSubmittingAFeed testMethod=test_can_be_cancelled>

    def test_can_be_cancelled(self):
        submissions = feeds_gw.submit_product_feed(
            products=[self.product],
            marketplaces=[self.marketplace]
        )
        submission = submissions[0]
        self.assertEquals(submission.processing_status, am.STATUS_SUBMITTED)

        # we need to wait a bit before we can cancel the submission just to
        # make sure that it is available in the system
        time.sleep(2)
        submission = feeds_gw.cancel_submission(submission)

        # we need to wait again to make sure we get the proper result for the
        # feed submission ID
        time.sleep(INTEGRATION_WAIT_TIME)
>       submission = feeds_gw.update_feed_submission(submission)

tests/integration/test_feeds.py:67: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

submission = <FeedSubmission: Feed #10082157840>

    def update_feed_submission(submission):
        """
        Retrieves the status of a submitted MWS feed stored in *submission* and
        updates the ``processing_status`` of the feed submission.

        :param FeedSubmission submission: a FeedSubmission instance
        :rtype FeedSubmission: updated submission instanceh
        :raises MWError: if an error occurs requesting details from MWS
        """
>       seller_id = submission.merchant.seller_id
E       AttributeError: 'NoneType' object has no attribute 'seller_id'

oscar_mws/feeds/gateway.py:154: AttributeError
------------------------------------- Captured stderr --------------------------------------
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO:oscar.alerts:Sending alerts for 'Kayaking Around Australia'
INFO:oscar.alerts:Sent 0 notifications and 0 emails
INFO Updating 1 products for seller ID A24554KR292FDV
INFO:oscar_mws:Updating 1 products for seller ID A24554KR292FDV
DEBUG Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401718372</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T14:12:51.724937+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 1</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG:oscar_mws:Product feed XML to be submitted:
<?xml version='1.0' encoding='utf-8'?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"><Header><DocumentVersion>1.01</DocumentVersion><MerchantIdentifier>A24554KR292FDV</MerchantIdentifier></Header><MessageType>Product</MessageType><PurgeAndReplace>false</PurgeAndReplace><Message><MessageID>1</MessageID><OperationType>Update</OperationType><Product><SKU>sku_1401718372</SKU><StandardProductID><Type>UPC</Type><Value>9781741173420</Value></StandardProductID><ReleaseDate>2014-06-02T14:12:51.724937+00:00</ReleaseDate><DescriptionData><Title>Kayaking Around Australia</Title><ItemType>Dummy product class 1</ItemType></DescriptionData></Product></Message></AmazonEnvelope>
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T14:12:52Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T14:12:52Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'FeedType': '_POST_PRODUCT_DATA_', 'Timestamp': '2014-06-02T14:12:52Z', 'MarketplaceIdList.Id.1': 'ATVPDKIKX0DER', 'PurgeAndReplace': 'false', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'SubmitFeed'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10082157840</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T14:12:54+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>2c9e274c-ebde-40b2-bc9f-5a85bd3db80a</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10082157840</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T14:12:54+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>2c9e274c-ebde-40b2-bc9f-5a85bd3db80a</RequestId></ResponseMetadata></SubmitFeedResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<SubmitFeedResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><SubmitFeedResult><FeedSubmissionInfo><FeedSubmissionId>10082157840</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T14:12:54+00:00</SubmittedDate><FeedProcessingStatus>_SUBMITTED_</FeedProcessingStatus></FeedSubmissionInfo></SubmitFeedResult><ResponseMetadata><RequestId>2c9e274c-ebde-40b2-bc9f-5a85bd3db80a</RequestId></ResponseMetadata></SubmitFeedResponse>
INFO Feed submission successful as ID 10082157840
INFO:oscar_mws:Feed submission successful as ID 10082157840
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T14:12:56Z', 'FeedSubmissionIdList.Id.1': u'10082157840', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'CancelFeedSubmissions'}
DEBUG Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T14:12:56Z', 'FeedSubmissionIdList.Id.1': u'10082157840', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'CancelFeedSubmissions'}
DEBUG:oscar_mws.api:Request Parameters: {'Merchant': 'A24554KR292FDV', 'SignatureVersion': '2', 'AWSAccessKeyId': u'AKIAJLDEYZG6KV7FZOTA', 'Timestamp': '2014-06-02T14:12:56Z', 'FeedSubmissionIdList.Id.1': u'10082157840', 'SignatureMethod': 'HmacSHA256', 'Version': '2009-01-01', 'Action': 'CancelFeedSubmissions'}
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG Domain: https://mws.amazonservices.com URI: /
DEBUG:oscar_mws.api:Domain: https://mws.amazonservices.com URI: /
INFO:requests.packages.urllib3.connectionpool:Starting new HTTPS connection (1): mws.amazonservices.com
DEBUG Received response: <?xml version="1.0"?>
<CancelFeedSubmissionsResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><CancelFeedSubmissionsResult><Count>1</Count><FeedSubmissionInfo><FeedSubmissionId>10082157840</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T14:12:53+00:00</SubmittedDate><FeedProcessingStatus>_CANCELLED_</FeedProcessingStatus></FeedSubmissionInfo></CancelFeedSubmissionsResult><ResponseMetadata><RequestId>9f7e8f3d-2ff7-4a6e-88d2-1aadc8bd9588</RequestId></ResponseMetadata></CancelFeedSubmissionsResponse>
DEBUG Received response: <?xml version="1.0"?>
<CancelFeedSubmissionsResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><CancelFeedSubmissionsResult><Count>1</Count><FeedSubmissionInfo><FeedSubmissionId>10082157840</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T14:12:53+00:00</SubmittedDate><FeedProcessingStatus>_CANCELLED_</FeedProcessingStatus></FeedSubmissionInfo></CancelFeedSubmissionsResult><ResponseMetadata><RequestId>9f7e8f3d-2ff7-4a6e-88d2-1aadc8bd9588</RequestId></ResponseMetadata></CancelFeedSubmissionsResponse>
DEBUG:oscar_mws.api:Received response: <?xml version="1.0"?>
<CancelFeedSubmissionsResponse xmlns="http://mws.amazonaws.com/doc/2009-01-01/"><CancelFeedSubmissionsResult><Count>1</Count><FeedSubmissionInfo><FeedSubmissionId>10082157840</FeedSubmissionId><FeedType>_POST_PRODUCT_DATA_</FeedType><SubmittedDate>2014-06-02T14:12:53+00:00</SubmittedDate><FeedProcessingStatus>_CANCELLED_</FeedProcessingStatus></FeedSubmissionInfo></CancelFeedSubmissionsResult><ResponseMetadata><RequestId>9f7e8f3d-2ff7-4a6e-88d2-1aadc8bd9588</RequestId></ResponseMetadata></CancelFeedSubmissionsResponse>
======================== 57 tests deselected by "-m 'integration'" =========================
=================== 1 failed, 4 passed, 57 deselected in 809.05 seconds ====================

@roadsideseb
Copy link
Contributor

This should be fixed in 7d30220, can you give it another go and let me know if it works for you now as well.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants