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 http://mock/node') cli.do_set('mn-url http://mock/node') 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)) # 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_1240(self, cn_client_v2): """do_numberrep(): Sets preferred number of replicas""" cli = d1_cli.impl.cli.CLI() cli.do_reset('') cli.do_numberrep('42') received_num_replicas = cli._command_processor.get_session( ).get_replication_policy().get_number_of_replicas() assert received_num_replicas == 42
def test_1200(self, cn_client_v2): """do_allowrep(), do_denyrep(): Toggles replication""" cli = d1_cli.impl.cli.CLI() cli.do_reset('') cli.do_allowrep('') assert cli._command_processor.get_session().get_replication_policy() \ .get_replication_allowed() cli.do_denyrep('') assert not cli._command_processor.get_session().get_replication_policy() \ .get_replication_allowed()
def test_1220(self, cn_client_v2): """do_blockrep(): Adds blocked replication targets""" cli = d1_cli.impl.cli.CLI() cli.do_reset('') cli.do_blockrep('blocked-mn-1') cli.do_blockrep('blocked-mn-2') cli.do_blockrep('blocked-mn-3') blocked_mn_list = cli._command_processor.get_session( ).get_replication_policy().get_blocked() assert ['blocked-mn-1', 'blocked-mn-2', 'blocked-mn-3'] == \ blocked_mn_list
def test_1210(self, cn_client_v2): """do_preferrep(): Adds preferred replication targets""" cli = d1_cli.impl.cli.CLI() cli.do_reset('') cli.do_preferrep('preferred-mn-1') cli.do_preferrep('preferred-mn-2') cli.do_preferrep('preferred-mn-3') preferred_mn_list = cli._command_processor.get_session( ).get_replication_policy().get_preferred() assert ['preferred-mn-1', 'preferred-mn-2', 'preferred-mn-3'] == \ preferred_mn_list
def test_1250(self, cn_client_v2): """do_clearrep(): Resets replication policy to default""" cli = d1_cli.impl.cli.CLI() cli.do_reset('') cli.do_preferrep('preferred-mn-1') cli.do_preferrep('preferred-mn-2') cli.do_blockrep('blocked-mn-1') cli.do_blockrep('blocked-mn-2') cli.do_numberrep('42') cli.do_clearrep('') preferred_mn_list = cli._command_processor.get_session( ).get_replication_policy().get_preferred() assert not preferred_mn_list blocked_mn_list = cli._command_processor.get_session( ).get_replication_policy().get_blocked() assert not blocked_mn_list
def test_1110(self, cn_client_v2): """do_reset(), do_set(), do_save(), do_load(): Session to disk round trip""" cli = d1_cli.impl.cli.CLI() cli.preloop() fi, path = tempfile.mkstemp(prefix='test_dataone_cli.', suffix='.tmp', text=True) os.close(fi) # Reset, set some values and save to file cli.do_reset('') cli.do_set('editor test_editor') cli.do_set('cn-url test_cn-url') cli.do_set('key-file test-key-file') cli.do_save(path) # Reset and check that values are at their defaults cli.do_reset('') with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('editor') assert 'editor: nano' in out_stream.getvalue() with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('cn-url') assert 'cn-url: https://cn.dataone.org/cn' in out_stream.getvalue() with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('key-file') assert 'key-file: None' in out_stream.getvalue() # Load from file and verify cli.do_load(path) with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('editor') assert 'editor: test_editor' in out_stream.getvalue() with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('cn-url') assert 'cn-url: test_cn-url' in out_stream.getvalue() with d1_test.d1_test_case.capture_std() as (out_stream, err_stream): cli.do_set('key-file') assert 'key-file: test-key-file' in out_stream.getvalue()