def test_update_order__failure_non_existing_empty_orders(self): user = add_user('*****@*****.**', TEST_USER_PSW) add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') uuid = str(uuid4()) order = { "order": { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 5 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 1 }], 'delivery_address': '429994bf-784e-47cc-a823-e0c394b823e8', 'user': '******' } } data = format_jsonapi_request('order', order) path = '/orders/{}'.format(uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', '*****@*****.**', TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == NOT_FOUND
def test_update_order__non_existing_items(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=2, category='scarpe', ) item2 = Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=1, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user) add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order1 = Order.create(delivery_address=addr, user=user) order1.add_item(item1, 2).add_item(item2) order_item_before = [o.json() for o in OrderItem.select()] # order_uuid = str(order1.uuid) order = { 'relationships': { 'items': [{ 'id': '577ad826-a79d-41e9-a5b2-7955bcf00000', 'type': 'item', 'quantity': 1 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf2222', 'type': 'item', 'quantity': 1 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf9999', 'type': 'item', 'quantity': 2 }], 'delivery_address': { 'type': 'address', 'id': '429994bf-784e-47cc-a823-e0c394b823e8' }, 'user': { 'type': 'user', 'id': '86ba7e70-b3c0-4c9c-8d26-a14f49360e47' } } } data = format_jsonapi_request('order', order) path = 'orders/{}'.format(order1.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', user.email, TEST_USER_PSW, 'application/json', json.dumps(data)) order_item_after = [o.json() for o in OrderItem.select()] assert resp.status_code == BAD_REQUEST assert order_item_before == order_item_after
def test_delete_order__success_admin_not_own_order(self): user = add_user('*****@*****.**', TEST_USER_PSW) addr_A = add_address(user=user) addr_B = add_address(user=user) item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=2, category='scarpe', ) order1 = Order.create(delivery_address=addr_A, user=user) order1.add_item(item1, 2) order2 = Order.create(delivery_address=addr_B, user=user) user_B = add_admin_user('*****@*****.**', TEST_USER_PSW) path = 'orders/{}'.format(order1.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'DELETE', user_B.email, TEST_USER_PSW, None, None) assert resp.status_code == NO_CONTENT assert len(Order.select()) == 1 assert len(OrderItem.select()) == 0 assert Order.get(uuid=order2.uuid)
def test_put_address__success(self): addr_id = '943d754e-5826-4d5c-b878-47edc478b789' user = add_user('*****@*****.**', '123', id='943d754e-5826-4d5c-b878-47edc478b789') add_address(user, city="Firenze", post_code='50132', address="Via Rossi 10", id=addr_id) addr1 = new_addr(user, city="Roma", post_code="10000", address="Via Bianchi 20") addr1 = format_jsonapi_request('address', addr1) resp = open_with_auth(self.app, '/addresses/{}'.format(addr_id), 'PATCH', user.email, TEST_USER_PSW, data=json.dumps(addr1), content_type='application/json') assert resp.status_code == OK upd_addr = Address.get(Address.uuid == addr_id).json() expected_result = EXPECTED_RESULTS['put_address__success'] # Check that the response data is what is expected and is also # the same as what has ben actually saved assert_valid_response(resp.data, expected_result) assert expected_result == json.loads(upd_addr)
def test_get_addresses_list__success(self): add_address( self.user, id='4373d5d7-cae5-42bc-b218-d6fc6d18626f') addr_list = [a for a in Address.select()] data = AddressSchema.jsonapi_list(addr_list) expected_result = EXPECTED_ADDRESSES['get_addresses_list__success'] assert_valid_response(data, expected_result)
def test_create_order__success(self): Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=4, category='scarpe', ) Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=10, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW, id='e736a9a6-448b-4b92-9e38-4cf745b066db') add_address(user=user, id='8473fbaa-94f0-46db-939f-faae898f001c') order = { 'relationships': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 4 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 10 }], 'delivery_address': { 'type': 'address', 'id': '8473fbaa-94f0-46db-939f-faae898f001c' }, 'user': { 'type': 'user', 'id': 'e736a9a6-448b-4b92-9e38-4cf745b066db' } } } data = format_jsonapi_request('order', order) path = 'orders/' resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'POST', user.email, TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == CREATED assert len(Order.select()) == 1 assert len(OrderItem.select()) == 2 order = Order.get() expected_result = EXPECTED_RESULTS['create_order__success'] assert_valid_response(resp.data, expected_result)
def test_create_order__failure_user_auth(self): Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=4, category='scarpe', ) Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=10, category='scarpe', ) user = add_user('*****@*****.**', TEST_USER_PSW, id='e736a9a6-448b-4b92-9e38-4cf745b066db') other_user = add_user('*****@*****.**', TEST_USER_PSW, id='d41ad9db-9d60-45c6-9fa6-51f66cd3d99a') add_address(user=user, id='8473fbaa-94f0-46db-939f-faae898f001c') order = { 'relationships': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 4 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 10 }], 'delivery_address': { 'type': 'address', 'id': '8473fbaa-94f0-46db-939f-faae898f001c' }, 'user': { 'type': 'user', 'id': str(other_user.uuid) } } } data = format_jsonapi_request('order', order) path = 'orders/' resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'POST', user.email, TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == UNAUTHORIZED assert len(Order.select()) == 0 assert len(OrderItem.select()) == 0
def test_update_order__remove_item_without_delete(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=10, category='scarpe', ) item2 = Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=20, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user, id='86ba7e70-b3c0-4c9c-8d26-a14f49360e47') add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order = Order.create( delivery_address=addr, user=user, ).add_item(item1, 10).add_item(item2, 20) post_data = { "relationships": { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 0, }], 'delivery_address': { 'type': 'address', 'id': '429994bf-784e-47cc-a823-e0c394b823e8', } } } post_data = format_jsonapi_request('order', post_data) path = 'orders/{}'.format(order.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', user.email, TEST_USER_PSW, 'application/json', json.dumps(post_data)) assert resp.status_code == OK expected_result = EXPECTED_RESULTS[ 'update_order__remove_item_without_delete'] assert_valid_response(resp.data, expected_result) assert len(order.order_items) == 1 assert order.order_items[0].quantity == 20
def test_get_order__success(self): user = add_user(None, TEST_USER_PSW, id='f79d9cd9-d5a3-4285-b6c0-54e0a8497b2a') addr_A = add_address(user=user, id='fe17b62d-9e02-4889-862f-5b3323e689f5') addr_B = add_address(user=user, city='Firenze', post_code='50132', address='Via Rossi 10', phone='055432433', id='03e071e4-e89e-46a3-8dfd-3da1bd52c02f') item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=3, category='scarpe', ) item2 = Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=30, category='accessori', ) order1 = Order.create( delivery_address=addr_A, user=user, uuid='b975ed38-f426-4965-8633-85a48442aaa5', ).add_item(item1, 2) order2 = Order.create( delivery_address=addr_B, user=user, uuid='c121e159-1d88-49b0-a36c-b2169ac69474', ).add_item(item1).add_item(item2, 2) resp = self.app.get('/orders/{}'.format(order1.uuid)) expected_result = EXPECTED_RESULTS['get_order__success'] assert resp.status_code == OK assert_valid_response(resp.data, expected_result) resp2 = self.app.get('/orders/{}'.format(order2.uuid)) expected_result2 = EXPECTED_RESULTS['get_order__success_2'] assert resp.status_code == OK assert json.loads(resp2.data) == expected_result2
def test_get_orders__success(self): item = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=12, category='accessori', ) user = add_user(None, TEST_USER_PSW, id='f3f72634-7054-43ef-9119-9e8f54a9531e') addr = add_address(user=user, id='85c6cba6-3ddd-4847-9d07-1337ff4e8506') Order.create(delivery_address=addr, user=user, uuid='06451e0a-8fa2-40d2-8c51-1af50d369ca6').add_item( item, 2) Order.create(delivery_address=addr, user=user, uuid='429994bf-784e-47cc-a823-e0c394b823e8').add_item( item, 5) resp = self.app.get('/orders/') expected_result = EXPECTED_RESULTS['get_orders__success'] assert resp.status_code == OK assert_valid_response(resp.data, expected_result)
def test_get_order__non_existing(self): user = add_user(None, TEST_USER_PSW) addr = add_address(user=user) Order.create(delivery_address=addr, user=user) resp = self.app.get('/orders/{}'.format(uuid4())) assert resp.status_code == NOT_FOUND
def setup_method(self): super(TestOrderSchema, self).setup_method() # Mock data for tests self.user = add_user( **USER_TEST_DICT, id='cfe57aa6-76c6-433d-93fe-443363978904', ) self.addr = add_address( self.user, id='27e375f4-3d54-458c-91e4-d8a4fdf3b032', ) self.item1 = Item.create( uuid='25da606b-dbd3-45e1-bb23-ff1f84a5622a', name='Item 1', description='Item 1 description', price=5.24, availability=10, category='scarpe', ) self.item2 = Item.create( uuid='08bd8de0-a4ac-459d-956f-cf6d8b8a7507', name='Item 2', description='Item 2 description', price=8, availability=10, category='scarpe', )
def test_update_order__failure_non_existing(self): user = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') Order.create(delivery_address=addr, user=user) order_uuid = str(uuid4()) order = { 'relationships': { 'items': [ { 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 5 }, ], } } data = format_jsonapi_request('order', order) path = 'orders/{}'.format(order_uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', '*****@*****.**', TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == NOT_FOUND
def test_update_order_empty_items_list__fail(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=2, category='scarpe', ) user = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order = Order.create(delivery_address=addr, user=user).add_item(item1, 2) order_uuid = str(order.uuid) order_data = { "order": { "uuid": order_uuid, 'items': [], 'delivery_address': '429994bf-784e-47cc-a823-e0c394b823e8', 'user': str(user.uuid) } } path = 'orders/{}'.format(order_uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', '*****@*****.**', TEST_USER_PSW, 'application/json', json.dumps(order_data)) assert resp.status_code == BAD_REQUEST assert len(order.order_items) == 1
def setup_method(self): super(TestUserSchema, self).setup_method() # Setup the same mock database data for every test self.user1 = add_user( **USER_TEST_DICT, id='cfe57aa6-76c6-433d-93fe-443363978904', ) self.addr1 = add_address( self.user1, id='e8c4607a-a271-423f-981b-1aaefdac87e8', ) self.order1 = Order.create(delivery_address=self.addr1, user=self.user1, uuid='4cefa833-2f45-4662-b2fc-083ddad4f7a3', created_at=datetime(2017, 5, 1, 3, 5, 57), ) self.order2 = Order.create(delivery_address=self.addr1, user=self.user1, uuid='8d449938-5745-4489-ab32-89dc8178e347', created_at=datetime(2017, 5, 1, 11, 16, 25), ) # User 2 has no relationships, just a plain user self.user2 = add_user( first_name="Monty", last_name="Python", email="*****@*****.**", password="******", id='94495ece-559b-4b3a-87ed-799259c921bf', )
def test_patch_address__wrong_uuid(self): user = add_user('*****@*****.**', '123') add_address(user, city="Firenze", post_code='50132') addr1 = new_addr(user, city="Roma", post_code="10000", address="Via Bianchi 20") addr1 = format_jsonapi_request('address', addr1) resp = open_with_auth(self.app, '/addresses/{}'.format(uuid4()), 'PATCH', user.email, TEST_USER_PSW, data=json.dumps(addr1), content_type='application/json') assert resp.status_code == NOT_FOUND
def test_create_order__not_json_failure(self): Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=4, category='scarpe', ) Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=10, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW) add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order = { 'order': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 4 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 10 }], 'delivery_address': '429994bf-784e-47cc-a823-e0c394b823e8', 'user': '******' } } path = 'orders/' resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'POST', user.email, TEST_USER_PSW, 'application/json', wrong_dump(order)) assert resp.status_code == BAD_REQUEST assert len(Order.select()) == 0 assert len(OrderItem.select()) == 0
def test_update_order__non_existing_address(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=2, category='scarpe', ) item2 = Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=1, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW) addr_A = add_address(user=user) order1 = Order.create(delivery_address=addr_A, user=user).add_item(item1, 2).add_item(item2) order_item_before = order1.order_items order = { 'relationships': { 'items': [ { 'id': '577ad826-a79d-41e9-a5b2-7955bcf00000', 'type': 'item', 'quantity': 1 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf2222', 'type': 'item', 'quantity': 1 }, ], 'delivery_address': { 'type': 'address', 'id': '817c8747-dfb7-4c2d-8a24-82dae23d250b', }, 'user': { 'type': 'user', 'id': str(user.uuid), } } } data = format_jsonapi_request('order', order) path = 'orders/{}'.format(order1.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', '*****@*****.**', TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == BAD_REQUEST assert order_item_before == order1.order_items
def test_update_order__success_admin_not_own_order(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=5, category='scarpe', ) item2 = Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=2, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW, id='35b9d92a-83c4-48c6-bc2a-580d95951f99') addr_A = add_address(user=user, id='7f7bc402-469c-4f7b-8918-d4e150469ac7') order1 = Order.create( delivery_address=addr_A, user=user, uuid='54a2b917-6c21-42b5-b273-39ad6c765187').add_item( item1, 2).add_item(item2) order = { 'relationships': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 5 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 1 }], } } data = format_jsonapi_request('order', order) user_B = add_admin_user('*****@*****.**', TEST_USER_PSW) path = 'orders/{}'.format(order1.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', user_B.email, TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == OK expected_result = EXPECTED_RESULTS[ 'update_order__success_admin_not_owner'] assert_valid_response(resp.data, expected_result)
def test_get_addresses__success(self): user = add_user('*****@*****.**', '123', id='9630b105-ca99-4a27-a51d-ab3430bf52d1') add_address(user, city="Firenze", post_code='50132', id='f814546c-0dec-45ee-a945-270a7b9cfe2e', address="Via Rossi 10") add_address(user, id='943d754e-5826-4d5c-b878-47edc478b789') resp = open_with_auth(self.app, '/addresses/', 'GET', user.email, TEST_USER_PSW, None, None) assert resp.status_code == OK expected_result = EXPECTED_RESULTS['get_addresses__success'] assert_valid_response(resp.data, expected_result)
def test_order_add_remove_items(self): """ Test Order.update_items and remove_items for handling add/remove in bulk """ user = add_user(None, TEST_USER_PSW) addr = add_address(user=user) item1 = Item.create( uuid=uuid4(), name='Item', description='Item description', price=10, availability=5, category='scarpe', ) item2 = Item.create( uuid=uuid4(), name='Item 2', description='Item 2 description', price=15, availability=5, category='scarpe', ) item3 = Item.create( uuid=uuid4(), name='Item 3', description='Item 3 description', price=15, availability=5, category='scarpe', ) order = Order.create(delivery_address=addr, user=user) # add some items in the order order.update_items({item1: 3, item2: 5}) assert count_order_items(order) == 8 # update arbitatry number of items in the order order.update_items({item1: 4, item2: 2}) assert count_order_items(order) == 6 # remove item1 from order order.update_items({item1: 0}) assert count_order_items(order) == 2 with pytest.raises(Exception): # test removing item that does not exist in the order order.update_items({item3: 0, item1: 1}) assert count_order_items(order) == 2 order.update_items({item1: 1, item2: 2, item3: 3}) # check assumed total price total_price = item1.price + item2.price * 2 + item3.price * 3 assert order.total_price == total_price
def test_delete_address__success(self): user = add_user('*****@*****.**', '123') addr = add_address(user, city="Firenze", post_code='50132', address="Via Rossi 10") resp = open_with_auth(self.app, '/addresses/{}'.format(addr.uuid), 'DELETE', user.email, TEST_USER_PSW, None, None) assert resp.status_code == NO_CONTENT assert not Address.select().exists()
def test_update_order__failure_not_own_order(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=5, category='scarpe', ) item2 = Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=2, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order = Order.create(delivery_address=addr, user=user).add_item(item1, 2).add_item(item2) post_data = { 'relationships': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 5 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 1 }], 'delivery_address': { 'type': 'address', 'id': '429994bf-784e-47cc-a823-e0c394b823e8' }, 'user': { 'type': 'user', 'id': '90c3e1c1-b51c-4224-b69d-17f84f6a8dfc' } } } post_data = format_jsonapi_request('order', post_data) user_B = add_user('*****@*****.**', TEST_USER_PSW) path = 'orders/{}'.format(order.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', user_B.email, TEST_USER_PSW, 'application/json', json.dumps(post_data)) assert resp.status_code == UNAUTHORIZED
def test_delete_order__failure__failure_non_existing(self): user = add_user('*****@*****.**', TEST_USER_PSW) addr_A = add_address(user=user) Order.create(delivery_address=addr_A, user=user) resp = self.app.delete('/orders/{}'.format(uuid4())) path = 'orders/{}'.format(str(uuid4())) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'DELETE', user.email, TEST_USER_PSW, None, None) assert resp.status_code == NOT_FOUND assert Order.select().count() == 1
def test_create_order__non_existing_item(self): Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=4, category='scarpe', ) user = add_user('*****@*****.**', TEST_USER_PSW) add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order = { 'relationships': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 4 }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf034r3', 'type': 'item', 'quantity': 10 }], 'delivery_address': { 'type': 'address', 'id': '429994bf-784e-47cc-a823-e0c394b823e8' }, 'user': { 'type': 'user', 'id': str(user.uuid) } } } data = format_jsonapi_request('order', order) path = 'orders/' resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'POST', user.email, TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == BAD_REQUEST assert len(Order.select()) == 0
def test_create_order__failure_availability(self, mocker): mocker.patch('views.orders.database', new=self.TEST_DB) Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=2, category='scarpe', ) user = add_user('*****@*****.**', TEST_USER_PSW, id='e736a9a6-448b-4b92-9e38-4cf745b066db') add_address(user=user, id='8473fbaa-94f0-46db-939f-faae898f001c') order = { 'relationships': { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 4 }], 'delivery_address': { 'type': 'address', 'id': '8473fbaa-94f0-46db-939f-faae898f001c' }, 'user': { 'type': 'user', 'id': 'e736a9a6-448b-4b92-9e38-4cf745b066db' } } } data = format_jsonapi_request('order', order) path = 'orders/' resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'POST', user.email, TEST_USER_PSW, 'application/json', json.dumps(data)) assert resp.status_code == BAD_REQUEST assert len(Order.select()) == 0
def test_delete_user__cascade(self): Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=1, category='scarpe', ) Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=1, category='accessori', ) email = '*****@*****.**' user = add_user(email, TEST_USER_PSW) user1 = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user) addr1 = add_address(user=user1) Order.create(delivery_address=addr, user=user) order1 = Order.create(delivery_address=addr1, user=user1) user_path = 'users/' resp = open_with_auth(self.app, API_ENDPOINT.format(user_path), 'DELETE', email, TEST_USER_PSW, None, None) assert resp.status_code == NO_CONTENT assert Address.select().count() == 1 assert Order.select().count() == 1 assert User.select().count() == 1 addr2 = Address.get() assert addr2 == addr1 order2 = Order.get() assert order2 == order1 user2 = User.get() assert user2 == user1
def test_get_address(self): user = add_user('*****@*****.**', '123', id='74df5166-db94-4738-8209-69aa733e36d1') addr = add_address(user, city='Firenze', post_code='50132', address='Via Rossi 10', id='4dbf5f2b-e164-4967-9a82-022996a17cc9') resp = open_with_auth(self.app, '/addresses/{}'.format(addr.uuid), 'GET', user.email, TEST_USER_PSW, None, None) assert resp.status_code == OK assert_valid_response(resp.data, EXPECTED_RESULTS['get_address'])
def test_update_order__new_item(self): item1 = Item.create( uuid='429994bf-784e-47cc-a823-e0c394b823e8', name='mario', price=20.20, description='svariati mariii', availability=15, category='scarpe', ) Item.create( uuid='577ad826-a79d-41e9-a5b2-7955bcf03499', name='GINO', price=30.20, description='svariati GINIIIII', availability=15, category='accessori', ) user = add_user('*****@*****.**', TEST_USER_PSW) addr = add_address(user=user, id='429994bf-784e-47cc-a823-e0c394b823e8') order1 = Order.create(delivery_address=addr, user=user).add_item(item1, 2) order = { "relationships": { 'items': [{ 'id': '429994bf-784e-47cc-a823-e0c394b823e8', 'type': 'item', 'quantity': 5, }, { 'id': '577ad826-a79d-41e9-a5b2-7955bcf03499', 'type': 'item', 'quantity': 10, }] } } post_data = format_jsonapi_request('order', order) path = 'orders/{}'.format(order1.uuid) resp = open_with_auth(self.app, API_ENDPOINT.format(path), 'PATCH', '*****@*****.**', TEST_USER_PSW, 'application/json', json.dumps(post_data)) order = Order.get() expected_result = EXPECTED_RESULTS['update_order__new_item'] assert_valid_response(resp.data, expected_result)
def setup_method(self): super(TestAddressSchema, self).setup_method() self.data = { 'country': 'Italy', 'city': 'Florence', 'post_code': '50100', 'address': 'Via dei matti 0', 'phone': '0051234567', 'relationships': { 'user': {'type': 'user', 'id': '9630b105-ca99-4a27-a51d-ab3430bf52d1'} } } self.user = add_user(email='*****@*****.**', password='******', id='9630b105-ca99-4a27-a51d-ab3430bf52d1') self.addr = add_address(self.user, id='943d754e-5826-4d5c-b878-47edc478b789')