touch-packages team mailing list archive
-
touch-packages team
-
Mailing list archive
-
Message #24666
[Bug 1378888] Re: OptionParser on PPC64LE does not split args correctly
In Avro, the issue appears as:
[py-test] ERROR: test_fields (test_script.TestCat)
[py-test] ----------------------------------------------------------------------
[py-test] Traceback (most recent call last):
[py-test] File "/home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/test_script.py", line 169, in test_fields
[py-test] out = self._run('--fields', 'first, last')
[py-test] File "/home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/test_script.py", line 109, in _run
[py-test] out = check_output([SCRIPT, "cat", self.avro_file] + list(args))
[py-test] File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
[py-test] raise CalledProcessError(retcode, cmd, output=output)
[py-test] CalledProcessError: Command '['/home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/../scripts/avro', 'cat', '/tmp/tmp3Oiy6H', '--fields', 'first, last']' returned non-zero exit status 2
If the string 'first, last' is replaced by 'first,last' (no space), another issue appears (that does not appear on x86_64), with the string '' :
[py-test] ERROR: test_fields (test_script.TestCat)
[py-test] Traceback (most recent call last):
[py-test]
[py-test] File "/home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/test_script.py", line 173, in test_fields
[py-test] Schema: ["string", "null", "long"]
[py-test] out = self._run('--fields', '')
[py-test] Datum: None
[py-test] File "/home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/test_script.py", line 109, in _run
[py-test] Codec: deflate
[py-test] out = check_output([SCRIPT, "cat", self.avro_file] + list(args))
[py-test] Round Trip Data: [None, None, None, None, None, None, None, None, None, None]
[py-test] File "/usr/lib/python2.7/subprocess.py", line 573, in check_output
[py-test] Round Trip Data Length: 10
[py-test] raise CalledProcessError(retcode, cmd, output=output)
[py-test] Correct Round Trip: True
[py-test]
[py-test] CalledProcessError: Command '['/home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/../scripts/avro', 'cat', '/tmp/tmpJJp2gX', '--fields', '']' returned non-zero exit status 2
The issue in Python is triggered by this Avro test file:
lang/py/build/test/test_script.py
class TestCat(unittest.TestCase):
.....
def test_fields(self):
...
# Field selection (with comma and space)
out = self._run('--fields', 'first, last')
assert json.loads(out[0]) == {'first': 'daffy', 'last': 'duck'}
# Empty fields should get all
out = self._run('--fields', '')
So, there are 2 issues with OptionParser():
- 'first, last'
- '' (empty field)
--
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to python2.7 in Ubuntu.
https://bugs.launchpad.net/bugs/1378888
Title:
OptionParser on PPC64LE does not split args correctly
Status in “python2.7” package in Ubuntu:
New
Bug description:
The issue appears on PPC64 LE.
It is OK on (Ubuntu) x86_64.
Version of Python is 2.7.6 on both systems.
The issue is demonstrated while running AVRO Python tests (in lang/py : ant test).
- On Ubuntu / PPC64 LE :
$ pwd
..../lang/py
$ export PYTHONPATH=./build/src
$ /home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/../scripts/avro cat /tmp/REIX --fields 'first, last'
{"first": "daffy"}
{"first": "bugs"}
{"first": "tweety"}
{"first": "road"}
{"first": "wile"}
{"first": "pepe"}
{"first": "foghorn"}
Usage: avro cat|write [options] FILE [FILE...]
avro: error: Can't open last - [Errno 2] No such file or directory: 'last'
$ echo $?
2
The issue is that 'first, last' is not parsed correctly. The white
space between "," and "last" is parsed in a way that makes "last" been
interpreted as a "FILE" instead of an option.
Without the white space, that works fine:
$ /home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/../scripts/avro cat /tmp/REIX --fields 'first,last'
{"last": "duck", "first": "daffy"}
{"last": "bunny", "first": "bugs"}
{"last": "", "first": "tweety"}
{"last": "runner", "first": "road"}
{"last": "e", "first": "wile"}
{"last": "le pew", "first": "pepe"}
{"last": "leghorn", "first": "foghorn"}
$ echo $?
0
- On Ubuntu / x86_64, both 'first, last' and 'first,last' are OK:
$ pwd
..../lang/py
$ export PYTHONPATH=./build/src
$ build/test/../scripts/avro cat /tmp/REIX --fields 'first, last'
{"last": "duck", "first": "daffy"}
{"last": "bunny", "first": "bugs"}
{"last": "", "first": "tweety"}
{"last": "runner", "first": "road"}
{"last": "e", "first": "wile"}
{"last": "le pew", "first": "pepe"}
{"last": "leghorn", "first": "foghorn"}
$ echo $?
0
Source code of: /home/tony/AVRO/avro-FromFreshIBMSOEGitHub/lang/py/build/test/../scripts/avro is:
def main(argv=None):
import sys
from optparse import OptionParser, OptionGroup
argv = argv or sys.argv
parser = OptionParser(description="Display/write for Avro files",
version="1.7.4",
usage="usage: %prog cat|write [options] FILE [FILE...]")
....
So, OptionParser() does not work on PPC64 like it does on x86_64.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python2.7/+bug/1378888/+subscriptions
References