Ejemplo n.º 1
0
    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
Ejemplo n.º 2
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)
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
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)
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
    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
Ejemplo n.º 7
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
Ejemplo n.º 8
0
    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
Ejemplo n.º 9
0
    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
Ejemplo n.º 10
0
    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
Ejemplo n.º 11
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
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
    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
Ejemplo n.º 14
0
    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'
Ejemplo n.º 15
0
    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
Ejemplo n.º 16
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
Ejemplo n.º 17
0
    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'
Ejemplo n.º 18
0
 def test_friendship_get_returns_query(self, db):
     assert isinstance(Friendship.get(1, 2), Query)
Ejemplo n.º 19
0
 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
Ejemplo n.º 20
0
 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
Ejemplo n.º 21
0
    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
Ejemplo n.º 22
0
    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
Ejemplo n.º 23
0
    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
Ejemplo n.º 24
0
 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
Ejemplo n.º 25
0
    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