def test_get_distribution_centers_success(self):
        """With correct values, are valid distribution centers returned?"""

        # Get distribution centers
        distribution_centers = distribution_center_service.get_distribution_centers(
            self.loopback_token)

        # TODO: Update to use assertIsInstance(a,b)
        # Check all expected object values are present
        distribution_centers_json = loads(distribution_centers)
        # Check that the distribution centers are valid
        for distribution_center_json in distribution_centers_json:
            self.assertTrue(distribution_center_json.get('id'))

            # Check that distribution center address is valid, if present
            if distribution_center_json.get('address'):
                self.assertTrue(
                    distribution_center_json.get('address').get('city'))
                self.assertTrue(
                    distribution_center_json.get('address').get('state'))
                self.assertTrue(
                    distribution_center_json.get('address').get('country'))
                self.assertTrue(
                    distribution_center_json.get('address').get('latitude'))
                self.assertTrue(
                    distribution_center_json.get('address').get('longitude'))

            # Check that distribution center contact is valid, if present
            if distribution_center_json.get('contact'):
                self.assertTrue(
                    distribution_center_json.get('contact').get('name'))
Beispiel #2
0
    def test_create_shipment_success(self):
        """With correct values, is a valid shipment created?"""

        # Get retailers and distribution centers
        retailers = retailer_service.get_retailers(self.loopback_token)
        distribution_centers = distribution_center_service.get_distribution_centers(
            self.loopback_token)

        # Create shipment
        shipment = dict()
        shipment['fromId'] = loads(distribution_centers)[0].get('id')
        shipment['toId'] = loads(retailers)[0].get('id')
        shipment['estimatedTimeOfArrival'] = "2016-07-14"
        created_shipment = shipment_service.create_shipment(
            self.loopback_token, shipment)

        # TODO: Update to use assertIsInstance(a,b)
        # Check all expected object values are present
        shipment_json = loads(created_shipment)
        # Check that the shipment is valid
        self.assertTrue(shipment_json.get('id'))
        self.assertTrue(shipment_json.get('status'))
        self.assertTrue(shipment_json.get('createdAt'))
        self.assertTrue(shipment_json.get('fromId'))
        self.assertTrue(shipment_json.get('toId'))
    def test_get_distribution_center_inventory_invalid_token(self):
        """With an invalid token, are correct errors thrown?"""

        # Get distribution centers
        distribution_centers = distribution_center_service.get_distribution_centers(self.loopback_token)
        dc_id = loads(distribution_centers)[0].get('id')

        # Attempt to get retailer inventory with invalid token
        self.assertRaises(AuthenticationException,
                          distribution_center_service.get_distribution_center_inventory,
                          utils.get_bad_token(), dc_id)
def get_distribution_centers():
    """
    Get all distribution center objects.

    :return: [{
        "id": "D2",
        "address": {Address},
        "contact": {Contact}
    }, {...}]

    """

    distribution_centers = distribution_center_service.get_distribution_centers(token=g.auth['loopback_token'])
    return Response(distribution_centers,
                    status=200,
                    mimetype='application/json')
Beispiel #5
0
    def test_get_shipments_distribution_center_id_filter_success(self):
        """Are correct distribution center's shipments returned?"""

        # Get shipments intended for specific distribution center
        distribution_centers = distribution_center_service.get_distribution_centers(
            self.loopback_token)
        dc_id_filter = loads(distribution_centers)[0].get('id')
        shipments = shipment_service.get_shipments(self.loopback_token,
                                                   dc_id=dc_id_filter)

        # TODO: Update to use assertIsInstance(a,b)
        # Check all expected object values are present
        shipments_json = loads(shipments)
        # Check that the shipments have correct retailer ID (toId)
        for shipment_json in shipments_json:
            self.assertTrue(shipment_json.get('fromId') == dc_id_filter)
    def test_get_distribution_center_inventory_success(self):
        """With correct values, is valid inventory returned?"""

        # Get distribution center
        distribution_centers = distribution_center_service.get_distribution_centers(self.loopback_token)
        dc_id = loads(distribution_centers)[0].get('id')
        inventory = distribution_center_service.get_distribution_center_inventory(self.loopback_token, dc_id)

        # TODO: Update to use assertIsInstance(a,b)
        # Check all expected object values are present
        inventories_json = loads(inventory)
        for inventory_json in inventories_json:
            self.assertTrue(inventory_json.get('id'))
            self.assertIsInstance(inventory_json.get('quantity'), IntType)
            self.assertTrue(inventory_json.get('productId'))
            self.assertTrue(inventory_json.get('locationId'))
            self.assertTrue(inventory_json.get('locationType'))
Beispiel #7
0
    def test_create_shipment_invalid_token(self):
        """With an invalid token, are correct errors thrown?"""

        # Get retailers and distribution centers
        retailers = retailer_service.get_retailers(self.loopback_token)
        distribution_centers = distribution_center_service.get_distribution_centers(
            self.loopback_token)

        # Create shipment
        shipment = dict()
        shipment['fromId'] = loads(distribution_centers)[0].get('id')
        shipment['toId'] = loads(retailers)[0].get('id')
        shipment['estimatedTimeOfArrival'] = "2016-07-14"
        created_shipment = shipment_service.create_shipment(
            self.loopback_token, shipment)

        # Attempt to create a shipment with invalid token
        self.assertRaises(AuthenticationException,
                          shipment_service.create_shipment,
                          utils.get_bad_token(), shipment)
Beispiel #8
0
    def test_create_shipment_invalid_ids(self):
        """With an invalid retailer/distribution center IDs, are correct errors thrown?"""

        # Get retailers and distribution centers
        retailers = retailer_service.get_retailers(self.loopback_token)
        distribution_centers = distribution_center_service.get_distribution_centers(
            self.loopback_token)

        # Create invalid shipments
        shipment_invalid_retailer = dict()
        shipment_invalid_retailer['fromId'] = loads(
            distribution_centers)[0].get('id')
        shipment_invalid_retailer['toId'] = "123321"
        shipment_invalid_dist = dict()
        shipment_invalid_dist['fromId'] = "123321"
        shipment_invalid_dist['toId'] = loads(retailers)[0].get('id')

        # Attempt to create a shipment with invalid IDs
        self.assertRaises(UnprocessableEntityException,
                          shipment_service.create_shipment,
                          self.loopback_token, shipment_invalid_retailer)
        self.assertRaises(UnprocessableEntityException,
                          shipment_service.create_shipment,
                          self.loopback_token, shipment_invalid_dist)