Add permission and user_log unittest.
Fixed the bug in db/api/user_log.py Change-Id: I975160375abb7bfea5ba5861fb1a9d545debd6b5
This commit is contained in:
parent
a431d34202
commit
4e1c1fe022
@ -45,16 +45,16 @@ def _compress_response(actions, user_id):
|
||||
|
||||
|
||||
def _compress_response_by_user(actions):
|
||||
actions = {}
|
||||
actions_by_user = {}
|
||||
for action in actions:
|
||||
action_dict = action.to_dict()
|
||||
user_id = action_dict['user_id']
|
||||
del action_dict['user_id']
|
||||
actions.setdefault(user_id, []).append(action_dict)
|
||||
actions_by_user.setdefault(user_id, []).append(action_dict)
|
||||
|
||||
return [
|
||||
{'user_id': user_id, 'logs': user_actions}
|
||||
for user_id, user_actions in actions.items()
|
||||
for user_id, user_actions in actions_by_user.items()
|
||||
]
|
||||
|
||||
|
||||
|
80
compass/tests/db/api/test_permission.py
Normal file
80
compass/tests/db/api/test_permission.py
Normal file
@ -0,0 +1,80 @@
|
||||
# Copyright 2014 Huawei Technologies Co. Ltd
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import os
|
||||
import unittest2
|
||||
|
||||
from compass.db.api import database
|
||||
from compass.db.api import permission
|
||||
from compass.db.api import user as user_api
|
||||
from compass.db import exception
|
||||
from compass.utils import flags
|
||||
from compass.utils import logsetting
|
||||
|
||||
os.environ['COMPASS_IGNORE_SETTING'] = 'true'
|
||||
|
||||
|
||||
class BaseTest(unittest2.TestCase):
|
||||
"""Base Class for unit test."""
|
||||
|
||||
def setUp(self):
|
||||
super(BaseTest, self).setUp()
|
||||
database.init('sqlite://')
|
||||
database.create_db()
|
||||
self.user_object = (
|
||||
user_api.get_user_object(
|
||||
'admin@abc.com'
|
||||
)
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
database.drop_db()
|
||||
super(BaseTest, self).tearDown()
|
||||
|
||||
|
||||
class TestListPermissions(BaseTest):
|
||||
"""Test list permissions."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestListPermissions, self).setUp()
|
||||
logsetting.init()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestListPermissions, self).tearDown()
|
||||
database.drop_db()
|
||||
|
||||
def test_list_permissions(self):
|
||||
permissions = permission.list_permissions(self.user_object)
|
||||
self.assertIsNotNone(permissions)
|
||||
|
||||
|
||||
class TestGetPermission(BaseTest):
|
||||
"""Test get permission."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestGetPermission, self).setUp()
|
||||
logsetting.init()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestGetPermission, self).tearDown()
|
||||
database.drop_db()
|
||||
|
||||
def test_get_permission(self):
|
||||
get_permission = permission.get_permission(self.user_object, 1)
|
||||
self.assertIsNotNone(get_permission)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest2.main()
|
157
compass/tests/db/api/test_user_log.py
Normal file
157
compass/tests/db/api/test_user_log.py
Normal file
@ -0,0 +1,157 @@
|
||||
# Copyright 2014 Huawei Technologies Co. Ltd
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import datetime
|
||||
import logging
|
||||
import os
|
||||
import unittest2
|
||||
|
||||
from compass.db.api import database
|
||||
from compass.db.api import user as user_api
|
||||
from compass.db.api import user_log
|
||||
from compass.db import exception
|
||||
from compass.utils import flags
|
||||
from compass.utils import logsetting
|
||||
|
||||
os.environ['COMPASS_IGNORE_SETTING'] = 'true'
|
||||
|
||||
|
||||
class BaseTest(unittest2.TestCase):
|
||||
"""Base Class for unit test."""
|
||||
|
||||
def setUp(self):
|
||||
super(BaseTest, self).setUp()
|
||||
database.init('sqlite://')
|
||||
database.create_db()
|
||||
self.user_object = (
|
||||
user_api.get_user_object(
|
||||
'admin@abc.com',
|
||||
)
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
database.drop_db()
|
||||
super(BaseTest, self).tearDown()
|
||||
|
||||
|
||||
class TestListUserActions(BaseTest):
|
||||
"""Test user actions."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestListUserActions, self).setUp()
|
||||
logsetting.init()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestListUserActions, self).tearDown()
|
||||
database.drop_db()
|
||||
|
||||
def test_list_user_actions(self):
|
||||
user_log.log_user_action(
|
||||
self.user_object.id,
|
||||
action='/testaction'
|
||||
)
|
||||
user_action = user_log.list_user_actions(
|
||||
self.user_object,
|
||||
self.user_object.id
|
||||
)
|
||||
self.assertEqual(
|
||||
1,
|
||||
user_action['user_id']
|
||||
)
|
||||
|
||||
def test_list_none_user_actions(self):
|
||||
user_log.log_user_action(
|
||||
self.user_object.id,
|
||||
action='/testaction'
|
||||
)
|
||||
user_action = user_log.list_user_actions(
|
||||
self.user_object,
|
||||
2
|
||||
)
|
||||
self.assertEqual([], user_action['logs'])
|
||||
|
||||
|
||||
class TestListActions(BaseTest):
|
||||
"""Test list actions."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestListActions, self).setUp()
|
||||
logsetting.init()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestListActions, self).tearDown()
|
||||
database.drop_db()
|
||||
|
||||
def test_list_actions(self):
|
||||
user_log.log_user_action(
|
||||
self.user_object.id,
|
||||
action='/testaction'
|
||||
)
|
||||
action = user_log.list_actions(self.user_object)
|
||||
self.assertIsNotNone(action)
|
||||
|
||||
|
||||
class TestDelUserActions(BaseTest):
|
||||
"""Test delete user actions."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestDelUserActions, self).setUp()
|
||||
logsetting.init()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestDelUserActions, self).tearDown()
|
||||
database.drop_db()
|
||||
|
||||
def test_del_user_actions(self):
|
||||
user_log.log_user_action(
|
||||
self.user_object.id,
|
||||
action='/testaction'
|
||||
)
|
||||
user_log.del_user_actions(
|
||||
self.user_object,
|
||||
self.user_object.id
|
||||
)
|
||||
del_user_action = user_log.list_user_actions(
|
||||
self.user_object,
|
||||
self.user_object.id
|
||||
)
|
||||
self.assertEqual([], del_user_action['logs'])
|
||||
|
||||
|
||||
class TestDelActions(BaseTest):
|
||||
"""Test delete actions."""
|
||||
|
||||
def setUp(self):
|
||||
super(TestDelActions, self).setUp()
|
||||
logsetting.init()
|
||||
|
||||
def tearDown(self):
|
||||
super(TestDelActions, self).setUp()
|
||||
database.drop_db()
|
||||
|
||||
def test_del_actions(self):
|
||||
user_log.log_user_action(
|
||||
self.user_object.id,
|
||||
action='/testaction'
|
||||
)
|
||||
user_log.del_actions(
|
||||
self.user_object
|
||||
)
|
||||
del_action = user_log.list_actions(
|
||||
self.user_object
|
||||
)
|
||||
self.assertEqual([], del_action)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest2.main()
|
Loading…
x
Reference in New Issue
Block a user