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]
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
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]
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
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
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