コード例 #1
0
def test_LeaveGroup_regression(db):
    # see test_LeaveCommunity_regression

    # admin
    user1, token1 = generate_user(username="******",
                                  geom=create_1d_point(200),
                                  geom_radius=0.1)
    # joiner/leaver
    user2, token2 = generate_user(username="******",
                                  geom=create_1d_point(201),
                                  geom_radius=0.1)

    with session_scope() as session:
        c0 = create_community(session, 0, 100, "Community 0", [user1], [],
                              None)
        g1 = create_group(session, "Group 1", [user1], [], c0)
        g2 = create_group(session, "Group 2", [user1], [], c0)
        g1_id = g1.id
        g2_id = g2.id

    enforce_community_memberships()

    with groups_session(token1) as api:
        assert api.GetGroup(groups_pb2.GetGroupReq(group_id=g1_id)).member
        assert api.GetGroup(groups_pb2.GetGroupReq(group_id=g2_id)).member

    with groups_session(token2) as api:
        # first check we're not in any groups
        assert not api.GetGroup(groups_pb2.GetGroupReq(group_id=g1_id)).member
        assert not api.GetGroup(groups_pb2.GetGroupReq(group_id=g2_id)).member

        # join some groups
        api.JoinGroup(groups_pb2.JoinGroupReq(group_id=g1_id))
        api.JoinGroup(groups_pb2.JoinGroupReq(group_id=g2_id))

        # check memberships
        assert api.GetGroup(groups_pb2.GetGroupReq(group_id=g1_id)).member
        assert api.GetGroup(groups_pb2.GetGroupReq(group_id=g2_id)).member

        # leave just g2
        api.LeaveGroup(groups_pb2.LeaveGroupReq(group_id=g2_id))

        # check memberships
        assert api.GetGroup(groups_pb2.GetGroupReq(group_id=g1_id)).member
        assert not api.GetGroup(groups_pb2.GetGroupReq(group_id=g2_id)).member
コード例 #2
0
ファイル: test_communities.py プロジェクト: telalpal/couchers
def testing_communities(request):
    db_impl(request.param)
    user1, token1 = generate_user(username="******",
                                  geom=create_1d_point(1),
                                  geom_radius=0.1)
    user2, token2 = generate_user(username="******",
                                  geom=create_1d_point(2),
                                  geom_radius=0.1)
    user3, token3 = generate_user(username="******",
                                  geom=create_1d_point(3),
                                  geom_radius=0.1)
    user4, token4 = generate_user(username="******",
                                  geom=create_1d_point(8),
                                  geom_radius=0.1)
    user5, token5 = generate_user(username="******",
                                  geom=create_1d_point(6),
                                  geom_radius=0.1)
    user6, token6 = generate_user(username="******",
                                  geom=create_1d_point(65),
                                  geom_radius=0.1)
    user7, token7 = generate_user(username="******",
                                  geom=create_1d_point(80),
                                  geom_radius=0.1)
    user8, token8 = generate_user(username="******",
                                  geom=create_1d_point(51),
                                  geom_radius=0.1)

    with session_scope() as session:
        w = create_community(session, 0, 100, "World", [user1, user3, user7],
                             [], None)
        c1 = create_community(session, 0, 50, "Country 1", [user1, user2], [],
                              w)
        c1r1 = create_community(session, 0, 10, "Country 1, Region 1",
                                [user1, user2], [], c1)
        c1r1c1 = create_community(session, 0, 5, "Country 1, Region 1, City 1",
                                  [user2], [], c1r1)
        c1r1c2 = create_community(session, 7, 10,
                                  "Country 1, Region 1, City 2",
                                  [user4, user5], [user2], c1r1)
        c1r2 = create_community(session, 20, 25, "Country 1, Region 2",
                                [user2], [], c1)
        c1r2c1 = create_community(session, 21, 23,
                                  "Country 1, Region 2, City 1", [user2], [],
                                  c1r2)
        c2 = create_community(session, 52, 100, "Country 2", [user6, user7],
                              [], w)
        c2r1 = create_community(session, 52, 71, "Country 2, Region 1",
                                [user6], [user8], c2)
        c2r1c1 = create_community(session, 53, 70,
                                  "Country 2, Region 1, City 1", [user8], [],
                                  c2r1)

        h = create_group(session, "Hitchhikers", [user1, user2],
                         [user5, user8], w)
        create_group(session, "Country 1, Region 1, Foodies", [user1],
                     [user2, user4], c1r1)
        create_group(session, "Country 1, Region 1, Skaters", [user2], [user1],
                     c1r1)
        create_group(session, "Country 1, Region 2, Foodies", [user2],
                     [user4, user5], c1r2)
        create_group(session, "Country 2, Region 1, Foodies", [user6], [user7],
                     c2r1)

        create_discussion(token1, w.id, None, "Discussion title 1",
                          "Discussion content 1")
        create_discussion(token3, w.id, None, "Discussion title 2",
                          "Discussion content 2")
        create_discussion(token3, w.id, None, "Discussion title 3",
                          "Discussion content 3")
        create_discussion(token3, w.id, None, "Discussion title 4",
                          "Discussion content 4")
        create_discussion(token3, w.id, None, "Discussion title 5",
                          "Discussion content 5")
        create_discussion(token3, w.id, None, "Discussion title 6",
                          "Discussion content 6")
        create_discussion(token4, c1r1c2.id, None, "Discussion title 7",
                          "Discussion content 7")
        create_discussion(token5, None, h.id, "Discussion title 8",
                          "Discussion content 8")
        create_discussion(token1, None, h.id, "Discussion title 9",
                          "Discussion content 9")
        create_discussion(token2, None, h.id, "Discussion title 10",
                          "Discussion content 10")
        create_discussion(token3, None, h.id, "Discussion title 11",
                          "Discussion content 11")
        create_discussion(token4, None, h.id, "Discussion title 12",
                          "Discussion content 12")
        create_discussion(token5, None, h.id, "Discussion title 13",
                          "Discussion content 13")
        create_discussion(token8, None, h.id, "Discussion title 14",
                          "Discussion content 14")

    enforce_community_memberships()

    create_place(token1, "Country 1, Region 1, Attraction", "Place content",
                 "Somewhere in c1r1", 6)
    create_place(token2, "Country 1, Region 1, City 1, Attraction 1",
                 "Place content", "Somewhere in c1r1c1", 3)
    create_place(token2, "Country 1, Region 1, City 1, Attraction 2",
                 "Place content", "Somewhere in c1r1c1", 4)
    create_place(token8, "World, Attraction", "Place content",
                 "Somewhere in w", 51.5)
    create_place(token6, "Country 2, Region 1, Attraction", "Place content",
                 "Somewhere in c2r1", 59)

    yield
コード例 #3
0
ファイル: handlers.py プロジェクト: Couchers-org/couchers
def process_enforce_community_membership(payload):
    enforce_community_memberships()
コード例 #4
0
def test_LeaveCommunity_regression(db):
    # See github issue #1444, repro:
    # 1. Join more than one community
    # 2. Leave one of them
    # 3. You are no longer in any community
    # admin
    user1, token1 = generate_user(username="******",
                                  geom=create_1d_point(200),
                                  geom_radius=0.1)
    # joiner/leaver
    user2, token2 = generate_user(username="******",
                                  geom=create_1d_point(201),
                                  geom_radius=0.1)

    with session_scope() as session:
        c0 = create_community(session, 0, 100, "Community 0", [user1], [],
                              None)
        c1 = create_community(session, 0, 50, "Community 1", [user1], [], c0)
        c2 = create_community(session, 0, 10, "Community 2", [user1], [], c0)
        c0_id = c0.id
        c1_id = c1.id
        c2_id = c2.id

    enforce_community_memberships()

    with communities_session(token1) as api:
        assert api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c0_id)).member
        assert api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c1_id)).member
        assert api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c2_id)).member

    with communities_session(token2) as api:
        # first check we're not in any communities
        assert not api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c0_id)).member
        assert not api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c1_id)).member
        assert not api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c2_id)).member

        # join some communities
        api.JoinCommunity(communities_pb2.JoinCommunityReq(community_id=c1_id))
        api.JoinCommunity(communities_pb2.JoinCommunityReq(community_id=c2_id))

        # check memberships
        assert not api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c0_id)).member
        assert api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c1_id)).member
        assert api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c2_id)).member

        # leave just c2
        api.LeaveCommunity(
            communities_pb2.LeaveCommunityReq(community_id=c2_id))

        # check memberships
        assert not api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c0_id)).member
        assert api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c1_id)).member
        assert not api.GetCommunity(
            communities_pb2.GetCommunityReq(community_id=c2_id)).member