Beispiel #1
0
 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)
Beispiel #2
0
 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
Beispiel #3
0
 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()
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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()