示例#1
0
    def test_load_team_tree_permissions_department_1(self):
        # fmt: off
        u, t = create_setup([
            ('dep1', None, [
                ('dep2', TeamRoleEnum.member.value, [
                    ('dep2_team1', None, []),
                    ('dep2_team2', None, []),
                ]),
                ('dep1_team1', None, []),
            ]),
            ('dep3', None, [
                ('dep3_team1', None, []),
                ('dep4', None, [
                    ('dep4_team1', None, []),
                ]),
            ]),
            ('team1', None, []),
        ])
        # fmt: on
        result = load_team_tree_permissions(u)

        assert result.team_roles == {
            t["dep1"]: None,
            t["dep1_team1"]: None,
            t["dep2"]: TeamRoleEnum.member.value,
            t["dep2_team1"]: TeamRoleEnum.member.value,
            t["dep2_team2"]: TeamRoleEnum.member.value,
        }
        # dep3.* and team1 should be ignored, so same asserts as in
        # `test_load_team_tree_permissions_department`
        self._assert_test_load_team_tree_permissions_department(u, t, result)
示例#2
0
    def test_load_team_tree_permissions_no_access(self):
        u = User(email="test@localhost")
        db.session.add(u)
        db.session.add(Team(name="A", code="A"))
        db.session.commit()

        result = load_team_tree_permissions(u)
        assert len(result.team_roles) == 0
        assert len(result.team_parents) == 0
        assert len(result.team_children) == 0
示例#3
0
 def test_load_team_tree_permissions_department_deep(self):
     # fmt: off
     u, t = create_setup([('dep1', TeamRoleEnum.member.value,
                           [('dep2', None, [
                               ('dep2_team1', None, []),
                               ('dep2_team2', None, []),
                           ])])])
     # fmt: on
     result = load_team_tree_permissions(u)
     assert result.team_roles == {
         t["dep1"]: TeamRoleEnum.member.value,
         t["dep2"]: TeamRoleEnum.member.value,
         t["dep2_team1"]: TeamRoleEnum.member.value,
         t["dep2_team2"]: TeamRoleEnum.member.value,
     }
示例#4
0
    def test_load_team_tree_permissions_override(self):
        # fmt: off
        u, t = create_setup([
            ('dep1', None, [('dep2', TeamRoleEnum.team_admin.value, [
                ('dep2_team1', None, []),
                ('dep2_team2', TeamRoleEnum.member.value, []),
            ])]),
            ('dep3', None, []),
        ])
        # fmt: on
        result = load_team_tree_permissions(u)

        assert result.team_roles == {
            t["dep1"]: None,
            t["dep2"]: TeamRoleEnum.team_admin.value,
            t["dep2_team1"]: TeamRoleEnum.team_admin.value,
            t["dep2_team2"]: TeamRoleEnum.member.value,  # !
        }
        assert set(u.readable_team_ids) == set(
            [t["dep2"], t["dep2_team1"], t["dep2_team2"]])
        assert set(u.writable_team_ids) == set([t["dep2"], t["dep2_team1"]])
示例#5
0
    def test_load_team_tree_permissions(self):
        # fmt: off
        u, t = create_setup([
            ('dep1', None, [('dep2', None, [
                ('dep2_team1', TeamRoleEnum.member.value, []),
            ])]),
        ])
        # fmt: on
        result = load_team_tree_permissions(u)

        assert result.team_roles == {
            t["dep1"]: None,
            t["dep2"]: None,
            t["dep2_team1"]: TeamRoleEnum.member.value,
        }
        assert result.team_parents == {
            t["dep2_team1"]: t["dep2"],
            t["dep2"]: t["dep1"],
        }
        assert result.team_children == {
            t["dep1"]: {t["dep2"]},
            t["dep2"]: {t["dep2_team1"]},
        }