def test_io_in_adder_active(self): """ _io_in_adder() adds proper arguments """ # set up mock parser parser = MagicMock() group = MagicMock() group.add_argument = MagicMock() parser.add_argument_group = MagicMock(return_value=group) # create a list of expected call signatures calls = [] msg = 'Overwrite input column names with this list' calls.append(call('--names', nargs='+', type=str, dest='names', metavar="name", help=msg)) default_for_input = ['csv', 'header'] io_opt_list = ['csv', 'table', 'tsv', 'json', 'header', 'noheader'] msg = "Must be one of {}".format(io_opt_list) calls.append(call('-i', '--input_options', nargs='+', type=str, dest='input_options', metavar='option', default=default_for_input, choices=io_opt_list, help=msg)) # run the code under test args = ['io_in'] config_dict = {'io_input_type': 'csv', 'io_input_header': 'header'} arg_lib._io_in_adder(parser, config_dict, *args) # make sure proper calls were made self.assertEqual(group.add_argument.call_args_list, calls)
def test_io_in_adder_inactive(self): """ _io_in_adder() doesn't do anything when io_in not specified """ parser = MagicMock() parser.add_argument = MagicMock() args = [] arg_lib._io_in_adder(parser, {}, *args) self.assertFalse(parser.add_argument.called)