예제 #1
0
def connection_with_temporary_testuser(connection):
    d = Users(connection)
    previous_quantity = len(d)
    assert previous_quantity > 0  # The server should already have a user
    username = "******" + str(uuid.uuid4())
    email = "*****@*****.**"

    new_user = User(username=username, email=email, password="******")
    print(new_user)

    new_user_id = d.append(new_user)
    print("Created new user id", new_user_id, ":", new_user)

    # Let the test use the user
    ConnectionWithTemporaryTestUser = namedtuple(
        "ConnectionWithTemporaryTestUser", "connection, users, user, user_id")
    yield ConnectionWithTemporaryTestUser(connection, d, d[new_user_id],
                                          new_user_id)

    # Cleanup
    del d[new_user_id]

    # Update happened
    assert len(d) == previous_quantity

    with pytest.raises(KeyError):
        _ = d[new_user_id]
예제 #2
0
def test_modify_an_existing_user_object(connection):
    d = Users(connection)
    previous_quantity = len(d)

    assert previous_quantity > 0  # The server should already have a user

    username = "******" + str(uuid.uuid4())
    email = "*****@*****.**"
    new_user = User(username=username, email=email, password="******")
    print(new_user)

    new_user_id = d.append(new_user)
    print("Created new user id", new_user_id, ":", new_user)

    # Setup Completed

    # Get and mutate the object
    refetch_user = d[new_user_id]
    assert refetch_user.username == username

    with refetch_user as m:
        m.email = "*****@*****.**"

    # Retrieve updated object from server
    verification = d[new_user_id]

    # Remove the key from the server before asserts
    del d[new_user_id]

    # Update happened
    assert verification.email == "*****@*****.**"
    assert len(d) == previous_quantity
예제 #3
0
def test_cleanup_test_users(connection):
    d = Users(connection)

    # retrieve every item
    for k, v in d.items():
        if 'email' in v and "*****@*****.**" == v.email:
            print("Should delete item", k, v)
            del d[k]
예제 #4
0
def test_remove_nonexistent(connection):
    d = Users(connection)
    previous_quantity = len(d)

    # the fake key we're trying to delete really doesn't exist
    for guid in d.keys():
        assert guid != "000000000-000-0000-0000-000000000000"

    with pytest.raises(KeyError):
        del d["000000000-000-0000-0000-000000000000"]
    assert len(d) == previous_quantity
예제 #5
0
def test_iterate_over(connection):
    d = Users(connection)

    counter = 0
    # retrieve every item
    for k, v in d.items():
        print("Retrieved item", k, ",", v)
        assert k == v.id
        assert hasattr(v, "username")
        counter += 1
    assert counter > 0  # There should be at least one existing user (us)on the server
    assert counter == len(d) == len(d.keys())  # counting and length agree
예제 #6
0
def test_add_user_and_remove_it_again(connection):
    d = Users(connection)
    previous_quantity = len(d)

    assert previous_quantity > 0  # The server should already have a user

    username = "******" + str(uuid.uuid4())
    email = "*****@*****.**"
    new_user = User(username=username, email=email, password="******")
    print(new_user)

    new_user_id = d.append(new_user)
    print("Created new user id", new_user_id, ":", new_user)

    refetch_user = d[new_user_id]
    assert refetch_user.username == username

    # Remove the key from the server; server may become unlicensed at this point
    del d[new_user_id]

    # Same quantity now as before
    assert len(d) == previous_quantity