示例#1
0
def test_add_subjects_multiple_times(db):
    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")
    value = {
        "name": "testuser",
        "description": "test",
    }
    subject = data_helper.add_subject(policy_id=policy_id, value=value)
    subject_id = list(subject.keys())[0]
    perimeter_id = subject[subject_id].get('id')
    assert subject
    value = {
        "name": "testuser",
        "description": "test",
    }
    subject_category_id, object_category_id, action_category_id, meta_rule_id, policy_id = mock_data.create_new_policy(
        subject_category_name="subject_category2",
        object_category_name="object_category2",
        action_category_name="action_category2",
        meta_rule_name="meta_rule_2",
        model_name="model2")
    subject = data_helper.add_subject(policy_id=policy_id, perimeter_id=perimeter_id, value=value)
    assert subject
    subject_id = list(subject.keys())[0]
    assert len(subject[subject_id].get('policy_list')) == 2
示例#2
0
def test_get_subjects_with_invalid_policy_id(db):
    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")
    value = {
        "name": "testuser",
        "description": "test",
    }
    data_helper.add_subject(policy_id=policy_id, value=value)
    with pytest.raises(PolicyUnknown) as exception_info:
        data_helper.get_subjects(policy_id="invalid")
    assert str(exception_info.value) == '400: Policy Unknown'
示例#3
0
def test_delete_policies_with_subject_perimeter(db):
    policies = policy_helper.add_policies()
    policy_id1 = list(policies.keys())[0]

    value = {
        "name": "testuser",
        "security_pipeline": [policy_id1],
        "keystone_project_id": "keystone_project_id1",
        "description": "...",
    }
    data_helper.add_subject(policy_id=policy_id1, value=value)
    with pytest.raises(DeletePolicyWithPerimeter) as exception_info:
        policy_helper.delete_policies(policy_id1)
    assert str(exception_info.value) == '400: Policy With Perimeter Error'
    assert 'Cannot delete policy with perimeter'== exception_info.value.description
示例#4
0
def test_get_subjects(db):
    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")
    value = {
        "name": "testuser",
        "description": "test",
    }
    data_helper.add_subject(policy_id=policy_id, value=value)
    subjects = data_helper.get_subjects(policy_id=policy_id)
    assert subjects
    assert len(subjects) == 1
    subject_id = list(subjects.keys())[0]
    assert subjects[subject_id].get('policy_list')[0] == policy_id
示例#5
0
def test_add_subject_with_same_policy_twice(db):
    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")
    value = {
        "name": "testuser",
        "description": "test",
    }
    subject = data_helper.add_subject(policy_id=policy_id, value=value)
    assert subject
    subject_id = list(subject.keys())[0]
    assert len(subject[subject_id].get('policy_list')) == 1
    with pytest.raises(PolicyExisting) as exception_info:
        data_helper.add_subject(policy_id=policy_id, value=value)
    assert str(exception_info.value) == '409: Policy Already Exists'
示例#6
0
def test_delete_subject(db):
    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")
    value = {
        "name": "testuser",
        "description": "test",
    }
    subject = data_helper.add_subject(policy_id=policy_id, value=value)
    subject_id = list(subject.keys())[0]
    data_helper.delete_subject(policy_id, subject_id)
    subjects = data_helper.get_subjects(policy_id, )
    assert not subjects