Exemplo n.º 1
0
def test_update_meta_rule_with_different_categories_combination_but_same_data(db):
    action_category_id1 = mock_data.create_action_category(uuid4().hex)
    subject_category_id1 = mock_data.create_subject_category(uuid4().hex)
    object_category_id1 = mock_data.create_object_category(uuid4().hex)
    meta_rule_name1=uuid4().hex
    value1 = {
        "name": meta_rule_name1,
        "description": "test",
        "subject_categories": [subject_category_id1],
        "object_categories": [object_category_id1],
        "action_categories": [action_category_id1]
    }
    meta_rules = meta_rule_helper.add_meta_rule(value=value1)

    action_category_id2 = mock_data.create_action_category(uuid4().hex)
    subject_category_id2 = mock_data.create_subject_category(uuid4().hex)
    object_category_id2 = mock_data.create_object_category(uuid4().hex)
    meta_rule_name2 = uuid4().hex
    value2 = {
        "name": meta_rule_name2,
        "description": "test",
        "subject_categories": [subject_category_id2],
        "object_categories": [object_category_id2],
        "action_categories": [action_category_id2]
    }
    meta_rules = meta_rule_helper.add_meta_rule(value=value2)
    meta_rule_id2 = list(meta_rules.keys())[0]
    value1['name']=value2['name']
    value1['object_categories']+=[object_category_id1]
    updated_meta_rule = meta_rule_helper.update_meta_rule(meta_rule_id2, value1)
    assert meta_rule_id2 in updated_meta_rule
Exemplo n.º 2
0
def test_update_meta_rule_with_existed_categories_combination(db):
    action_category_id1 = mock_data.create_action_category(uuid4().hex)
    subject_category_id1 = mock_data.create_subject_category(uuid4().hex)
    object_category_id1 = mock_data.create_object_category(uuid4().hex)
    meta_rule_name1=uuid4().hex
    value1 = {
        "name": meta_rule_name1,
        "description": "test",
        "subject_categories": [subject_category_id1],
        "object_categories": [object_category_id1],
        "action_categories": [action_category_id1]
    }
    meta_rules = meta_rule_helper.add_meta_rule(value=value1)

    action_category_id2 = mock_data.create_action_category(uuid4().hex)
    subject_category_id2 = mock_data.create_subject_category(uuid4().hex)
    object_category_id2 = mock_data.create_object_category(uuid4().hex)
    meta_rule_name2 = uuid4().hex
    value2 = {
        "name": meta_rule_name2,
        "description": "test",
        "subject_categories": [subject_category_id2],
        "object_categories": [object_category_id2],
        "action_categories": [action_category_id2]
    }
    meta_rules = meta_rule_helper.add_meta_rule(value=value2)
    meta_rule_id2 = list(meta_rules.keys())[0]
    value1['name']=value2['name']
    with pytest.raises(MetaRuleExisting) as exception_info:
         updated_meta_rule = meta_rule_helper.update_meta_rule(meta_rule_id2, value1)
    assert str(exception_info.value) == '409: Meta Rule Existing'
    assert exception_info.value.description=="Same categories combination existed"
Exemplo n.º 3
0
def test_update_meta_rule_success(db):
    # arrange
    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": [subject_category_id],
        "object_categories": [object_category_id],
        "action_categories": [action_category_id]
    }
    # action
    updated_meta_rule = meta_rule_helper.update_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"]
Exemplo n.º 4
0
def test_update_meta_rule_connected_with_policy_and_rule():
    subject_category_id, object_category_id, action_category_id, meta_rule_id, policy_id = mock_data.create_new_policy(
        subject_category_name="subject_category1",
        object_category_name="object_category1",
        action_category_name="action_category1",
        meta_rule_name="meta_rule_1",
        model_name="model1")
    subject_data_id = mock_data.create_subject_data(policy_id=policy_id,
                                                    category_id=subject_category_id)
    object_data_id = mock_data.create_object_data(policy_id=policy_id,
                                                  category_id=object_category_id)
    action_data_id = mock_data.create_action_data(policy_id=policy_id,
                                                  category_id=action_category_id)

    value = {
        "rule": (subject_data_id, object_data_id, action_data_id),
        "instructions": ({"decision": "grant"}),
        "enabled": "",
    }

    rules = policy_helper.add_rule(policy_id=policy_id, meta_rule_id=meta_rule_id, value=value)
    assert rules
    assert len(rules) == 1

    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": [subject_category_id],
        "object_categories": [object_category_id],
        "action_categories": [action_category_id]
    }
    with pytest.raises(MetaRuleUpdateError) as exception_info:
        updated_meta_rule = meta_rule_helper.update_meta_rule(meta_rule_id, updated_value)
    assert str(exception_info.value) == '400: Meta_Rule Update Error'
Exemplo n.º 5
0
def test_update_not_exist_meta_rule_error(db):
    # set not existing meta rule and expect to raise and error
    with pytest.raises(MetaRuleUnknown) as exception_info:
        meta_rule_helper.update_meta_rule(meta_rule_id=None)
    assert str(exception_info.value) == '400: Meta Rule Unknown'