def test_user_decline_friend_request_passes(self, db): db.session.add_all(Friendship.build(1, 2, 2, PENDING)) db.session.commit() rory = User.query.get(1) rory.decline_friend_request(2) db.session.commit() assert Friendship.get(1, 2).count() == 0
def test_user_is_friend(self, db): db.session.add_all(Friendship.build(3, 4, 3, ACCEPTED)) db.session.add_all(Friendship.build(3, 5, 3, PENDING)) db.session.commit() doctor = User.query.get(3) assert doctor.is_friend(4) assert not doctor.is_friend(5)
def test_user_unfriend_passes(self, db): db.session.add_all(Friendship.build(4, 5, 4, ACCEPTED)) db.session.commit() bill = User.query.get(4) bill.unfriend(5) db.session.commit() assert Friendship.get(4, 5).count() == 0
def test_user_is_mutual_friend_of(self, db): db.session.add_all(Friendship.build(2, 3, 2, ACCEPTED)) db.session.add_all(Friendship.build(2, 4, 2, ACCEPTED)) db.session.commit() amy = User.query.get(2) assert amy.is_mutual_firend_of(3, 4) assert not amy.is_mutual_firend_of(3, 5)
def test_user_accept_passes(self, db): db.session.add_all(Friendship.build(4, 3, 4, PENDING)) db.session.commit() doctor = User.query.get(3) doctor.accept(4) db.session.commit() assert Friendship.get(3, 4).filter_by(state=ACCEPTED).count() == 2
def test_friendship_ondelete_cascade(self, setup, db): db.session.add_all(Friendship.build(1, 2, 3, SUGGESTED)) db.session.commit() assert Friendship.get(1, 2).count() == 2 User.query.filter_by(id=3).delete(synchronize_session=False) db.session.commit() assert Friendship.get(1, 2).count() == 0
def test_user_block_friend_passes(self, db): db.session.add_all(Friendship.build(4, 5, 4, ACCEPTED)) db.session.commit() bill = User.query.get(4) bill.block(5) db.session.commit() assert Friendship.get(4, 5).filter_by(state=BLOCKED).count() == 2
def test_user_send_friend_request_update_from_suggested_friendship_passes( self, db): db.session.add_all(Friendship.build(1, 3, 2, SUGGESTED)) db.session.commit() rory = User.query.get(1) rory.send_friend_request(3) db.session.commit() assert Friendship.get(1, 3).filter_by(state=PENDING).count() == 2
def test_user_suggest_passes(self, db): db.session.add_all(Friendship.build(3, 4, 3, ACCEPTED)) db.session.add_all(Friendship.build(3, 5, 3, ACCEPTED)) db.session.commit() doctor = User.query.get(3) db.session.add_all(doctor.suggest(4, 5)) db.session.commit() assert Friendship.get(4, 5).filter_by(state=SUGGESTED).count() == 2
def test_user_unblock_same_user_policy_passes(self, db): """Block or unblock can be done only by the same person.""" db.session.add_all(Friendship.build(1, 2, 1, BLOCKED)) db.session.commit() rory = User.query.get(1) rory.unblock(2) db.session.commit() assert Friendship.get(1, 2).count() == 0
def test_friendship_update(self, setup, db): data = Friendship.build(1, 2, 1, ACCEPTED) db.session.add_all(data) db.session.commit() Friendship.update(data, 2, BLOCKED) db.session.commit() data = Friendship.get(1, 2).all() for i in range(2): assert data[i].action_user_id == 2 assert data[i].state == BLOCKED
def test_friendship_build(self, setup, db): db.session.add_all(Friendship.build(1, 2, 1, ACCEPTED)) db.session.commit() data = Friendship.get(1, 2).all() assert data[0].left_user_id == 1 assert data[0].right_user_id == 2 assert data[1].left_user_id == 2 assert data[1].right_user_id == 1 for i in range(2): assert data[i].action_user_id == 1 assert data[i].state == ACCEPTED
def test_user_unblock_same_user_policy_fails(self, db): """Block or unblock can be only done by the same person.""" db.session.add_all(Friendship.build(2, 3, 3, BLOCKED)) db.session.commit() amy = User.query.get(2) assert amy.unblock(3) is None
def test_user_property_friendship_returns_user_instance(self, db): db.session.add_all(Friendship.build(4, 5, 5, BLOCKED)) db.session.commit() song = User.query.get(5) bill = song.friendship.first() assert isinstance(bill, User) assert bill.first_name == 'bill'
def test_user_ondelete_cascade(self, db): db.session.add_all(Friendship.build(2, 3, 4, SUGGESTED)) db.session.add_all(Friendship.build(2, 5, 2, ACCEPTED)) db.session.add(Follower(follower_id=2, followed_id=3)) db.session.add(Follower(follower_id=2, followed_id=5)) db.session.add(Follower(follower_id=3, followed_id=2)) db.session.add(Follower(follower_id=4, followed_id=2)) db.session.commit() assert Friendship.query.count() == 4 assert Follower.query.count() == 4 User.query.filter_by(id=2).delete(synchronize_session=False) db.session.commit() assert Friendship.query.count() == 0 assert Follower.query.count() == 0
def test_user_accept_same_user_policy_fails(self, db): """Send friend request or accept, people can do only one at a time, not both. """ db.session.add_all(Friendship.build(3, 4, 3, PENDING)) db.session.commit() doctor = User.query.get(3) assert doctor.accept(4) is None
def test_user_mutual_friends_returns_2_user_instances(self, db): db.session.add_all(Friendship.build(1, 2, 1, ACCEPTED)) db.session.add_all(Friendship.build(1, 3, 1, ACCEPTED)) db.session.add_all(Friendship.build(1, 4, 1, ACCEPTED)) db.session.add_all(Friendship.build(1, 5, 1, ACCEPTED)) db.session.add_all(Friendship.build(2, 3, 2, ACCEPTED)) db.session.add_all(Friendship.build(2, 4, 2, ACCEPTED)) db.session.add_all(Friendship.build(2, 5, 2, PENDING)) db.session.commit() users = User.mutual_friends(1, 2).all() assert len(users) == 2 assert isinstance(users[0], User) assert users[0].first_name == 'doctor'
def test_friendship_get_returns_query(self, db): assert isinstance(Friendship.get(1, 2), Query)
def test_friendship_delete_returns_2(self, setup, db): db.session.add_all(Friendship.build(1, 2, 1, ACCEPTED)) db.session.commit() assert Friendship.delete(1, 2) == 2
def test_user_send_friend_request_new_request_passes(self, db): song = User.query.get(5) db.session.add_all(song.send_friend_request(1)) db.session.commit() assert Friendship.get(1, 5).filter_by(state=PENDING).count() == 2
def test_user_follow_blocked_user_fails(self, db): db.session.add_all(Friendship.build(4, 5, 5, BLOCKED)) db.session.commit() bill = User.query.get(4) assert bill.follow(5) is None
def test_user_decline_friend_request_fails(self, db): db.session.add_all(Friendship.build(2, 3, 2, ACCEPTED)) db.session.commit() amy = User.query.get(2) assert amy.decline_friend_request(3) is None
def test_user_accept_fails(self, db): db.session.add_all(Friendship.build(3, 4, 4, ACCEPTED)) db.session.commit() doctor = User.query.get(3) assert doctor.accept(4) is None
def test_user_block_passes(self, db): bill = User.query.get(4) db.session.add_all(bill.block(5)) db.session.commit() assert Friendship.get(4, 5).filter_by(state=BLOCKED).count() == 2
def test_user_block_already_blocked_user_fails(self, db): db.session.add_all(Friendship.build(5, 1, 5, BLOCKED)) db.session.commit() song = User.query.get(5) assert song.block(1) is None