Esempio n. 1
0
def test_add_subject_assignments(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")
    subject_id = mock_data.create_subject(policy_id)
    data_id = mock_data.create_subject_data(policy_id=policy_id,
                                            category_id=subject_category_id)

    subject_assignments = assignment_helper.add_subject_assignment(
        policy_id, subject_id, subject_category_id, data_id)
    assert subject_assignments
    subject_id_1 = list(subject_assignments.keys())[0]
    assert subject_assignments[subject_id_1]["policy_id"] == policy_id
    assert subject_assignments[subject_id_1]["subject_id"] == subject_id
    assert subject_assignments[subject_id_1][
        "category_id"] == subject_category_id
    assert len(subject_assignments[subject_id_1].get("assignments")) == 1
    assert data_id in subject_assignments[subject_id_1].get("assignments")

    with pytest.raises(SubjectAssignmentExisting) as exception_info:
        assignment_helper.add_subject_assignment(policy_id, subject_id,
                                                 subject_category_id, data_id)
    assert str(exception_info.value) == '409: Subject Assignment Existing'
    assert str(exception_info.value.description
               ) == 'The given subject assignment value is existing.'
Esempio n. 2
0
def test_delete_policies_with_subject_assignment(db):
    subject_category_id, object_category_id, action_category_id, meta_rule_id, policy_id = mock_data.create_new_policy()

    subject_id = mock_data.create_subject(policy_id)
    data_id = mock_data.create_subject_data(policy_id=policy_id, category_id=subject_category_id)
    assignment_helper.add_subject_assignment(policy_id, subject_id, subject_category_id, data_id)

    with pytest.raises(DeletePolicyWithPerimeter) as exception_info:
        policy_helper.delete_policies(policy_id)

    assert '400: Policy With Perimeter Error' == str(exception_info.value)
Esempio n. 3
0
def test_delete_subject_category_with_assignment(db):
    subject_category_id, object_category_id, action_category_id, meta_rule_id, policy_id = mock_data.create_new_policy(
    )

    subject_id = mock_data.create_subject(policy_id)
    data_id = mock_data.create_subject_data(policy_id, subject_category_id)
    assignment_helper.add_subject_assignment(policy_id, subject_id,
                                             subject_category_id, data_id)

    with pytest.raises(DeleteSubjectCategoryWithMetaRule) as exception_info:
        category_helper.delete_subject_category(subject_category_id)
    assert str(
        exception_info.value) == '400: Subject Category With Meta Rule Error'
Esempio n. 4
0
def test_get_subject_assignments_by_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")
    subject_id = mock_data.create_subject(policy_id)
    data_id = mock_data.create_subject_data(policy_id=policy_id,
                                            category_id=subject_category_id)

    assignment_helper.add_subject_assignment(policy_id, subject_id,
                                             subject_category_id, data_id)
    subj_assignments = assignment_helper.get_subject_assignments(policy_id)
    assert len(subj_assignments) == 1
Esempio n. 5
0
def test_delete_subject_with_assignment(db):

    subject_category_id, object_category_id, action_category_id, meta_rule_id, policy_id = mock_data.create_new_policy(
        subject_category_name="subject_category"+uuid4().hex,
        object_category_name="object_category"+uuid4().hex,
        action_category_name="action_category"+uuid4().hex,
        meta_rule_name="meta_rule_"+uuid4().hex)

    subject_id = mock_data.create_subject(policy_id)
    data_id = mock_data.create_subject_data(policy_id=policy_id, category_id=subject_category_id)
    assignment_helper.add_subject_assignment(policy_id, subject_id, subject_category_id, data_id)

    with pytest.raises(DeletePerimeterWithAssignment) as exception_info:
        data_helper.delete_subject(policy_id, subject_id)
    assert '400: Perimeter With Assignment Error' == str(exception_info.value)
Esempio n. 6
0
def test_get_subject_assignments(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")
    subject_id = mock_data.create_subject(policy_id)
    data_id = mock_data.create_subject_data(policy_id=policy_id,
                                            category_id=subject_category_id)

    assignment_helper.add_subject_assignment(policy_id, subject_id,
                                             subject_category_id, data_id)
    subj_assignments = assignment_helper.get_subject_assignments(
        policy_id, subject_id, subject_category_id)
    subject_id_1 = list(subj_assignments.keys())[0]
    assert subj_assignments[subject_id_1]["policy_id"] == policy_id
    assert subj_assignments[subject_id_1]["subject_id"] == subject_id
    assert subj_assignments[subject_id_1]["category_id"] == subject_category_id
    assert len(subj_assignments[subject_id_1].get("assignments")) == 1
    assert data_id in subj_assignments[subject_id_1].get("assignments")