def test_parse_args_write_and_files(ctxrc_cls, path_cls): ctxrc_cls.from_path.return_value = mock.MagicMock() path_cls.home.return_value = Path(HOME_PATH) args = mock.MagicMock() ap = mock.MagicMock() ap.parse_args.return_value = args args.type = 'some_type' args.write = True file = mock.MagicMock() file.name = 'not <stdin>' args.files = [file] parse_args(ap, ['ctx', 'argv']) ap.error.assert_called_once()
def test_parse_args_arg_does_not_exist(ctxrc_cls, path_cls): type_arg = 'some_type_doesnt_exist' exception = TypeArgDoesNotExistException(missing_type=type_arg) ctxrc = mock.MagicMock() ctxrc.get_type_argv.side_effect = exception ctxrc_cls.from_path.return_value = ctxrc path_cls.home.return_value = Path(HOME_PATH) args = mock.MagicMock() args.write = False ap = mock.MagicMock() ap.parse_args.return_value = args args.type = type_arg parse_args(ap, ['ctx', 'argv']) ap.error.assert_called_once_with(str(exception))
def test_parse_args_write_and_no_files(ctxrc_cls, path_cls): ctxrc = mock.MagicMock() ctxrc_cls.from_path.return_value = ctxrc path_cls.home.return_value = Path(HOME_PATH) args = mock.MagicMock() ap = mock.MagicMock() ap.parse_args.return_value = args args.type = 'some_type' args.write = True file = mock.MagicMock() file.name = '<stdin>' args.files = [file] parse_args(ap, ['ctx', 'argv']) ctxrc.add_type.assert_called_once_with('some_type', ['argv']) ctxrc.save.assert_called_once_with(Path(HOME_PATH) / '.ctxrc') ap.exit.assert_called_once_with(0)
def test_parse_args_no_type(): args = mock.MagicMock() ap = mock.MagicMock() ap.parse_args.return_value = args args.type = None result_args = parse_args(ap, ['ctx', 'argv']) assert result_args is args
def test_parse_args_arg_exists(ctxrc_cls, path_cls): type_arg = 'some_arg' type_argv = ['some', 'argv'] argv = ['ctx', 'something', 'else'] ctxrc = mock.MagicMock() ctxrc.get_type_argv.return_value = type_argv ctxrc_cls.from_path.return_value = ctxrc path_cls.home.return_value = Path(HOME_PATH) args = mock.MagicMock() args.write = False args.files = [mock.MagicMock(), mock.MagicMock()] ap = mock.MagicMock() ap.parse_args.return_value = args args.type = type_arg new_args = parse_args(ap, argv) ap.parse_args.assert_called_with(type_argv + argv[1:]) ap.parse_args.assert_called_with(['some', 'argv', 'something', 'else']) assert new_args.type is None assert new_args.write is False assert new_args.files is args.files