diff options
Diffstat (limited to 'python_moondb/tests/unit_python/models')
3 files changed, 393 insertions, 436 deletions
diff --git a/python_moondb/tests/unit_python/models/test_categories.py b/python_moondb/tests/unit_python/models/test_categories.py index 8782f172..f87d0e12 100644 --- a/python_moondb/tests/unit_python/models/test_categories.py +++ b/python_moondb/tests/unit_python/models/test_categories.py @@ -1,277 +1,79 @@ -# Copyright 2018 Open Platform for NFV Project, Inc. and its contributors +# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors # This software is distributed under the terms and conditions of the 'Apache-2.0' # license which can be found in the file 'LICENSE' in this package distribution # or at 'http://www.apache.org/licenses/LICENSE-2.0'. -from .test_meta_rules import * -import policies.mock_data as mock_data -import policies.test_data as test_data +import pytest +import logging +from python_moonutilities.exceptions import * +from helpers import category_helper logger = logging.getLogger("moon.db.tests.models.test_categories") - -def add_subject_category(cat_id=None, value=None): - from python_moondb.core import ModelManager - category = ModelManager.add_subject_category(user_id=None, category_id=cat_id, value=value) - return category - - def test_add_subject_category_twice(): - category = add_subject_category(value={"name": "category name", "description": "description 1"}) + category = category_helper.add_subject_category(value={"name": "category name", "description": "description 1"}) category_id = list(category.keys())[0] assert category is not None with pytest.raises(SubjectCategoryExisting): - add_subject_category(category_id, value={"name": "category name", "description": "description 2"}) - - -def test_add_subject_category_twice_with_same_name(): - category = add_subject_category(value={"name": "category name", "description": "description 1"}) - assert category is not None - with pytest.raises(SubjectCategoryExisting): - add_subject_category(value={"name": "category name", "description": "description 2"}) - - -def get_subject_category(cat_id=None): - from python_moondb.core import ModelManager - category = ModelManager.get_subject_categories(user_id=None, category_id=cat_id) - return category + category_helper.add_subject_category(category_id, + value={"name": "category name", "description": "description 2"}) def test_get_subject_categories(): - added_category = add_subject_category(value={"name": "category name", "description": "description 1"}) + added_category = category_helper.add_subject_category( + value={"name": "category name", "description": "description 1"}) category_id = list(added_category.keys())[0] - subject_category = get_subject_category(category_id) + subject_category = category_helper.get_subject_category(category_id) assert subject_category == added_category def test_get_subject_categories_with_invalid_id(): category_id = "invalid_id" - subject_category = get_subject_category(category_id) + subject_category = category_helper.get_subject_category(category_id) assert len(subject_category) == 0 - category = add_subject_category(value={"name": "category name", "description": "description 1"}) - assert category is not None - with pytest.raises(SubjectCategoryExisting): - add_subject_category(value={"name": "category name", "description": "description 2"}) - - -def delete_subject_category(cat_id=None): - from python_moondb.core import ModelManager - ModelManager.delete_subject_category(user_id=None, category_id=cat_id) - - -def test_delete_subject_category(db): - category = add_subject_category(value={"name": "category name", "description": "description 1"}) - delete_subject_category(list(category.keys())[0]) - - -def test_delete_subject_category_with_invalid_id(db): - with pytest.raises(SubjectCategoryUnknown) as exception_info: - delete_subject_category(-1) - - -def test_delete_subject_category_with_meta_rule(db): - category = add_subject_category(value={"name": "category name", "description": "description 1"}) - subject_category_id = list(category.keys())[0] - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": [subject_category_id], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] - } - add_meta_rule(value=value) - with pytest.raises(DeleteCategoryWithMetaRule): - delete_subject_category(subject_category_id) - - -def test_delete_subject_category_with_data(db): - category = add_subject_category(value={"name": "category name", "description": "description 1"}) - subject_category_id = list(category.keys())[0] - policy_id = mock_data.get_policy_id() - data_id = "data_id_1" - category_id = subject_category_id - value = { - "name": "subject-security-level", - "description": {"low": "", "medium": "", "high": ""}, - } - test_data.add_subject_data(policy_id, data_id, category_id, value) - with pytest.raises(DeleteCategoryWithData): - delete_subject_category(subject_category_id) - - -def add_object_category(cat_id=None, value=None): - from python_moondb.core import ModelManager - category = ModelManager.add_object_category(user_id=None, category_id=cat_id, value=value) - return category def test_add_object_category_twice(): - category = add_object_category(value={"name": "category name", "description": "description 1"}) + category = category_helper.add_object_category(value={"name": "category name", "description": "description 1"}) category_id = list(category.keys())[0] assert category is not None with pytest.raises(ObjectCategoryExisting): - add_object_category(category_id, value={"name": "category name", "description": "description 2"}) - - -def test_add_object_category_twice_with_same_name(): - category = add_object_category(value={"name": "category name", "description": "description 1"}) - assert category is not None - with pytest.raises(ObjectCategoryExisting): - add_object_category(value={"name": "category name", "description": "description 2"}) - - -def get_object_category(cat_id=None): - from python_moondb.core import ModelManager - category = ModelManager.get_object_categories(user_id=None, category_id=cat_id) - return category + category_helper.add_object_category(category_id, + value={"name": "category name", "description": "description 2"}) def test_get_object_categories(): - added_category = add_object_category(value={"name": "category name", "description": "description 1"}) + added_category = category_helper.add_object_category( + value={"name": "category name", "description": "description 1"}) category_id = list(added_category.keys())[0] - object_category = get_object_category(category_id) + object_category = category_helper.get_object_category(category_id) assert object_category == added_category def test_get_object_categories_with_invalid_id(): category_id = "invalid_id" - object_category = get_object_category(category_id) + object_category = category_helper.get_object_category(category_id) assert len(object_category) == 0 - category = add_object_category(value={"name": "category name", "description": "description 1"}) - assert category is not None - with pytest.raises(ObjectCategoryExisting): - add_object_category(value={"name": "category name", "description": "description 2"}) - - -def delete_object_category(cat_id=None): - from python_moondb.core import ModelManager - ModelManager.delete_object_category(user_id=None, category_id=cat_id) - - -def test_delete_object_category(db): - category = add_object_category(value={"name": "category name", "description": "description 1"}) - delete_object_category(list(category.keys())[0]) - - -def test_delete_object_category_with_invalid_id(db): - with pytest.raises(ObjectCategoryUnknown) as exception_info: - delete_object_category(-1) - - -def test_delete_object_category_with_meta_rule(db): - category = add_object_category(value={"name": "category name", "description": "description 1"}) - object_category_id = list(category.keys())[0] - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": ["subject_id_1"], - "object_categories": [object_category_id], - "action_categories": ["action_type_id_1"] - } - add_meta_rule(value=value) - with pytest.raises(DeleteCategoryWithMetaRule): - delete_object_category(object_category_id) - - -def test_delete_object_category_with_data(db): - policy_id = mock_data.get_policy_id() - category = add_object_category(value={"name": "category name", "description": "description 1"}) - object_category_id = list(category.keys())[0] - data_id = "data_id_1" - category_id = object_category_id - value = { - "name": "object-security-level", - "description": {"low": "", "medium": "", "high": ""}, - } - test_data.add_object_data(policy_id, data_id, category_id, value) - with pytest.raises(DeleteCategoryWithData): - delete_object_category(object_category_id) - - -def add_action_category(cat_id=None, value=None): - from python_moondb.core import ModelManager - category = ModelManager.add_action_category(user_id=None, category_id=cat_id, value=value) - return category def test_add_action_category_twice(): - category = add_action_category(value={"name": "category name", "description": "description 1"}) + category = category_helper.add_action_category(value={"name": "category name", "description": "description 1"}) category_id = list(category.keys())[0] assert category is not None with pytest.raises(ActionCategoryExisting): - add_action_category(category_id, value={"name": "category name", "description": "description 2"}) - - -def test_add_action_category_twice_with_same_name(): - category = add_action_category(value={"name": "category name", "description": "description 1"}) - assert category is not None - with pytest.raises(ActionCategoryExisting): - add_action_category(value={"name": "category name", "description": "description 2"}) - - -def get_action_category(cat_id=None): - from python_moondb.core import ModelManager - category = ModelManager.get_action_categories(user_id=None, category_id=cat_id) - return category + category_helper.add_action_category(category_id, + value={"name": "category name", "description": "description 2"}) def test_get_action_categories(): - added_category = add_action_category(value={"name": "category name", "description": "description 1"}) + added_category = category_helper.add_action_category( + value={"name": "category name", "description": "description 1"}) category_id = list(added_category.keys())[0] - action_category = get_action_category(category_id) + action_category = category_helper.get_action_category(category_id) assert action_category == added_category def test_get_action_categories_with_invalid_id(): category_id = "invalid_id" - action_category = get_action_category(category_id) + action_category = category_helper.get_action_category(category_id) assert len(action_category) == 0 - category = add_action_category(value={"name": "category name", "description": "description 1"}) - assert category is not None - with pytest.raises(ActionCategoryExisting): - add_action_category(value={"name": "category name", "description": "description 2"}) - - -def delete_action_category(cat_id=None): - from python_moondb.core import ModelManager - ModelManager.delete_action_category(user_id=None, category_id=cat_id) - - -def test_delete_action_category(db): - category = add_action_category(value={"name": "category name", "description": "description 1"}) - delete_action_category(list(category.keys())[0]) - - -def test_delete_action_category_with_invalid_id(db): - with pytest.raises(ActionCategoryUnknown) as exception_info: - delete_action_category(-1) - - -def test_delete_action_category_with_meta_rule(db): - category = add_action_category(value={"name": "category name", "description": "description 1"}) - action_category_id = list(category.keys())[0] - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": ["subject_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": [action_category_id] - } - add_meta_rule(value=value) - with pytest.raises(DeleteCategoryWithMetaRule): - delete_action_category(action_category_id) - - -def test_delete_action_category_with_data(db): - category = add_action_category(value={"name": "category name", "description": "description 1"}) - action_category_id = list(category.keys())[0] - policy_id = mock_data.get_policy_id() - data_id = "data_id_1" - category_id = action_category_id - value = { - "name": "action-type", - "description": {"vm-action": "", "storage-action": "", }, - } - test_data.add_action_data(policy_id, data_id, category_id, value) - with pytest.raises(DeleteCategoryWithData): - delete_action_category(action_category_id) diff --git a/python_moondb/tests/unit_python/models/test_meta_rules.py b/python_moondb/tests/unit_python/models/test_meta_rules.py index 4e60e11a..102cd724 100644 --- a/python_moondb/tests/unit_python/models/test_meta_rules.py +++ b/python_moondb/tests/unit_python/models/test_meta_rules.py @@ -1,141 +1,113 @@ -# Copyright 2018 Open Platform for NFV Project, Inc. and its contributors +# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors # This software is distributed under the terms and conditions of the 'Apache-2.0' # license which can be found in the file 'LICENSE' in this package distribution # or at 'http://www.apache.org/licenses/LICENSE-2.0'. -from .test_models import * - - -def set_meta_rule(meta_rule_id, value=None): - from python_moondb.core import ModelManager - if not value: - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] - } - return ModelManager.set_meta_rule(user_id=None, meta_rule_id=meta_rule_id, value=value) - - -def add_meta_rule(meta_rule_id=None, value=None): - from python_moondb.core import ModelManager - if not value: - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] - } - return ModelManager.add_meta_rule(user_id=None, meta_rule_id=meta_rule_id, value=value) - - -def get_meta_rules(meta_rule_id=None): - from python_moondb.core import ModelManager - return ModelManager.get_meta_rules(user_id=None, meta_rule_id=meta_rule_id) - - -def delete_meta_rules(meta_rule_id=None): - from python_moondb.core import ModelManager - ModelManager.delete_meta_rule(user_id=None, meta_rule_id=meta_rule_id) +import pytest +from helpers import meta_rule_helper +import helpers.mock_data as mock_data def test_set_not_exist_meta_rule_error(db): # set not existing meta rule and expect to raise and error with pytest.raises(Exception) as exception_info: - set_meta_rule(meta_rule_id=None) - assert str(exception_info.value) == '400: Sub Meta Rule Unknown' + meta_rule_helper.set_meta_rule(meta_rule_id=None) + assert str(exception_info.value) == '400: Meta Rule Unknown' def test_add_new_meta_rule_success(db): + action_category_id = mock_data.create_action_category("action_category_id1") + subject_category_id = mock_data.create_subject_category("subject_category_id1") + object_category_id = mock_data.create_object_category("object_category_id1") value = { "name": "MLS_meta_rule", "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] - } - metaRules = add_meta_rule() - assert isinstance(metaRules, dict) - assert metaRules - assert len(metaRules) is 1 - meta_rule_id = list(metaRules.keys())[0] - for key in ("name", "description", "subject_categories", "object_categories", "action_categories"): - assert key in metaRules[meta_rule_id] - assert metaRules[meta_rule_id][key] == value[key] - - -def test_add_new_meta_rule_with_same_name_twice(db): - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] + "subject_categories": [subject_category_id], + "object_categories": [object_category_id], + "action_categories": [action_category_id] } - meta_rules = add_meta_rule(value=value) + meta_rules = meta_rule_helper.add_meta_rule(value=value) assert isinstance(meta_rules, dict) assert meta_rules - with pytest.raises(Exception) as exc_info: - add_meta_rule(value=value) + assert len(meta_rules) is 1 + meta_rule_id = list(meta_rules.keys())[0] + for key in ("name", "description", "subject_categories", "object_categories", "action_categories"): + assert key in meta_rules[meta_rule_id] + assert meta_rules[meta_rule_id][key] == value[key] -def test_set_meta_rule_succes(db): +def test_set_meta_rule_success(db): # arrange - meta_rules = add_meta_rule() + meta_rules = meta_rule_helper.add_meta_rule() meta_rule_id = list(meta_rules.keys())[0] + action_category_id = mock_data.create_action_category("action_category_id2") + subject_category_id = mock_data.create_subject_category("subject_category_id2") + object_category_id = mock_data.create_object_category("object_category_id2") updated_value = { "name": "MLS_meta_rule", "description": "test", - "subject_categories": ["user_role_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] + "subject_categories": [subject_category_id], + "object_categories": [object_category_id], + "action_categories": [action_category_id] } # action - updated_meta_rule = set_meta_rule(meta_rule_id, updated_value) + updated_meta_rule = meta_rule_helper.set_meta_rule(meta_rule_id, updated_value) # assert updated_meta_rule_id = list(updated_meta_rule.keys())[0] assert updated_meta_rule_id == meta_rule_id - assert updated_meta_rule[updated_meta_rule_id]["subject_categories"] == \ - updated_value["subject_categories"] + assert updated_meta_rule[updated_meta_rule_id]["subject_categories"] == updated_value["subject_categories"] def test_add_existing_meta_rule_error(db): - meta_rules = add_meta_rule() + action_category_id = mock_data.create_action_category("action_category_id3") + subject_category_id = mock_data.create_subject_category("subject_category_id3") + object_category_id = mock_data.create_object_category("object_category_id3") + value = { + "name": "MLS_meta_rule", + "description": "test", + "subject_categories": [subject_category_id], + "object_categories": [object_category_id], + "action_categories": [action_category_id] + } + meta_rules = meta_rule_helper.add_meta_rule(value=value) meta_rule_id = list(meta_rules.keys())[0] with pytest.raises(Exception) as exception_info: - add_meta_rule(meta_rule_id=meta_rule_id) + meta_rule_helper.add_meta_rule(meta_rule_id=meta_rule_id) assert str(exception_info.value) == '400: Sub Meta Rule Existing' def test_get_meta_rule_success(db): # arrange + action_category_id = mock_data.create_action_category("action_type") + subject_category_id = mock_data.create_subject_category("user_security_level") + object_category_id = mock_data.create_object_category("vm_security_level") values = {} value1 = { "name": "MLS_meta_rule", "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] + "subject_categories": [subject_category_id], + "object_categories": [object_category_id], + "action_categories": [action_category_id] } - meta_rules1 = add_meta_rule(value=value1) + meta_rules1 = meta_rule_helper.add_meta_rule(value=value1) meta_rule_id1 = list(meta_rules1.keys())[0] values[meta_rule_id1] = value1 + action_category_id = mock_data.create_action_category("action_type2") + subject_category_id = mock_data.create_subject_category("user_security_level2") + object_category_id = mock_data.create_object_category("vm_security_level2") value2 = { "name": "rbac_meta_rule", "description": "test", - "subject_categories": ["user_role_id_1"], - "object_categories": ["vm_id_1"], - "action_categories": ["action_type_id_1"] + "subject_categories": [subject_category_id], + "object_categories": [object_category_id], + "action_categories": [action_category_id] } - meta_rules2 = add_meta_rule(value=value2) + meta_rules2 = meta_rule_helper.add_meta_rule(value=value2) meta_rule_id2 = list(meta_rules2.keys())[0] values[meta_rule_id2] = value2 # action - meta_rules = get_meta_rules() + meta_rules = meta_rule_helper.get_meta_rules() # assert assert isinstance(meta_rules, dict) assert meta_rules @@ -148,10 +120,10 @@ def test_get_meta_rule_success(db): def test_get_specific_meta_rule_success(db): # arrange - added_meta_rules = add_meta_rule() + added_meta_rules = meta_rule_helper.add_meta_rule() added_meta_rule_id = list(added_meta_rules.keys())[0] # action - meta_rules = get_meta_rules(meta_rule_id=added_meta_rule_id) + meta_rules = meta_rule_helper.get_meta_rules(meta_rule_id=added_meta_rule_id) meta_rule_id = list(meta_rules.keys())[0] # assert assert meta_rule_id == added_meta_rule_id @@ -161,58 +133,28 @@ def test_get_specific_meta_rule_success(db): def test_delete_meta_rules_success(db): + action_category_id = mock_data.create_action_category("action_type") + subject_category_id = mock_data.create_subject_category("user_security_level") + object_category_id = mock_data.create_object_category("vm_security_level") # arrange value1 = { "name": "MLS_meta_rule", "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] + "subject_categories": [subject_category_id], + "object_categories": [object_category_id], + "action_categories": [action_category_id] } - meta_rules1 = add_meta_rule(value=value1) + meta_rules1 = meta_rule_helper.add_meta_rule(value=value1) meta_rule_id1 = list(meta_rules1.keys())[0] - value2 = { - "name": "rbac_meta_rule", - "description": "test", - "subject_categories": ["user_role_id_1"], - "object_categories": ["vm_id_1"], - "action_categories": ["action_type_id_1"] - } - meta_rules2 = add_meta_rule(value=value2) - meta_rule_id2 = list(meta_rules2.keys())[0] - # action - delete_meta_rules(meta_rule_id1) + meta_rule_helper.delete_meta_rules(meta_rule_id1) # assert - meta_rules = get_meta_rules() + meta_rules = meta_rule_helper.get_meta_rules() assert meta_rule_id1 not in meta_rules def test_delete_invalid_meta_rules_error(db): with pytest.raises(Exception) as exception_info: - delete_meta_rules("INVALID_META_RULE_ID") - assert str(exception_info.value) == '400: Sub Meta Rule Unknown' - - -def test_delete_meta_rule_with_assigned_model(db): - value = { - "name": "MLS_meta_rule", - "description": "test", - "subject_categories": ["user_security_level_id_1"], - "object_categories": ["vm_security_level_id_1"], - "action_categories": ["action_type_id_1"] - } - metaRules = add_meta_rule() - assert isinstance(metaRules, dict) - assert metaRules - assert len(metaRules) is 1 - meta_rule_id = list(metaRules.keys())[0] - model_value1 = { - "name": "MLS", - "description": "test", - "meta_rules": meta_rule_id - } - add_model(value=model_value1) - with pytest.raises(DeleteMetaRuleWithModel) as exception_info: - delete_meta_rules(meta_rule_id) + meta_rule_helper.delete_meta_rules("INVALID_META_RULE_ID") + assert str(exception_info.value) == '400: Meta Rule Unknown' diff --git a/python_moondb/tests/unit_python/models/test_models.py b/python_moondb/tests/unit_python/models/test_models.py index 251792c5..0026345c 100644 --- a/python_moondb/tests/unit_python/models/test_models.py +++ b/python_moondb/tests/unit_python/models/test_models.py @@ -1,4 +1,4 @@ -# Copyright 2018 Open Platform for NFV Project, Inc. and its contributors +# Copyright 2015 Open Platform for NFV Project, Inc. and its contributors # This software is distributed under the terms and conditions of the 'Apache-2.0' # license which can be found in the file 'LICENSE' in this package distribution # or at 'http://www.apache.org/licenses/LICENSE-2.0'. @@ -6,54 +6,17 @@ import pytest from python_moonutilities.exceptions import * import logging -import policies.test_policies as test_policies +import helpers.mock_data as mock_data +import helpers.model_helper as model_helper +import helpers.category_helper as category_helper +import helpers.policy_helper as policy_helper logger = logging.getLogger("moon.db.tests.test_model") -def get_models(model_id=None): - from python_moondb.core import ModelManager - return ModelManager.get_models(user_id=None, model_id=model_id) - - -def add_model(model_id=None, value=None): - from python_moondb.core import ModelManager - if not value: - name = "MLS" if model_id is None else "MLS " + model_id - value = { - "name": name, - "description": "test", - "meta_rules": "meta_rule_mls_1" - } - return ModelManager.add_model(user_id=None, model_id=model_id, value=value) - - -def delete_models(uuid=None, name=None): - from python_moondb.core import ModelManager - if not uuid: - for model_id, model_value in get_models(): - if name == model_value['name']: - uuid = model_id - break - ModelManager.delete_model(user_id=None, model_id=uuid) - - -def delete_all_models(): - from python_moondb.core import ModelManager - models_values = get_models() - print(models_values) - for model_id, model_value in models_values.items(): - ModelManager.delete_model(user_id=None, model_id=model_id) - - -def update_model(model_id=None, value=None): - from python_moondb.core import ModelManager - return ModelManager.update_model(user_id=None, model_id=model_id, value=value) - - def test_get_models_empty(db): # act - models = get_models() + models = model_helper.get_models() # assert assert isinstance(models, dict) assert not models @@ -61,75 +24,107 @@ def test_get_models_empty(db): def test_get_model(db): # prepare - add_model(model_id="mls_model_id") + model_helper.add_model(model_id="mls_model_id") # act - models = get_models() + models = model_helper.get_models() # assert assert isinstance(models, dict) assert models # assert model is not empty assert len(models) is 1 - delete_all_models() + model_helper.delete_all_models() def test_get_specific_model(db): # prepare - add_model(model_id="mls_model_id") - add_model(model_id="rbac_model_id") + model_helper.add_model(model_id="mls_model_id") # act - models = get_models(model_id="mls_model_id") + models = model_helper.get_models(model_id="mls_model_id") # assert assert isinstance(models, dict) assert models # assert model is not empty assert len(models) is 1 - delete_all_models() + model_helper.delete_all_models() def test_add_model(db): # act - model = add_model() + model = model_helper.add_model() # assert assert isinstance(model, dict) assert model # assert model is not empty assert len(model) is 1 - delete_all_models() + model_helper.delete_all_models() def test_add_same_model_twice(db): + subject_category_id, object_category_id, action_category_id, meta_rule_id = mock_data.create_new_meta_rule( + subject_category_name="subject_category1", + object_category_name="object_category1", + action_category_name="action_category1", + meta_rule_name="meta_rule_1") + value = { + "name": "model1", + "description": "test", + "meta_rules": [meta_rule_id] + } # prepare - add_model(model_id="model_1") # add model twice + model_helper.add_model(model_id="model_1", value=value) # add model twice # act + subject_category_id, object_category_id, action_category_id, meta_rule_id = mock_data.create_new_meta_rule( + subject_category_name="subject_category2", + object_category_name="object_category2", + action_category_name="action_category2", + meta_rule_name="meta_rule_2") + value = { + "name": "model2", + "description": "test", + "meta_rules": [meta_rule_id] + } with pytest.raises(ModelExisting) as exception_info: - add_model(model_id="model_1") - delete_all_models() + model_helper.add_model(model_id="model_1", value=value) + model_helper.delete_all_models() # assert str(exception_info.value) == '409: Model Error' def test_add_model_generate_new_uuid(db): + subject_category_id, object_category_id, action_category_id, meta_rule_id1 = mock_data.create_new_meta_rule( + subject_category_name="subject_category3", + object_category_name="object_category3", + action_category_name="action_category3", + meta_rule_name="meta_rule_3") model_value1 = { "name": "MLS", "description": "test", - "meta_rules": "meta_rule_mls_1" + "meta_rules": [meta_rule_id1] } - model1 = add_model(value=model_value1) - + model1 = model_helper.add_model(value=model_value1) + subject_category_id, object_category_id, action_category_id, meta_rule_id2 = mock_data.create_new_meta_rule( + subject_category_name="subject_category4", + object_category_name="object_category4", + action_category_name="action_category4", + meta_rule_name="meta_rule_4") model_value2 = { "name": "rbac", "description": "test", - "meta_rules": "meta_rule_mls_2" + "meta_rules": [meta_rule_id2] } - model2 = add_model(value=model_value2) + model2 = model_helper.add_model(value=model_value2) assert list(model1)[0] != list(model2)[0] - delete_all_models() + model_helper.delete_all_models() def test_add_models(db): + subject_category_id, object_category_id, action_category_id, meta_rule_id = mock_data.create_new_meta_rule( + subject_category_name="subject_category5", + object_category_name="object_category5", + action_category_name="action_category5") model_value1 = { "name": "MLS", "description": "test", - "meta_rules": "meta_rule_mls_1" + "meta_rules": [meta_rule_id] } - models = add_model(value=model_value1) + models = model_helper.add_model(value=model_value1) assert isinstance(models, dict) assert models assert len(models.keys()) == 1 @@ -137,78 +132,101 @@ def test_add_models(db): for key in ("name", "meta_rules", "description"): assert key in models[model_id] assert models[model_id][key] == model_value1[key] - delete_all_models() + model_helper.delete_all_models() def test_add_models_with_same_name_twice(db): + subject_category_id, object_category_id, action_category_id, meta_rule_id = mock_data.create_new_meta_rule( + subject_category_name="subject_category5", + object_category_name="object_category5", + action_category_name="action_category5") model_value1 = { "name": "MLS", "description": "test", - "meta_rules": "meta_rule_mls_1" + "meta_rules": [meta_rule_id] } - models = add_model(value=model_value1) + models = model_helper.add_model(value=model_value1) assert isinstance(models, dict) assert models with pytest.raises(Exception) as exc_info: - add_model(value=model_value1) - delete_all_models() + model_helper.add_model(value=model_value1) + model_helper.delete_all_models() def test_delete_models(db): + subject_category_id, object_category_id, action_category_id, meta_rule_id1 = mock_data.create_new_meta_rule( + subject_category_name="subject_category6", + object_category_name="object_category6", + action_category_name="action_category6", + meta_rule_name="meta_rule_6") model_value1 = { "name": "MLS", "description": "test", - "meta_rules": "meta_rule_mls_1" + "meta_rules": [meta_rule_id1] } - model1 = add_model(value=model_value1) - + model1 = model_helper.add_model(value=model_value1) + subject_category_id, object_category_id, action_category_id, meta_rule_id2 = mock_data.create_new_meta_rule( + subject_category_name="subject_category7", + object_category_name="object_category7", + action_category_name="action_category7", + meta_rule_name="meta_rule_7") model_value2 = { "name": "rbac", "description": "test", - "meta_rules": "meta_rule_mls_2" + "meta_rules": [meta_rule_id2] } - model2 = add_model(value=model_value2) + model_helper.add_model(value=model_value2) id = list(model1)[0] - delete_models(id) + model_helper.delete_models(id) # assert - models = get_models() + models = model_helper.get_models() assert id not in models - delete_all_models() + model_helper.delete_all_models() def test_update_model(db): + subject_category_id, object_category_id, action_category_id, meta_rule_id1 = mock_data.create_new_meta_rule( + subject_category_name="subject_category8", + object_category_name="object_category8", + action_category_name="action_category8", + meta_rule_name="meta_rule_8") # prepare model_value = { "name": "MLS", "description": "test", - "meta_rules": "meta_rule_mls_1" + "meta_rules": [meta_rule_id1] } - model = add_model(value=model_value) + model = model_helper.add_model(value=model_value) model_id = list(model)[0] + subject_category_id, object_category_id, action_category_id, meta_rule_id2 = mock_data.create_new_meta_rule( + subject_category_name="subject_category9", + object_category_name="object_category9", + action_category_name="action_category9", + meta_rule_name="meta_rule_9") new_model_value = { "name": "MLS2", "description": "test", - "meta_rules": "meta_rule_mls_2" + "meta_rules": [meta_rule_id2] } # act - update_model(model_id=model_id, value=new_model_value) + model_helper.update_model(model_id=model_id, value=new_model_value) # assert - model = get_models(model_id) + model = model_helper.get_models(model_id) for key in ("name", "meta_rules", "description"): assert key in model[model_id] assert model[model_id][key] == new_model_value[key] - delete_all_models() + model_helper.delete_all_models() def test_delete_model_assigned_to_policy(db): model_value1 = { "name": "MLS", "description": "test", - "meta_rules": "meta_rule_mls_1" + "meta_rules": [] } - models = add_model(value=model_value1) + models = model_helper.add_model(value=model_value1) assert isinstance(models, dict) assert models assert len(models.keys()) == 1 @@ -219,6 +237,201 @@ def test_delete_model_assigned_to_policy(db): "genre": "authz", "description": "test", } - test_policies.add_policies(value=value) + policy_helper.add_policies(value=value) with pytest.raises(DeleteModelWithPolicy) as exception_info: - delete_models(uuid=model_id) + model_helper.delete_models(uuid=model_id) + + +def test_add_subject_category(db): + category_id = "category_id1" + value = { + "name": "subject_category", + "description": "description subject_category" + } + subject_category = category_helper.add_subject_category(category_id, value) + assert subject_category + assert len(subject_category) == 1 + + +def test_add_subject_category_with_empty_name(db): + category_id = "category_id1" + value = { + "name": "", + "description": "description subject_category" + } + with pytest.raises(Exception) as exception_info: + category_helper.add_subject_category(category_id, value) + assert str(exception_info.value) == '400: Category Name Invalid' + + +def test_add_subject_category_with_same_category_id(db): + category_id = "category_id1" + value = { + "name": "subject_category", + "description": "description subject_category" + } + category_helper.add_subject_category(category_id, value) + with pytest.raises(Exception) as exception_info: + category_helper.add_subject_category(category_id, value) + assert str(exception_info.value) == '409: Subject Category Existing' + + +def test_get_subject_category(db): + category_id = "category_id1" + value = { + "name": "subject_category", + "description": "description subject_category" + } + category_helper.add_subject_category(category_id, value) + subject_category = category_helper.get_subject_category(category_id) + assert subject_category + assert len(subject_category) == 1 + + +def test_delete_subject_category(db): + category_id = "category_id1" + value = { + "name": "subject_category", + "description": "description subject_category" + } + category_helper.add_subject_category(category_id, value) + subject_category = category_helper.delete_subject_category(category_id) + assert not subject_category + + +def test_delete_subject_category_with_unkown_category_id(db): + category_id = "invalid_category_id" + + with pytest.raises(Exception) as exception_info: + category_helper.delete_subject_category(category_id) + assert str(exception_info.value) == '400: Subject Category Unknown' + + +def test_add_object_category(db): + category_id = "category_id1" + value = { + "name": "object_category", + "description": "description object_category" + } + object_category = category_helper.add_object_category(category_id, value) + assert object_category + assert len(object_category) == 1 + + +def test_add_object_category_with_same_category_id(db): + category_id = "category_id1" + value = { + "name": "object_category", + "description": "description object_category" + } + category_helper.add_object_category(category_id, value) + with pytest.raises(Exception) as exception_info: + category_helper.add_object_category(category_id, value) + assert str(exception_info.value) == '409: Object Category Existing' + + +def test_add_object_category_with_empty_name(db): + category_id = "category_id1" + value = { + "name": "", + "description": "description object_category" + } + with pytest.raises(Exception) as exception_info: + category_helper.add_object_category(category_id, value) + assert str(exception_info.value) == '400: Category Name Invalid' + + +def test_get_object_category(db): + category_id = "category_id1" + value = { + "name": "object_category", + "description": "description object_category" + } + category_helper.add_object_category(category_id, value) + object_category = category_helper.get_object_category(category_id) + assert object_category + assert len(object_category) == 1 + + +def test_delete_object_category(db): + category_id = "category_id1" + value = { + "name": "object_category", + "description": "description object_category" + } + category_helper.add_object_category(category_id, value) + object_category = category_helper.delete_object_category(category_id) + assert not object_category + + +def test_delete_object_category_with_unkown_category_id(db): + category_id = "invalid_category_id" + + with pytest.raises(Exception) as exception_info: + category_helper.delete_object_category(category_id) + assert str(exception_info.value) == '400: Object Category Unknown' + + +def test_add_action_category(db): + category_id = "category_id1" + value = { + "name": "action_category", + "description": "description action_category" + } + action_category = category_helper.add_action_category(category_id, value) + assert action_category + assert len(action_category) == 1 + + +def test_add_action_category_with_same_category_id(db): + category_id = "category_id1" + value = { + "name": "action_category", + "description": "description action_category" + } + category_helper.add_action_category(category_id, value) + with pytest.raises(Exception) as exception_info: + category_helper.add_action_category(category_id, value) + assert str(exception_info.value) == '409: Action Category Existing' + + +def test_add_action_category_with_empty_name(db): + category_id = "category_id1" + value = { + "name": "", + "description": "description action_category" + } + with pytest.raises(Exception) as exception_info: + category_helper.add_action_category(category_id, value) + assert str(exception_info.value) == '400: Category Name Invalid' + + +def test_get_action_category(db): + category_id = "category_id1" + value = { + "name": "action_category", + "description": "description action_category" + } + category_helper.add_action_category(category_id, value) + action_category = category_helper.get_action_category(category_id) + assert action_category + assert len(action_category) == 1 + + +def test_delete_action_category(db): + category_id = "category_id1" + value = { + "name": "action_category", + "description": "description action_category" + } + category_helper.add_action_category(category_id, value) + action_category = category_helper.delete_action_category(category_id) + assert not action_category + + +def test_delete_action_category_with_unkown_category_id(db): + category_id = "invalid_category_id" + + with pytest.raises(Exception) as exception_info: + category_helper.delete_action_category(category_id) + assert str(exception_info.value) == '400: Action Category Unknown' |