Ejemplo n.º 1
0
 def setUp(self):
     self.root = Group.valid_objects.get(uid='root')
     self.group_1 = Group.valid_objects.create(uid='group_1',
                                               parent=self.root)
     self.group_2 = Group.valid_objects.create(uid='group_2',
                                               parent=self.group_1)
     self.executer = RDBExecuter()
Ejemplo n.º 2
0
 def setUp(self):
     self.root = Dept.valid_objects.get(uid='root')
     self.rdb_executer = RDBExecuter()
     self.dept = self.rdb_executer.create_dept(DEPT_DATA)
     self.parent_dept = self.rdb_executer.create_dept(PARENT_DEPT_DATA)
     self.rdb_executer.add_dept_to_dept(self.parent_dept, self.root)
     self.rdb_executer.add_dept_to_dept(self.dept, self.parent_dept)
     self.child_1_dept = self.rdb_executer.create_dept(CHILD_DEPT_1_DATA)
     self.child_2_dept = self.rdb_executer.create_dept(CHILD_DEPT_2_DATA)
     self.rdb_executer.add_dept_to_dept(self.child_1_dept, self.dept)
     self.rdb_executer.add_dept_to_dept(self.child_2_dept, self.dept)
Ejemplo n.º 3
0
    def setUp(self):
        self.rdb_executer = RDBExecuter()

        self.user = User.create_user('user', 'user')

        self.root = Dept.valid_objects.get(uid='root')
        self.dept_1 = Dept.valid_objects.create(uid='1', parent=self.root)
        self.dept_1_1 = Dept.valid_objects.create(uid='1_1',
                                                  parent=self.dept_1)
        self.dept_1_2 = Dept.valid_objects.create(uid='1_2',
                                                  parent=self.dept_1)
        self.dept_1_1_1 = Dept.valid_objects.create(uid='1_1_1',
                                                    parent=self.dept_1_1)
        self.dept_1_1_2 = Dept.valid_objects.create(uid='1_1_2',
                                                    parent=self.dept_1_1)
        self.dept_1_1_3 = Dept.valid_objects.create(uid='1_1_3',
                                                    parent=self.dept_1_1)
        self.dept_2 = Dept.valid_objects.create(uid='2', parent=self.root)
        self.dept_2_1 = Dept.valid_objects.create(uid='2_1',
                                                  parent=self.dept_2)
        self.dept_2_2 = Dept.valid_objects.create(uid='2_2',
                                                  parent=self.dept_2)

        self.front_walker_depts = [
            self.root,
            self.dept_1,
            self.dept_1_1,
            self.dept_1_1_1,
            self.dept_1_1_2,
            self.dept_1_1_3,
            self.dept_1_2,
            self.dept_2,
            self.dept_2_1,
            self.dept_2_2,
        ]

        self.perm = Perm.valid_objects.create(uid='perm')
        for dept in self.front_walker_depts:
            DeptPerm.valid_objects.create(owner=dept, perm=self.perm)
Ejemplo n.º 4
0
class RDBDeptExecuterTestCase(TestCase):
    def setUp(self):
        self.root = Dept.valid_objects.get(uid='root')
        self.dept_1 = Dept.valid_objects.create(uid='dept_1', parent=self.root)
        self.dept_2 = Dept.valid_objects.create(
            uid='dept_2', parent=self.dept_1)
        self.executer = RDBExecuter()

    def test_move_dept_to_dept(self):
        with self.assertRaises(ValidationError):
            self.executer.move_dept_to_dept(self.dept_1, self.dept_1)
        with self.assertRaises(ValidationError):
            self.executer.move_dept_to_dept(self.dept_1, self.dept_2)
        with self.assertRaises(ValidationError):
            self.executer.move_dept_to_dept(self.root, self.dept_2)

        self.executer.move_dept_to_dept(self.dept_2, self.root)
Ejemplo n.º 5
0
 def __init__(self, *args, **kwargs):
     self.server = Server(settings.LDAP_SERVER)
     self.base = settings.LDAP_BASE
     self.conn = Connection(self.server,
                            user=settings.LDAP_USER,
                            password=settings.LDAP_PASSWORD,
                            auto_bind=True,
                            raise_exceptions=False)
     self.ldap_executer = LDAPExecuter(base='dc=example,dc=org')
     self.rdb_executer = RDBExecuter()
     self.cli = cli_factory([
         'executer.RDB.RDBExecuter',
         'executer.LDAP.LDAPExecuter',
     ])(User.objects.first())
     settings.LDAP_BASE = 'dc=example,dc=org'
     super(LDAPBaseTestCase, self).__init__(*args, **kwargs)
Ejemplo n.º 6
0
class RDBGroupExecuterTestCase(TestCase):
    def setUp(self):
        self.root = Group.valid_objects.get(uid='root')
        self.group_1 = Group.valid_objects.create(uid='group_1',
                                                  parent=self.root)
        self.group_2 = Group.valid_objects.create(uid='group_2',
                                                  parent=self.group_1)
        self.executer = RDBExecuter()

    def test_move_group_to_group(self):
        with self.assertRaises(ValidationError):
            self.executer.move_group_to_group(self.group_1, self.group_1)
        with self.assertRaises(ValidationError):
            self.executer.move_group_to_group(self.group_1, self.group_2)
        with self.assertRaises(ValidationError):
            self.executer.move_group_to_group(self.root, self.group_2)

        self.executer.move_group_to_group(self.group_2, self.root)
Ejemplo n.º 7
0
class TreeNodeTestCase(TestCase):
    def setUp(self):
        self.root = Dept.valid_objects.get(uid='root')
        self.rdb_executer = RDBExecuter()
        self.dept = self.rdb_executer.create_dept(DEPT_DATA)
        self.parent_dept = self.rdb_executer.create_dept(PARENT_DEPT_DATA)
        self.rdb_executer.add_dept_to_dept(self.parent_dept, self.root)
        self.rdb_executer.add_dept_to_dept(self.dept, self.parent_dept)
        self.child_1_dept = self.rdb_executer.create_dept(CHILD_DEPT_1_DATA)
        self.child_2_dept = self.rdb_executer.create_dept(CHILD_DEPT_2_DATA)
        self.rdb_executer.add_dept_to_dept(self.child_1_dept, self.dept)
        self.rdb_executer.add_dept_to_dept(self.child_2_dept, self.dept)

    def test_get_all_superior_nodes(self):
        res = tree_node.get_all_superior_nodes([self.child_1_dept])
        self.assertEqual(
            res,
            set([self.child_1_dept, self.dept, self.parent_dept, self.root]))

        res = tree_node.get_all_superior_nodes(
            [self.child_1_dept, self.child_2_dept])
        self.assertEqual(
            res,
            set([
                self.child_2_dept, self.child_1_dept, self.dept,
                self.parent_dept, self.root
            ]))

        res = tree_node.get_all_superior_nodes([self.child_1_dept, self.dept])
        self.assertEqual(
            res,
            set([self.child_1_dept, self.dept, self.parent_dept, self.root]))

        res = tree_node.get_all_superior_nodes([self.dept, self.parent_dept])
        self.assertEqual(res, set([self.dept, self.parent_dept, self.root]))

        res = tree_node.get_all_superior_nodes([self.parent_dept])
        self.assertEqual(res, set([self.parent_dept, self.root]))

    def test_get_node_path(self):
        self.assertEqual(
            tree_node.get_node_path(self.child_1_dept),
            [self.child_1_dept, self.dept, self.parent_dept, self.root],
        )
        self.assertEqual(
            tree_node.get_node_path(self.parent_dept),
            [self.parent_dept, self.root],
        )

    def test_tree_node_diff(self):
        res = tree_node.tree_node_diff(self.child_1_dept, self.child_2_dept)
        self.assertEqual(res['>'], [self.child_1_dept])
        self.assertEqual(res['<'], [self.child_2_dept])

        res = tree_node.tree_node_diff(self.dept, self.child_2_dept)
        self.assertEqual(res['>'], [])
        self.assertEqual(res['<'], [self.child_2_dept])

    def test_get_dn_path(self):
        dn = 'cn=dev,cn=IT,ou=group,dc=example,dc=org'
        expect = [
            'cn=dev,cn=IT,ou=group,dc=example,dc=org',
            'cn=IT,ou=group,dc=example,dc=org',
            'ou=group,dc=example,dc=org',
            'dc=example,dc=org',
            'dc=org',
        ]
        res = tree_node.get_dn_path(dn)
        self.assertEqual(res, expect)
Ejemplo n.º 8
0
 def setUp(self):
     self.root = Dept.valid_objects.get(uid='root')
     self.dept_1 = Dept.valid_objects.create(uid='dept_1', parent=self.root)
     self.dept_2 = Dept.valid_objects.create(
         uid='dept_2', parent=self.dept_1)
     self.executer = RDBExecuter()
Ejemplo n.º 9
0
class TreeFlushPermTestCase(TestCase):
    def setUp(self):
        self.rdb_executer = RDBExecuter()

        self.user = User.create_user('user', 'user')

        self.root = Dept.valid_objects.get(uid='root')
        self.dept_1 = Dept.valid_objects.create(uid='1', parent=self.root)
        self.dept_1_1 = Dept.valid_objects.create(uid='1_1',
                                                  parent=self.dept_1)
        self.dept_1_2 = Dept.valid_objects.create(uid='1_2',
                                                  parent=self.dept_1)
        self.dept_1_1_1 = Dept.valid_objects.create(uid='1_1_1',
                                                    parent=self.dept_1_1)
        self.dept_1_1_2 = Dept.valid_objects.create(uid='1_1_2',
                                                    parent=self.dept_1_1)
        self.dept_1_1_3 = Dept.valid_objects.create(uid='1_1_3',
                                                    parent=self.dept_1_1)
        self.dept_2 = Dept.valid_objects.create(uid='2', parent=self.root)
        self.dept_2_1 = Dept.valid_objects.create(uid='2_1',
                                                  parent=self.dept_2)
        self.dept_2_2 = Dept.valid_objects.create(uid='2_2',
                                                  parent=self.dept_2)

        self.front_walker_depts = [
            self.root,
            self.dept_1,
            self.dept_1_1,
            self.dept_1_1_1,
            self.dept_1_1_2,
            self.dept_1_1_3,
            self.dept_1_2,
            self.dept_2,
            self.dept_2_1,
            self.dept_2_2,
        ]

        self.perm = Perm.valid_objects.create(uid='perm')
        for dept in self.front_walker_depts:
            DeptPerm.valid_objects.create(owner=dept, perm=self.perm)

    def test_tree_front_walker(self):
        self.assertEqual(list(self.root.tree_front_walker()),
                         self.front_walker_depts)

    def test_dept_status(self):
        DeptPerm.valid_objects.get(owner=self.root,
                                   perm=self.perm).update_status(1)
        res = [
            DeptPerm.valid_objects.get(owner=dept, perm=self.perm).value
            for dept in self.front_walker_depts
        ]
        expect = [
            True,
            True,
            True,
            True,
            True,
            True,
            True,
            True,
            True,
            True,
        ]
        self.assertEqual(res, expect)

        DeptPerm.valid_objects.get(owner=self.root,
                                   perm=self.perm).update_status(0)
        res = [
            DeptPerm.valid_objects.get(owner=dept, perm=self.perm).value
            for dept in self.front_walker_depts
        ]
        expect = [
            False,
            False,
            False,
            False,
            False,
            False,
            False,
            False,
            False,
            False,
        ]
        self.assertEqual(res, expect)

        DeptPerm.valid_objects.get(owner=self.dept_1,
                                   perm=self.perm).update_status(1)
        res = [
            DeptPerm.valid_objects.get(owner=dept, perm=self.perm).value
            for dept in self.front_walker_depts
        ]
        expect = [
            False,
            True,
            True,
            True,
            True,
            True,
            True,
            False,
            False,
            False,
        ]
        self.assertEqual(res, expect)

        DeptPerm.valid_objects.get(owner=self.dept_1_1,
                                   perm=self.perm).update_status(0)
        res = [
            DeptPerm.valid_objects.get(owner=dept, perm=self.perm).value
            for dept in self.front_walker_depts
        ]
        expect = [
            False,
            True,
            True,
            True,
            True,
            True,
            True,
            False,
            False,
            False,
        ]
        self.assertEqual(res, expect)

    def test_flush_dept_perm(self):
        dept_perm = self.dept_1_1.get_perm(self.perm)
        dept_perm.status = 1
        dept_perm.save()

        previous = [
            False,
            False,
            False,
            False,
            False,
            False,
            False,
            False,
            False,
            False,
        ]
        res = [
            DeptPerm.valid_objects.get(owner=dept, perm=self.perm).value
            for dept in self.front_walker_depts
        ]
        self.assertEqual(previous, res)

        flush_dept_perm()

        expect = [
            False,
            False,
            True,
            True,
            True,
            True,
            False,
            False,
            False,
            False,
        ]
        res = [
            DeptPerm.valid_objects.get(owner=dept, perm=self.perm).value
            for dept in self.front_walker_depts
        ]
        self.assertEqual(DeptPerm.valid_objects.filter(value=True).count(), 4)
        self.assertEqual(expect, res)

    def test_flush_user_perm(self):
        self.rdb_executer.add_user_to_depts(self.user, [self.dept_1_2])
        dept_perm = self.dept_1_1.get_perm(self.perm)
        dept_perm.status = 1
        dept_perm.save()
        flush_dept_perm()

        flush_user_perm()
        self.assertFalse(self.user.get_perm(self.perm).value)
        self.assertFalse(self.user.get_perm(self.perm).dept_perm_value)

        self.rdb_executer.add_user_to_depts(self.user, [self.dept_1_1])
        flush_user_perm()
        self.assertTrue(self.user.get_perm(self.perm).value)
        self.assertTrue(self.user.get_perm(self.perm).dept_perm_value)
Ejemplo n.º 10
0
 def setUp(self):
     self.rdb_executer = RDBExecuter()
     self.root_dept = Dept.valid_objects.get(uid='root')
     self.root_group = Group.valid_objects.get(uid='root')
Ejemplo n.º 11
0
class BasicTestCase(TestCase):
    maxDiff = None

    def setUp(self):
        self.rdb_executer = RDBExecuter()
        self.root_dept = Dept.valid_objects.get(uid='root')
        self.root_group = Group.valid_objects.get(uid='root')

    def test_user_dn(self):
        user = self.rdb_executer.create_user(USER_DATA)
        self.assertEqual(user.dn, 'uid=employee_1,ou=people,dc=example,dc=org')

    def test_dept_dn(self):
        parent_dept = self.rdb_executer.create_dept(PARENT_DEPT_DATA)
        self.rdb_executer.add_dept_to_dept(parent_dept, self.root_dept)

        dept = self.rdb_executer.create_dept(DEPT_DATA)
        self.assertEqual(dept.dn, 'cn=dev,ou=dept,dc=example,dc=org')
        self.rdb_executer.add_dept_to_dept(dept, parent_dept)

        self.assertEqual(dept.dn, 'cn=dev,cn=IT,ou=dept,dc=example,dc=org')
        self.assertEqual(parent_dept.dn, 'cn=IT,ou=dept,dc=example,dc=org')

        self.assertEqual(self.root_dept.dn, 'ou=dept,dc=example,dc=org')

    def test_group_dn(self):
        parent_group = self.rdb_executer.create_group(PARENT_GROUP_DATA)
        self.rdb_executer.add_group_to_group(parent_group, self.root_group)

        group = self.rdb_executer.create_group(GROUP_DATA)
        self.assertEqual(group.dn, 'cn=supervisor,ou=group,dc=example,dc=org')
        self.rdb_executer.add_group_to_group(group, parent_group)

        self.assertEqual(
            group.dn, 'cn=supervisor,cn=manager,ou=group,dc=example,dc=org')
        self.assertEqual(parent_group.dn,
                         'cn=manager,ou=group,dc=example,dc=org')

        self.assertEqual(self.root_group.dn, 'ou=group,dc=example,dc=org')