예제 #1
0
def test_remove_friend_multiple_friends(database):
    friendship_models = [
        models.Friendship(user_id=0, friend_id=1),
        models.Friendship(user_id=0, friend_id=2),
        models.Friendship(user_id=1, friend_id=2),
    ]
    database.add_all(friendship_models)
    database.commit()
    assert get_all_friendships(database) == {
        0: [1, 2],
        1: [2],
    }

    assert crud.remove_friend(database, 0, 1) is True
    assert get_all_friendships(database) == {
        0: [2],
        1: [2],
    }

    assert crud.remove_friend(database, 0, 2) is True
    assert get_all_friendships(database) == {
        1: [2],
    }

    assert crud.remove_friend(database, 2, 1) is True
    assert database.query(models.Friendship).count() == 0
예제 #2
0
def test_get_friends_multiple_friends(database):
    friendship_models = [
        models.Friendship(user_id=0, friend_id=1),
        models.Friendship(user_id=0, friend_id=2),
        models.Friendship(user_id=1, friend_id=2),
    ]
    database.add_all(friendship_models)
    database.commit()
    assert get_all_friendships(database) == {
        0: [1, 2],
        1: [2],
    }
    assert sorted(crud.get_friends(database, 0)) == [1, 2]
    assert sorted(crud.get_friends(database, 1)) == [0, 2]
    assert sorted(crud.get_friends(database, 2)) == [0, 1]
예제 #3
0
def test_get_friends_one_friend(database):
    database.add(models.Friendship(user_id=0, friend_id=1))
    database.commit()
    assert get_all_friendships(database) == {
        0: [1],
    }
    assert crud.get_friends(database, 0) == [1]
    assert crud.get_friends(database, 1) == [0]
예제 #4
0
def test_remove_friend_one_friend(database):
    database.add(models.Friendship(user_id=0, friend_id=1))
    database.commit()
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.remove_friend(database, 0, 1) is True
    assert database.query(models.Friendship).count() == 0
예제 #5
0
def test_remove_friend_non_existing_friendship(database):
    database.add(models.Friendship(user_id=0, friend_id=1))
    database.commit()
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.remove_friend(database, 0, 2) is False
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.remove_friend(database, 2, 0) is False
    assert get_all_friendships(database) == {
        0: [1],
    }
예제 #6
0
def test_add_friend_already_existing_friendship_takes_no_effect(database):
    database.add(models.Friendship(user_id=0, friend_id=1))
    database.commit()
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.add_friend(database, 0, 1) is False
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.add_friend(database, 1, 0) is False
    assert get_all_friendships(database) == {
        0: [1],
    }
예제 #7
0
def test_remove_friend_friendship_with_self_takes_no_effect(database):
    database.add(models.Friendship(user_id=0, friend_id=1))
    database.commit()
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.remove_friend(database, 0, 0) is False
    assert get_all_friendships(database) == {
        0: [1],
    }

    assert crud.remove_friend(database, 1, 1) is False
    assert get_all_friendships(database) == {
        0: [1],
    }