163
167
in_name = redirected_file_name('<', arg[1:], args)
164
168
elif arg.startswith('>>'):
165
169
out_name = redirected_file_name('>>', arg[2:], args)
167
171
elif arg.startswith('>',):
168
172
out_name = redirected_file_name('>', arg[1:], args)
171
175
remaining.append(arg)
172
176
return in_name, out_name, out_mode, remaining
297
301
def _read_input(self, input, in_name):
298
302
if in_name is not None:
299
infile = open(in_name, 'rb')
303
infile = open(in_name, 'r')
301
305
# Command redirection takes precedence over provided input
302
306
input = infile.read()
317
321
def do_brz(self, test_case, input, args):
318
retcode, out, err = test_case._run_bzr_core(
319
args, retcode=None, encoding=None, stdin=input, working_dir=None)
320
return retcode, out, err
322
encoding = osutils.get_user_encoding()
323
if sys.version_info[0] == 2:
324
stdout = ui_testing.BytesIOWithEncoding()
325
stderr = ui_testing.BytesIOWithEncoding()
326
stdout.encoding = stderr.encoding = encoding
328
# FIXME: don't call into logging here
329
handler = trace.EncodedStreamHandler(
330
stderr, errors="replace")
332
stdout = ui_testing.StringIOWithEncoding()
333
stderr = ui_testing.StringIOWithEncoding()
334
stdout.encoding = stderr.encoding = encoding
335
handler = logging.StreamHandler(stderr)
336
handler.setLevel(logging.INFO)
338
logger = logging.getLogger('')
339
logger.addHandler(handler)
341
retcode = test_case._run_bzr_core(
342
args, encoding=encoding, stdin=input, stdout=stdout,
343
stderr=stderr, working_dir=None)
345
logger.removeHandler(handler)
347
return retcode, stdout.getvalue(), stderr.getvalue()
322
349
def do_cat(self, test_case, input, args):
323
350
(in_name, out_name, out_mode, args) = _scan_redirection_options(args)