Пример #1
0
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"]
Пример #2
0
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")
Пример #3
0
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,
    }
Пример #4
0
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)
Пример #5
0
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()),
    }
Пример #6
0
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": [],
    }
Пример #7
0
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"]
Пример #8
0
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
Пример #9
0
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"]
Пример #10
0
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"]
Пример #11
0
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"]
Пример #12
0
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)
Пример #13
0
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"]
Пример #14
0
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
Пример #15
0
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"]
Пример #16
0
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
Пример #17
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"]
Пример #18
0
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"]
Пример #19
0
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"
Пример #20
0
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"]
Пример #21
0
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"]
Пример #22
0
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"]
Пример #23
0
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"]
Пример #24
0
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"]
Пример #25
0
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
Пример #26
0
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"]
Пример #27
0
def test_unauthorized_private_info():
    executed = gql().execute("""
        query {
            user {
                id
                username
                firstName
                lastName
                phone
            }
        }
        """)

    assert not executed["data"]["user"]
Пример #28
0
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"]
Пример #29
0
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,
            },
        )
Пример #30
0
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