Hi, Thank you for reviewing my patch.
On 2016年12月09日 06:59, fumihiko kakuma wrote: > Hi Iwase-san, > > On Mon, 5 Dec 2016 11:07:23 +0900 > IWASE Yusuke <iwase.yusu...@gmail.com> wrote: > >> Signed-off-by: IWASE Yusuke <iwase.yusu...@gmail.com> >> --- >> ryu/tests/integrated/common/docker_base.py | 179 >> ++++++++++++++--------------- >> ryu/tests/integrated/common/quagga.py | 19 +-- >> ryu/tests/integrated/common/ryubgp.py | 15 +-- >> 3 files changed, 103 insertions(+), 110 deletions(-) >> > > cut some lines > >> class Command(object): >> @@ -107,39 +115,27 @@ class Command(object): >> stdout=p_stdout, >> stderr=p_stderr) >> __stdout, __stderr = pop.communicate() >> - try: >> - if six.PY3 and isinstance(__stdout, six.binary_type): >> - _stdout = __stdout.decode('ascii') >> - else: >> - _stdout = __stdout >> - if six.PY3 and isinstance(__stderr, six.binary_type): >> - _stderr = __stderr.decode('ascii') >> - else: >> - _stderr = __stderr >> - except UnicodeError: >> - _stdout = __stdout >> - _stderr = __stderr >> - out = CommandOut(_stdout if _stdout else "") >> - out.stderr = _stderr if _stderr else "" >> - out.command = cmd >> - out.returncode = pop.returncode >> + _stdout = six.text_type(__stdout, 'utf-8') >> + _stderr = six.text_type(__stderr, 'utf-8') > > If result of command is bynary data, UnicodeError will be raised. > Will you want it? Will UnicodeError be raised? Sorry, if I'm misunderstanding, but I don't know why. As you said, the result of command is a binary type data. OTOH, shell command outputs are usually encoded in utf-8, I guess. >>> import subprocess >>> from subprocess import PIPE >>> pop = subprocess.Popen(['ls'], shell=True, stdout=PIPE, stderr=PIPE) >>> __stdout, __stderr = pop.communicate() >>> __stdout b'CONTRIBUTING.rst\nLICENSE\nMANIFEST.in\nREADME.rst\nbin\ndebian\ndoc\netc\nrun_tests.sh\nryu\nsetup.cfg\nsetup.py\ntools\ntox.ini\nwork\n' So, we can decode '__stdout' with utf-8. >>> import six >>> _stdout = six.text_type(__stdout, 'utf-8') >>> _stdout 'CONTRIBUTING.rst\nLICENSE\nMANIFEST.in\nREADME.rst\nbin\ndebian\ndoc\netc\nrun_tests.sh\nryu\nsetup.cfg\nsetup.py\ntools\ntox.ini\nwork\n' Is there any case we should concern including UnicodeError? Thanks, Iwase > > Thanks, > kakuma > >> + out = CommandOut(_stdout, _stderr, cmd, pop.returncode) >> return out >> >> def execute(self, cmd, capture=True, try_times=1, interval=1): >> + out = None >> for i in range(try_times): >> out = self._execute(cmd, capture=capture) >> LOG.info(out.command) >> if out.returncode == 0: >> return out >> - LOG.error("stdout: %s" % out) >> - LOG.error("stderr: %s" % out.stderr) >> + LOG.error("stdout: %s", out) >> + LOG.error("stderr: %s", out.stderr) >> if i + 1 >= try_times: >> break >> time.sleep(interval) >> raise CommandError(out) >> >> def sudo(self, cmd, capture=True, try_times=1, interval=1): >> - cmd = 'sudo ' + cmd >> + cmd = 'sudo %s' % cmd >> return self.execute(cmd, capture=capture, >> try_times=try_times, interval=interval) >> > ------------------------------------------------------------------------------ Developer Access Program for Intel Xeon Phi Processors Access to Intel Xeon Phi processor-based developer platforms. With one year of Intel Parallel Studio XE. Training and support from Colfax. Order your platform today.http://sdm.link/xeonphi _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel