def test_policy_get_all_sort_keys_and_dir(self):
        values = [{'id': '001', 'name': 'policy1', 'level': 50},
                  {'id': '002', 'name': 'policy3', 'level': 20},
                  {'id': '003', 'name': 'policy2', 'level': 40}]

        for v in values:
            data = self.new_policy_data(**v)
            db_api.policy_create(self.ctx, data)

        policies = db_api.policy_get_all(self.ctx, sort_keys=['name', 'level'],
                                         sort_dir='asc')
        self.assertEqual(3, len(policies))
        # Sorted by name
        self.assertEqual('001', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('002', policies[2].id)

        policies = db_api.policy_get_all(self.ctx, sort_keys=['level', 'name'],
                                         sort_dir='asc')
        self.assertEqual(3, len(policies))
        # Sorted by levels (ascending)
        self.assertEqual('002', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('001', policies[2].id)

        policies = db_api.policy_get_all(self.ctx, sort_keys=['level', 'name'],
                                         sort_dir='desc')
        self.assertEqual(3, len(policies))
        # Sorted by statuses (descending)
        self.assertEqual('001', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('002', policies[2].id)
Exemple #2
0
    def test_policy_get_all_sorting(self):
        values = [{'id': '001', 'name': 'policy1'},
                  {'id': '002', 'name': 'policy3'},
                  {'id': '003', 'name': 'policy2'}]

        for v in values:
            v['created_at'] = tu.utcnow(True)
            data = self.new_policy_data(**v)
            db_api.policy_create(self.ctx, data)

        # Sorted by name
        policies = db_api.policy_get_all(self.ctx, sort='name')
        self.assertEqual(3, len(policies))
        self.assertEqual('001', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('002', policies[2].id)

        # Sorted by created_at and name (ascending)
        policies = db_api.policy_get_all(self.ctx, sort='created_at,name')
        self.assertEqual(3, len(policies))
        self.assertEqual('001', policies[0].id)
        self.assertEqual('002', policies[1].id)
        self.assertEqual('003', policies[2].id)

        # Sorted by name (descending)
        policies = db_api.policy_get_all(self.ctx, sort='name:desc')
        self.assertEqual(3, len(policies))
        self.assertEqual('002', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('001', policies[2].id)
Exemple #3
0
    def test_policy_get_all(self):
        specs = [
            {'name': 'policy_short', 'cooldown': '10'},
            {'name': 'policy_long', 'cooldown': '100'},
        ]

        for spec in specs:
            data = self.new_policy_data(**spec)
            db_api.policy_create(self.ctx, data)

        policies = db_api.policy_get_all(self.ctx)
        self.assertEqual(2, len(policies))
        names = [p.name for p in policies]
        for spec in specs:
            self.assertIn(spec['name'], names)

        db_api.policy_delete(self.ctx, policies[1].id)

        # after delete one of them
        policies = db_api.policy_get_all(self.ctx)
        self.assertEqual(1, len(policies))

        # after delete both policies
        db_api.policy_delete(self.ctx, policies[0].id)

        policies = db_api.policy_get_all(self.ctx)
        self.assertEqual(0, len(policies))
Exemple #4
0
    def test_policy_get_all_sorting(self):
        values = [{'id': '001', 'name': 'policy1'},
                  {'id': '002', 'name': 'policy3'},
                  {'id': '003', 'name': 'policy2'}]

        for v in values:
            v['created_at'] = tu.utcnow()
            data = self.new_policy_data(**v)
            db_api.policy_create(self.ctx, data)

        # Sorted by name
        policies = db_api.policy_get_all(self.ctx, sort='name')
        self.assertEqual(3, len(policies))
        self.assertEqual('001', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('002', policies[2].id)

        # Sorted by created_at and name (ascending)
        policies = db_api.policy_get_all(self.ctx, sort='created_at,name')
        self.assertEqual(3, len(policies))
        self.assertEqual('001', policies[0].id)
        self.assertEqual('002', policies[1].id)
        self.assertEqual('003', policies[2].id)

        # Sorted by name (descending)
        policies = db_api.policy_get_all(self.ctx, sort='name:desc')
        self.assertEqual(3, len(policies))
        self.assertEqual('002', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('001', policies[2].id)
Exemple #5
0
    def test_policy_get_all(self):
        specs = [
            {
                'name': 'policy_short',
                'cooldown': '10'
            },
            {
                'name': 'policy_long',
                'cooldown': '100'
            },
        ]

        for spec in specs:
            data = self.new_policy_data(**spec)
            db_api.policy_create(self.ctx, data)

        policies = db_api.policy_get_all(self.ctx)
        self.assertEqual(2, len(policies))
        names = [p.name for p in policies]
        for spec in specs:
            self.assertIn(spec['name'], names)

        db_api.policy_delete(self.ctx, policies[1].id)

        # after delete one of them
        policies = db_api.policy_get_all(self.ctx)
        self.assertEqual(1, len(policies))

        # after delete both policies
        db_api.policy_delete(self.ctx, policies[0].id)

        policies = db_api.policy_get_all(self.ctx)
        self.assertEqual(0, len(policies))
Exemple #6
0
    def test_policy_get_all_with_filters(self):
        for name in ['policy1', 'policy2']:
            data = self.new_policy_data(name=name)
            db_api.policy_create(self.ctx, data)

        filters = {'name': ['policy1', 'policyx']}
        results = db_api.policy_get_all(self.ctx, filters=filters)
        self.assertEqual(1, len(results))
        self.assertEqual('policy1', results[0]['name'])

        filters = {'name': 'policy1'}
        results = db_api.policy_get_all(self.ctx, filters=filters)
        self.assertEqual(1, len(results))
        self.assertEqual('policy1', results[0]['name'])
Exemple #7
0
    def test_policy_get_all_used_sort_keys(self, mock_paginate):
        ids = ['policy1', 'policy2', 'policy3']
        for pid in ids:
            data = self.new_policy_data(id=pid)
            db_api.policy_create(self.ctx, data)

        sort_keys = consts.POLICY_SORT_KEYS
        db_api.policy_get_all(self.ctx, sort=','.join(sort_keys))

        args = mock_paginate.call_args[0]
        used_sort_keys = set(args[3])
        sort_keys.append('id')
        expected_keys = set(sort_keys)
        self.assertEqual(expected_keys, used_sort_keys)
Exemple #8
0
    def test_policy_get_all_used_sort_keys(self, mock_paginate):
        ids = ['policy1', 'policy2', 'policy3']
        for pid in ids:
            data = self.new_policy_data(id=pid)
            db_api.policy_create(self.ctx, data)

        sort_keys = consts.POLICY_SORT_KEYS
        db_api.policy_get_all(self.ctx, sort=','.join(sort_keys))

        args = mock_paginate.call_args[0]
        used_sort_keys = set(args[3])
        sort_keys.append('id')
        expected_keys = set(sort_keys)
        self.assertEqual(expected_keys, used_sort_keys)
Exemple #9
0
    def test_policy_get_all_with_filters(self):
        for name in ['policy1', 'policy2']:
            data = self.new_policy_data(name=name)
            db_api.policy_create(self.ctx, data)

        filters = {'name': ['policy1', 'policyx']}
        results = db_api.policy_get_all(self.ctx, filters=filters)
        self.assertEqual(1, len(results))
        self.assertEqual('policy1', results[0]['name'])

        filters = {'name': 'policy1'}
        results = db_api.policy_get_all(self.ctx, filters=filters)
        self.assertEqual(1, len(results))
        self.assertEqual('policy1', results[0]['name'])
Exemple #10
0
    def test_policy_get_all_diff_project(self):
        specs = [
            {'name': 'policy_short', 'cooldown': '10'},
            {'name': 'policy_long', 'cooldown': '100'},
        ]

        for spec in specs:
            data = self.new_policy_data(**spec)
            db_api.policy_create(self.ctx, data)

        new_ctx = utils.dummy_context(project='a-different-project')
        policies = db_api.policy_get_all(new_ctx)
        self.assertEqual(0, len(policies))
        policies = db_api.policy_get_all(new_ctx, project_safe=False)
        self.assertEqual(2, len(policies))
Exemple #11
0
    def test_policy_get_all_diff_project(self):
        specs = [
            {'name': 'policy_short', 'cooldown': '10'},
            {'name': 'policy_long', 'cooldown': '100'},
        ]

        for spec in specs:
            data = self.new_policy_data(**spec)
            db_api.policy_create(self.ctx, data)

        new_ctx = utils.dummy_context(project='a-different-project')
        policies = db_api.policy_get_all(new_ctx)
        self.assertEqual(0, len(policies))
        policies = db_api.policy_get_all(new_ctx, project_safe=False)
        self.assertEqual(2, len(policies))
Exemple #12
0
    def test_policy_get_all_used_sort_keys(self):
        ids = ['policy1', 'policy2', 'policy3']
        for pid in ids:
            data = self.new_policy_data(id=pid)
            db_api.policy_create(self.ctx, data)

        mock_paginate = self.patchobject(db_api.utils, 'paginate_query')
        sort_keys = ['type', 'name', 'level', 'cooldown', 'created_time',
                     'updated_time', 'deleted_time']

        db_api.policy_get_all(self.ctx, sort_keys=sort_keys)

        args = mock_paginate.call_args[0]
        used_sort_keys = set(args[3])
        expected_keys = set(['id', 'type', 'name', 'level', 'cooldown',
                             'created_time', 'updated_time', 'deleted_time'])
        self.assertEqual(expected_keys, used_sort_keys)
Exemple #13
0
    def test_policy_get_all_with_empty_filters(self):
        for name in ['policy1', 'policy2']:
            data = self.new_policy_data(name=name)
            db_api.policy_create(self.ctx, data)

        filters = None
        results = db_api.policy_get_all(self.ctx, filters=filters)
        self.assertEqual(2, len(results))
Exemple #14
0
    def test_policy_get_all_with_empty_filters(self):
        for name in ['policy1', 'policy2']:
            data = self.new_policy_data(name=name)
            db_api.policy_create(self.ctx, data)

        filters = None
        results = db_api.policy_get_all(self.ctx, filters=filters)
        self.assertEqual(2, len(results))
Exemple #15
0
    def test_policy_get_all_sort_keys_and_dir(self):
        values = [{
            'id': '001',
            'name': 'policy1',
            'level': 50
        }, {
            'id': '002',
            'name': 'policy3',
            'level': 20
        }, {
            'id': '003',
            'name': 'policy2',
            'level': 40
        }]

        for v in values:
            data = self.new_policy_data(**v)
            db_api.policy_create(self.ctx, data)

        policies = db_api.policy_get_all(self.ctx,
                                         sort_keys=['name', 'level'],
                                         sort_dir='asc')
        self.assertEqual(3, len(policies))
        # Sorted by name
        self.assertEqual('001', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('002', policies[2].id)

        policies = db_api.policy_get_all(self.ctx,
                                         sort_keys=['level', 'name'],
                                         sort_dir='asc')
        self.assertEqual(3, len(policies))
        # Sorted by levels (ascending)
        self.assertEqual('002', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('001', policies[2].id)

        policies = db_api.policy_get_all(self.ctx,
                                         sort_keys=['level', 'name'],
                                         sort_dir='desc')
        self.assertEqual(3, len(policies))
        # Sorted by statuses (descending)
        self.assertEqual('001', policies[0].id)
        self.assertEqual('003', policies[1].id)
        self.assertEqual('002', policies[2].id)
Exemple #16
0
    def test_policy_get_all_with_limit_marker(self):
        ids = ['policy1', 'policy2', 'policy3']
        for pid in ids:
            timestamp = tu.utcnow(True)
            data = self.new_policy_data(id=pid, created_at=timestamp)
            db_api.policy_create(self.ctx, data)

        # different limit settings
        policies = db_api.policy_get_all(self.ctx, limit=1)
        self.assertEqual(1, len(policies))

        policies = db_api.policy_get_all(self.ctx, limit=2)
        self.assertEqual(2, len(policies))

        # a large limit
        policies = db_api.policy_get_all(self.ctx, limit=5)
        self.assertEqual(3, len(policies))

        # use marker here
        policies = db_api.policy_get_all(self.ctx, marker='policy1')
        self.assertEqual(2, len(policies))

        policies = db_api.policy_get_all(self.ctx, marker='policy2')
        self.assertEqual(1, len(policies))

        policies = db_api.policy_get_all(self.ctx, marker='policy3')
        self.assertEqual(0, len(policies))

        policies = db_api.policy_get_all(self.ctx, limit=1, marker='policy1')
        self.assertEqual(1, len(policies))
Exemple #17
0
    def test_policy_get_all_with_limit_marker(self):
        ids = ['policy1', 'policy2', 'policy3']
        for pid in ids:
            timestamp = tu.utcnow(True)
            data = self.new_policy_data(id=pid, created_at=timestamp)
            db_api.policy_create(self.ctx, data)

        # different limit settings
        policies = db_api.policy_get_all(self.ctx, limit=1)
        self.assertEqual(1, len(policies))

        policies = db_api.policy_get_all(self.ctx, limit=2)
        self.assertEqual(2, len(policies))

        # a large limit
        policies = db_api.policy_get_all(self.ctx, limit=5)
        self.assertEqual(3, len(policies))

        # use marker here
        policies = db_api.policy_get_all(self.ctx, marker='policy1')
        self.assertEqual(2, len(policies))

        policies = db_api.policy_get_all(self.ctx, marker='policy2')
        self.assertEqual(1, len(policies))

        policies = db_api.policy_get_all(self.ctx, marker='policy3')
        self.assertEqual(0, len(policies))

        policies = db_api.policy_get_all(self.ctx, limit=1, marker='policy1')
        self.assertEqual(1, len(policies))
Exemple #18
0
    def test_policy_get_all_default_sorting(self):
        policies = []
        for x in range(3):
            data = self.new_policy_data(created_at=tu.utcnow(True))
            policies.append(db_api.policy_create(self.ctx, data))

        results = db_api.policy_get_all(self.ctx)
        self.assertEqual(3, len(results))
        self.assertEqual(policies[0].id, results[0].id)
        self.assertEqual(policies[1].id, results[1].id)
        self.assertEqual(policies[2].id, results[2].id)
Exemple #19
0
    def test_policy_get_all_default_sorting(self):
        policies = []
        for x in range(3):
            data = self.new_policy_data(created_at=tu.utcnow(True))
            policies.append(db_api.policy_create(self.ctx, data))

        results = db_api.policy_get_all(self.ctx)
        self.assertEqual(3, len(results))
        self.assertEqual(policies[0].id, results[0].id)
        self.assertEqual(policies[1].id, results[1].id)
        self.assertEqual(policies[2].id, results[2].id)
Exemple #20
0
    def test_policy_get_all_used_sort_keys(self):
        ids = ['policy1', 'policy2', 'policy3']
        for pid in ids:
            data = self.new_policy_data(id=pid)
            db_api.policy_create(self.ctx, data)

        mock_paginate = self.patchobject(db_api.utils, 'paginate_query')
        sort_keys = [
            'type', 'name', 'level', 'cooldown', 'created_time',
            'updated_time', 'deleted_time'
        ]

        db_api.policy_get_all(self.ctx, sort_keys=sort_keys)

        args = mock_paginate.call_args[0]
        used_sort_keys = set(args[3])
        expected_keys = set([
            'id', 'type', 'name', 'level', 'cooldown', 'created_time',
            'updated_time', 'deleted_time'
        ])
        self.assertEqual(expected_keys, used_sort_keys)
Exemple #21
0
 def test_policy_get_all_sort_keys_wont_change(self):
     sort_keys = ['id']
     db_api.policy_get_all(self.ctx, sort_keys=sort_keys)
     self.assertEqual(['id'], sort_keys)
Exemple #22
0
 def test_policy_get_all_sort_keys_wont_change(self):
     sort_keys = ['id']
     db_api.policy_get_all(self.ctx, sort_keys=sort_keys)
     self.assertEqual(['id'], sort_keys)