This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: Invalid syntax in inspect_fodder2.py (on Python 2.x)
Type: compile error Stage: resolved
Components: Tests Versions: Python 3.6
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: David.Edelsohn, ddriddle, python-dev, r.david.murray, rbcollins
Priority: normal Keywords: patch

Created on 2015-04-24 16:45 by ddriddle, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
mywork.patch ddriddle, 2015-04-24 16:45 Patches test_linecache.py and its data files review
new.mywork.patch ddriddle, 2015-05-01 20:37 Updated patch review
mywork.patch ddriddle, 2015-05-04 22:21 New patch with suggested changes. review
mywork.patch ddriddle, 2015-05-05 18:18 review
Messages (13)
msg241955 - (view) Author: David D. Riddle (ddriddle) * Date: 2015-04-24 16:45
test_linecache.py reads from three files namely inspect_fodder.py, inspect_fodder2.py, and mapping_tests.py. It reads the py files directly as text files. This patch copies these files to linecache_fodder, linecache_fodder2, and linecache_mapping_fodder respectively, and updates test_linecache.py accordingly.

The reason I do this is so that the these files are not compiled. This is desirable for me because I use linecache2 on python 2.7. Python 2.7 can not compile inspect_fodder2.py nor is it necessary as this file is only used as a text file never as an object file in the test_linecache.py tests.

This issue came up for me when I attempted to make an RPM out of linecache2. rpmbuild compiles all py files in the rpm and fails when it tries to compile inspect_fodder2.py. If these files have the .py removed from the test files then they will not be compiled which fixes my issue. Nor do they need to be compiled to successfully run the test_linecache.py tests.
msg241983 - (view) Author: Robert Collins (rbcollins) * (Python committer) Date: 2015-04-24 21:36
Thanks, I shall look at this Monday.
msg242352 - (view) Author: David D. Riddle (ddriddle) * Date: 2015-05-01 20:37
I have made the changes you suggested. Please look at lines 87-97. I am not certain if that is correct behavior. I was surprised that a SyntaxError is thrown in addition to the UnicodeDecodeError when linecache.getlines takes a file with bad unicode. Please tell me if this or other parts of the patch need work.
msg242585 - (view) Author: David D. Riddle (ddriddle) * Date: 2015-05-04 22:21
I have made the changes you suggested. Please tell me if any further changes are needed.

> The unclosed file suggests a cleanup bug in linecache which we should
> fix for hygiene, but is separate :)

Should I file a bug report?
msg242604 - (view) Author: David D. Riddle (ddriddle) * Date: 2015-05-05 18:18
Here is another patch. I fixed a bug in GetLineTestsBadData.test_getline and refactored the code. I think everything is good now.

As for the ResourceWarnings they are not caused by linecache. The problem is with tokenize.open (See http://bugs.python.org/issue23840).
msg248807 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2015-08-19 00:20
New changeset fc56a0300cd4 by Robert Collins in branch 'default':
Issue #24054: decouple linecache tests from inspect tests
https://hg.python.org/cpython/rev/fc56a0300cd4
msg248808 - (view) Author: Robert Collins (rbcollins) * (Python committer) Date: 2015-08-19 00:21
Thank you for the patch; sorry it took me so long to get to it - been working on a backlog of patch review.
msg248840 - (view) Author: David Edelsohn (David Edelsohn) Date: 2015-08-19 13:29
This patch causes a new failure on many of the buildbots.
msg248841 - (view) Author: R. David Murray (r.david.murray) * (Python committer) Date: 2015-08-19 13:40
Example:

http://buildbot.python.org/all/builders/x86%20Windows7%203.x/builds/10098/steps/test/logs/stdio
msg248842 - (view) Author: David Edelsohn (David.Edelsohn) * Date: 2015-08-19 13:44
Also

http://buildbot.python.org/all/builders/s390x%20Debian%203.x/builds/2/steps/test/logs/stdio

http://buildbot.python.org/all/builders/s390x%20Debian%203.x/builds/2

Comments

Issue #24054: decouple linecache tests from inspect tests

Patch from David D. Riddle

Changed files

Lib/test/test_linecache.py
msg248859 - (view) Author: Robert Collins (rbcollins) * (Python committer) Date: 2015-08-19 22:35
I can't see how the patch could have caused the 
Traceback (most recent call last):
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows7\build\lib\test\test_symbol.py", line 44, in test_real_grammar_and_symbol_file
    os.stat(TEST_PY_FILE)))
AssertionError: False is not true : symbol stat: os.stat_result(st_mode=33206, st_ino=108649341010373284, st_dev=1222264288, st_nlink=1, st_uid=0, st_gid=0, st_size=2095, st_atime=1438992962, st_mtime=1438992962, st_ctime=1438992962)
test_py stat: os.stat_result(st_mode=33206, st_ino=71213169107987373, st_dev=1222264288, st_nlink=1, st_uid=0, st_gid=0, st_size=2209, st_atime=1439969830, st_mtime=1439969831, st_ctime=1439969830)


failure, so I'm going to ignore that - its a size change in the output file.
msg248860 - (view) Author: Robert Collins (rbcollins) * (Python committer) Date: 2015-08-19 22:36
So it looks like one failure is:
FAIL: test_getline (test.test_linecache.GoodUnicode)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows7\build\lib\test\test_linecache.py", line 63, in test_getline
    self.assertEqual(line, cached_line)
AssertionError: 'á\n' != '�\n'
- á
+ �

and the other is:


======================================================================
ERROR: test_getline (test.test_linecache.GoodUnicode)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/dje/cpython-buildarea/3.x.edelsohn-debian-z/build/Lib/test/test_linecache.py", line 58, in test_getline
    for index, line in enumerate(fp):
  File "/home/dje/cpython-buildarea/3.x.edelsohn-debian-z/build/Lib/encodings/ascii.py", line 26, in decode
    return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)

We need to figure out if the failure is spurious/local capabilities (e.g. we should skip the test here) or a bug in the test. Where can I find out more about the config of the buildbots?
msg248866 - (view) Author: Robert Collins (rbcollins) * (Python committer) Date: 2015-08-19 23:25
Debian is green again and I think windows will do so to.
History
Date User Action Args
2022-04-11 14:58:16adminsetgithub: 68242
2015-08-19 23:25:20rbcollinssetstatus: open -> closed

messages: + msg248866
stage: needs patch -> resolved
2015-08-19 22:36:49rbcollinssetmessages: + msg248860
2015-08-19 22:35:21rbcollinssetmessages: + msg248859
2015-08-19 13:44:21David.Edelsohnsetmessages: + msg248842
2015-08-19 13:40:39r.david.murraysetstatus: closed -> open

nosy: + r.david.murray
messages: + msg248841

stage: resolved -> needs patch
2015-08-19 13:35:37David.Edelsohnsetnosy: + David.Edelsohn, - David Edelsohn
2015-08-19 13:29:21David Edelsohnsetnosy: + David Edelsohn
messages: + msg248840
2015-08-19 00:21:48rbcollinssetstatus: open -> closed
versions: + Python 3.6
messages: + msg248808

resolution: fixed
stage: resolved
2015-08-19 00:20:51python-devsetnosy: + python-dev
messages: + msg248807
2015-05-05 18:18:03ddriddlesetfiles: + mywork.patch

messages: + msg242604
2015-05-04 22:21:17ddriddlesetfiles: + mywork.patch

messages: + msg242585
2015-05-01 20:37:01ddriddlesetfiles: + new.mywork.patch

messages: + msg242352
2015-04-24 21:36:57rbcollinssetnosy: + rbcollins
messages: + msg241983
2015-04-24 16:45:33ddriddlecreate