Beispiel #1
0
def test_no_select_required(has_element):
    targets = Mock(return_value=make_future([{
        'id': 'assetselector1',
        'type': 'http://openpermissions.org/ns/op/1.1/AssetSelector',
        'set_id': '010101202',
        'max_items': 1,
        'sel_required': False
    }]))

    with pytest.raises(ValidationException):
        with patch.object(Policy, 'get_targets', targets):
            assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])
def test_no_select_required(has_element):
    targets = Mock(return_value=make_future([{
        'id': 'assetselector1',
        'type': 'http://openpermissions.org/ns/op/1.1/AssetSelector',
        'set_id': '010101202',
        'max_items': 1,
        'sel_required': False
    }
    ]))
    
    with pytest.raises(ValidationException):
        with patch.object(Policy, 'get_targets', targets):
            assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])
def test_validate_selected_multiple_assets_in_selector():
    selectors = Mock(return_value=make_future([{
        'id': 'selector1',
        'type': 'http://openpermissions.org/ns/op/1.1/AssetSelector',
        'set_id': 'set1',
        'max_items': 3,
        'sel_required': True
    }]))

    with patch.object(Policy, 'get_targets', selectors):
        assets = yield Policy.validate_assets(DB, ENTITY_ID,
                                              ['asset1', 'asset2', 'asset3'])

    assert sorted(assets) == ['asset1', 'asset2', 'asset3']
Beispiel #4
0
def test_validate_selected_multiple_assets_in_selector():
    selectors = Mock(return_value=make_future([{
        'id': 'selector1',
        'type': 'http://openpermissions.org/ns/op/1.1/AssetSelector',
        'set_id': 'set1',
        'max_items': 3,
        'sel_required': True
    }]))

    with patch.object(Policy, 'get_targets', selectors):
        assets = yield Policy.validate_assets(DB, ENTITY_ID,
                                              ['asset1', 'asset2', 'asset3'])

    assert sorted(assets) == ['asset1', 'asset2', 'asset3']
def test_ignore_invalid_target_type():
    targets = Mock(return_value=make_future([{
        'id': 'asset1',
        'type': 'http://openpermissions.org/ns/op/1.1/Asset',
        'set_id': None,
        'max_items': 1,
        'sel_required': True
    }, {
        'id': 'asset2',
        'type': 'http://openpermissions.org/ns/op/1.1/something',
        'set_id': None,
        'max_items': 1,
        'sel_required': True
    }]))

    with patch.object(Policy, 'get_targets', targets):
        assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])

    assert assets == ['asset1']
Beispiel #6
0
def test_ignore_invalid_selector():
    targets = Mock(return_value=make_future([{
        'id': 'selector1',
        'type': 'http://openpermissions.org/ns/op/1.1/AssetSelector',
        'set_id': 'set1',
        'max_items': 1,
        'sel_required': True
    }, {
        'id': 'asset2',
        'type': 'http://openpermissions.org/ns/op/1.1/AssetSelector',
        'set_id': None,
        'max_items': 1,
        'sel_required': True
    }]))

    with patch.object(Policy, 'get_targets', targets):
        assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])

    assert assets == ['asset1']
Beispiel #7
0
def test_validate_selected_too_many_assets():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ['asset1', 'asset2'])
Beispiel #8
0
def test_validate_asset_selector(mock_has_element):
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])

    assert assets == ['asset1']
    mock_has_element.assert_called_once_with(DB, 'set1', 'asset1')
def test_validate_asset_selector(mock_has_element):
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])

    assert assets == ['asset1']
    mock_has_element.assert_called_once_with(DB, 'set1', 'asset1')
Beispiel #10
0
def test_validate_target_not_requested_explicit():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'], explicit=True)
Beispiel #11
0
def test_validate_assets_policy_does_not_contain_targets():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ASSETS)
Beispiel #12
0
def test_validate_assets(get_targets):
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ASSETS)

    assert sorted(assets) == ASSETS
    get_targets.assert_called_once_with(DB, ENTITY_ID)
def test_validate_no_assets():
    assets = yield Policy.validate_assets(DB, ENTITY_ID, [])
    # have permission for assets even if didn't request them
    assert sorted(assets) == ASSETS
def test_validate_assets(get_targets):
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ASSETS)

    assert sorted(assets) == ASSETS
    get_targets.assert_called_once_with(DB, ENTITY_ID)
def test_validate_no_assets_selected_for_selector():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, [])
def test_validate_selected_too_many_assets():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ['asset1', 'asset2'])
Beispiel #17
0
def test_validate_no_assets_selected_for_selector():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, [])
def test_validate_assets_policy_does_not_contain_targets():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ASSETS)
def test_validate_target_not_requested():
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])

    assert sorted(assets) == ['asset1', 'asset2']
def test_validate_target_not_requested_explicit():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'], explicit=True)
Beispiel #21
0
def test_validate_no_assets():
    assets = yield Policy.validate_assets(DB, ENTITY_ID, [])
    # have permission for assets even if didn't request them
    assert sorted(assets) == ASSETS
def test_validate_target_asset_not_in_policy():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ['something'])
Beispiel #23
0
def test_validate_target_not_requested():
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ['asset1'])

    assert sorted(assets) == ['asset1', 'asset2']
Beispiel #24
0
def test_validate_target_asset_not_in_policy_not_all_required():
    assets = yield Policy.validate_assets(DB,
                                          ENTITY_ID, ['something'],
                                          require_all=False)

    assert sorted(assets) == ASSETS
Beispiel #25
0
def test_validate_target_asset_not_in_policy():
    with pytest.raises(ValidationException):
        yield Policy.validate_assets(DB, ENTITY_ID, ['something'])
def test_validate_target_asset_not_in_policy_not_all_required():
    assets = yield Policy.validate_assets(DB, ENTITY_ID, ['something'],
                                          require_all=False)

    assert sorted(assets) == ASSETS