def _add_write_operation_to_queue(self, cli, write_fun, cmd_format_str, **kwargs_dict): cli.do_reset('') cli.do_allowaccess('test_subject_1 write') cli.do_allowaccess('test_subject_3 changePermission') cli.do_preferrep('preferred-mn-2') cli.do_blockrep('blocked-mn-1') cli.do_blockrep('blocked-mn-2') cli.do_numberrep('42') cli.do_set('authoritative-mn urn:node:myTestMN') cli.do_set('rights-holder test-rights-holder-subject') cli.do_set('format-id test-format-id') cli.do_set('cn-url {}'.format(d1_test.d1_test_case.MOCK_CN_BASE_URL)) cli.do_set('mn-url {}'.format(d1_test.d1_test_case.MOCK_MN_BASE_URL)) pid_str = 'test_pid_{}'.format( d1_test.instance_generator.random_data.random_3_words()) with tempfile.NamedTemporaryFile(delete=False) as tmp_file: tmp_file.write('sciobj_for_{}'.format(pid_str).encode('utf-8')) # Add a create task to the queue. kwargs_dict.update({ 'pid': pid_str, 'tmp_file_path': tmp_file.name, }) with d1_test.d1_test_case.capture_std(): write_fun(cmd_format_str.format(**kwargs_dict)) yield pid_str os.unlink(tmp_file.name)
def test_1170(self, cn_client_v2): """do_denyaccess(): Subject without permissions raises InvalidArguments""" cli = d1_cli.impl.cli.CLI() cli.do_allowaccess('test_subject_1 write') cli.do_allowaccess('test_subject_2 write') cli.do_allowaccess('test_subject_3 changePermission') with pytest.raises(cli_exceptions.InvalidArguments): cli.do_denyaccess('unknown_subject', )
def test_1190(self, cn_client_v2): """do_clearaccess(): Removes all subjects""" cli = d1_cli.impl.cli.CLI() cli.do_allowaccess('test_subject_1 write') cli.do_allowaccess('test_subject_2 write') cli.do_allowaccess('test_subject_3 changePermission') cli.do_clearaccess('') with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('') env_str = out_stream.getvalue() assert 'test_subject_1: write' not in env_str assert 'test_subject_2: write' not in env_str assert 'test_subject_3: changePermission' not in env_str
def test_1160(self, cn_client_v2): """do_allowaccess(): Correctly sets access control""" cli = d1_cli.impl.cli.CLI() with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_allowaccess('test_subject_1 write') cli.do_allowaccess('test_subject_2 write') cli.do_allowaccess('test_subject_3 changePermission') access_pyxb = cli._command_processor.get_session( ).get_access_control() check_cnt = 0 for allow_pyxb in access_pyxb.allow: if allow_pyxb in ('test_subject_1', 'test_subject_2', 'test_subject_3'): check_cnt += 1 assert check_cnt == 3 assert 'Set changePermission access for subject "test_subject_3"' in out_stream.getvalue( )
def test_1180(self, cn_client_v2): """do_denyaccess(): Subject with permissions is removed""" cli = d1_cli.impl.cli.CLI() cli.do_allowaccess('test_subject_1 write') cli.do_allowaccess('test_subject_2 write') cli.do_allowaccess('test_subject_3 changePermission') with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('') env_str = out_stream.getvalue() assert 'test_subject_3: changePermission' in env_str with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_denyaccess('test_subject_3') assert 'Removed subject "test_subject_3"' in out_stream.getvalue() with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('') env_str = out_stream.getvalue() assert 'test_subject_1: write' in env_str assert 'test_subject_2: write' in env_str assert 'test_subject_3: changePermission' not in env_str