def test_update_not_existing_item(): user = mommy.make("users.User") executed = gql(user=user).execute(UPDATE_ITEM_MUTATION, variables={"id": -1}) assert not executed["data"]["updateItem"]["ok"] assert executed["data"]["updateItem"]["errors"]
def test_no_private_info(): user = mommy.make("users.User", _fill_optional=True) mommy.make("exchanges.Item", owner=user, _quantity=5, _fill_optional=True) executed = gql().execute( """ query( $ids: [ID]! ) { profiles(ids: $ids) { id username firstName lastName email items { id } } } """, variables={"ids": [user.id]}, ) assert executed["errors"] assert not executed.get("data")
def test_post_message_success(): user1 = mommy.make("users.User") user2 = mommy.make("users.User") swap = mommy.make("exchanges.Swap", owner=user1, client=user2) executed = gql(user=user1).execute( POST_MESSAGE_MUTATION, variables={ "swap": swap.id, "body": "La", }, ) assert Message.objects.count() == 1 msg = Message.objects.first() assert msg.author_id == user1.id assert msg.body == "La" assert executed["data"]["postMessage"]["message"] == { "id": str(msg.id), "author": { "id": str(user1.id) }, "timeSent": int(msg.time_sent.timestamp()), "body": msg.body, }
def test_one_my_swap(): user = mommy.make("users.User", _fill_optional=True) swap = mommy.make("exchanges.Swap", owner=user) executed = gql(user=user).execute(SWAPS_QUERY) assert len(executed["data"]["swaps"]) == 1 assert executed["data"]["swaps"][0]["id"] == str(swap.id)
def test_write_review_success(): user1 = mommy.make("users.User") user2 = mommy.make("users.User") executed = gql(user=user1).execute(WRITE_REVIEW_MUTATION, variables={ "userTo": user2.id, "stars": 5, "comments": "Cool" }) assert Review.objects.count() == 1 review = Review.objects.first() assert review.stars == 5 assert review.user_to_id == user2.id assert review.comments == "Cool" assert executed["data"]["writeUserReview"]["ok"] assert executed["data"]["writeUserReview"]["userReview"] == { "id": str(review.id), "userFrom": { "id": str(user1.id) }, "userTo": { "id": str(user2.id) }, "stars": review.stars, "comments": review.comments, "created": int(review.created.timestamp()), }
def test_private_item_success(): user = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user, _fill_optional=True) executed = gql(user=user).execute( PRIVATE_ITEM_QUERY, variables={ "id": item.id, }, ) assert executed["data"]["privateItem"] == { "id": str(item.id), "rentPrice": float(item.rent_price), "sellPrice": float(item.sell_price), "exchangeDescription": item.exchange_description, "description": item.description, "title": item.title, "owner": { "id": str(item.owner_id) }, "types": list(item.types), "activated": item.activated, "lastActivated": int(item.last_activated.timestamp()), "created": int(item.created.timestamp()), "photos": [], }
def test_unauthorized_create_swap(): swap = mommy.make("exchanges.Swap") executed = gql().execute(UPDATE_SWAP_MUTATION, variable_values={"id": swap.id}) assert not executed["data"]["updateSwap"]["ok"] assert executed["data"]["updateSwap"]["errors"]
def test_not_mutate_private_info(): user = mommy.make("users.User", _fill_optional=True) executed = gql(user=user).execute(MUTATION_QUERY, ) res = executed["data"]["updateUser"] assert res["ok"] assert res["user"]["phone"] == user.phone assert res["user"]["username"] == user.username
def test_unauthorized_delete_photo(): item = mommy.make("exchanges.Item") item_photo = mommy.make("exchanges.ItemPhoto", item=item) executed = gql().execute(DELETE_ITEM_PHOTO_MUTATION, variables={"id": item_photo.id}) assert not executed["data"]["deleteItemPhoto"]["ok"] assert executed["data"]["deleteItemPhoto"]["errors"]
def test_not_owned_item(): user1 = mommy.make("users.User") user2 = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user1) executed = gql(user=user2).execute(DELETE_ITEM_MUTATION, variables={"id": item.id}) assert not executed["data"]["deleteItem"]["ok"] assert executed["data"]["deleteItem"]["errors"]
def test_unauthorized_post_message(): swap = mommy.make("exchanges.Swap") executed = gql().execute(POST_MESSAGE_MUTATION, variables={ "swap": swap.id, "body": "La" }) assert not executed["data"]["postMessage"]["ok"]
def test_many_my_swaps(): user = mommy.make("users.User") swap1 = mommy.make("exchanges.Swap", owner=user) swap2 = mommy.make("exchanges.Swap", client=user) executed = gql(user=user).execute(SWAPS_QUERY) assert len(executed["data"]["swaps"]) == 2 assert executed["data"]["swaps"][0]["id"] == str(swap1.id) assert executed["data"]["swaps"][1]["id"] == str(swap2.id)
def test_unauthorized_mutate_private_info(): executed = gql().execute(MUTATION_QUERY, variables={ "phone": "12345", "username": "******" }) assert not executed["data"]["updateUser"]["ok"] assert not executed["data"]["updateUser"]["user"]
def test_create_empty_item(): user = mommy.make("users.User", _fill_optional=True) executed = gql(user=user).execute(CREATE_ITEM_MUTATION) assert executed["data"]["createItem"]["ok"] assert Item.objects.count() == 1 item = Item.objects.first() assert item.owner_id == user.id
def test_unauthorized_create_swap(): item = mommy.make("exchanges.Item") executed = gql().execute(CREATE_SWAP_MUTATION, variable_values={ "item": item.id, "message": "Hi" }) assert not executed["data"]["createSwap"]["ok"] assert executed["data"]["createSwap"]["errors"]
def test_delete_item_success(): user = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user) executed = gql(user=user).execute(DELETE_ITEM_MUTATION, variables={"id": item.id}) assert executed["data"]["deleteItem"]["ok"] assert not executed["data"]["deleteItem"]["errors"] assert Item.objects.count() == 0
def test_unauthorized_private_item(): item = mommy.make("exchanges.Item") executed = gql().execute( PRIVATE_ITEM_QUERY, variables={ "id": item.id, }, ) assert not executed["data"]["privateItem"]
def test_write_not_existing_user_review(): user = mommy.make("users.User", _fill_optional=True) executed = gql(user=user).execute(WRITE_REVIEW_MUTATION, variables={ "userTo": -1, "stars": 5, "comments": "Lalala" }) assert not executed["data"]["writeUserReview"]["ok"] assert executed["data"]["writeUserReview"]["errors"]
def test_mutate_private_info(): user = mommy.make("users.User", _fill_optional=True) executed = gql(user=user).execute(MUTATION_QUERY, variables={ "phone": "12345", "username": "******" }) res = executed["data"]["updateUser"] assert res["ok"] assert res["user"]["phone"] == "12345" assert res["user"]["username"] == "username"
def test_unauthorized_write_review(): user1 = mommy.make("users.User") executed = gql().execute(WRITE_REVIEW_MUTATION, variables={ "userTo": user1.id, "stars": 5, "comments": "Lalala" }) assert not executed["data"]["writeUserReview"]["ok"] assert executed["data"]["writeUserReview"]["errors"] assert not executed["data"]["writeUserReview"]["userReview"]
def test_not_owned_private_item(): user1 = mommy.make("users.User") user2 = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user2) executed = gql(user=user1).execute( PRIVATE_ITEM_QUERY, variables={ "id": item.id, }, ) assert not executed["data"]["privateItem"]
def test_unauthorized_add_photo(): item = mommy.make("exchanges.Item") executed = gql().execute( ACTIVATE_ITEM_MUTATION, variables={ "id": item.id, "activate": True, }, ) assert not executed["data"]["itemActivation"]["ok"] assert executed["data"]["itemActivation"]["errors"]
def test_activate_item_without_photos(): user = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user) executed = gql(user=user).execute( ACTIVATE_ITEM_MUTATION, variables={ "id": item.id, "activate": True, }, ) assert not executed["data"]["itemActivation"]["ok"] assert executed["data"]["itemActivation"]["errors"]
def test_unauthorized_delete_item(): item = mommy.make("exchanges.Item") executed = gql().execute( CREATE_ITEM_PHOTO_MUTATION, variables={ "guid": "some-guid", "item": item.id, }, ) assert not executed["data"]["createItemPhoto"]["ok"] assert executed["data"]["createItemPhoto"]["errors"]
def test_get_public_profile_info(): user = mommy.make("users.User", _fill_optional=True) mommy.make("exchanges.Item", owner=user, activated=True, _quantity=5, _fill_optional=True) executed = gql().execute(PUBLIC_PROFILE_QUERY, variables={"ids": [user.id]}) assert len(executed["data"]["profiles"]) == 1 assert len(executed["data"]["profiles"][0]["items"]) == 5
def test_not_owned_add_photo(): user1 = mommy.make("users.User") user2 = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user1) executed = gql(user=user2).execute( CREATE_ITEM_PHOTO_MUTATION, variables={ "guid": "some-guid", "item": item.id, }, ) assert not executed["data"]["createItemPhoto"]["ok"] assert executed["data"]["createItemPhoto"]["errors"]
def test_unauthorized_private_info(): executed = gql().execute(""" query { user { id username firstName lastName phone } } """) assert not executed["data"]["user"]
def test_update_wrong_item(): user = mommy.make("users.User") user2 = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user2) executed = gql(user=user).execute( UPDATE_ITEM_MUTATION, variables={ "id": item.id, "rentPrice": 100, "sellPrice": 1000, "exchangeDescription": "Lalala", "description": "Lalala", "title": "Lalala", "types": ["E", "R", "P"], }, ) assert not executed["data"]["updateItem"]["ok"] assert executed["data"]["updateItem"]["errors"]
def test_activate_item_success(): user = mommy.make("users.User", city=mommy.make("users.City"), _fill_optional=True) item = mommy.make("exchanges.Item", owner=user, activated=False, _fill_optional=True) mommy.make("exchanges.ItemPhoto", item=item, _quantity=3) time = timezone.now() with freeze_time(time): executed = gql(user=user).execute( ACTIVATE_ITEM_MUTATION, variables={ "id": item.id, "activate": True, }, )
def test_deactivate_item_success(): user = mommy.make("users.User") item = mommy.make("exchanges.Item", owner=user, activated=True, _fill_optional=True) executed = gql(user=user).execute( ACTIVATE_ITEM_MUTATION, variables={ "id": item.id, "activate": False, }, ) assert executed["data"]["itemActivation"]["ok"] item.refresh_from_db() assert not item.activated