Skip to content
This repository was archived by the owner on Nov 25, 2023. It is now read-only.
This repository was archived by the owner on Nov 25, 2023. It is now read-only.

Test errors with Jython #3

Description

@Arfrever
$ unit2-2.7-jython -v
test_checkcache (linecache2.tests.test_linecache.LineCacheTests) ... ok
test_clearcache (linecache2.tests.test_linecache.LineCacheTests) ... ok
test_getline (linecache2.tests.test_linecache.LineCacheTests) ... ERROR
test_lazycache_already_cached (linecache2.tests.test_linecache.LineCacheTests) ... skipped 'Modules not PEP302 by default'
test_lazycache_bad_filename (linecache2.tests.test_linecache.LineCacheTests) ... ok
test_lazycache_check (linecache2.tests.test_linecache.LineCacheTests) ... ok
test_lazycache_no_globals (linecache2.tests.test_linecache.LineCacheTests) ... ERROR
test_lazycache_provide_after_failed_lookup (linecache2.tests.test_linecache.LineCacheTests) ... ok
test_lazycache_smoke (linecache2.tests.test_linecache.LineCacheTests) ... skipped 'Modules not PEP302 by default'
test_no_ending_newline (linecache2.tests.test_linecache.LineCacheTests) ... ok

======================================================================
ERROR: test_getline (linecache2.tests.test_linecache.LineCacheTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/linecache2/linecache2/tests/test_linecache.py", line 54, in test_getline
    self.assertEqual(getline(FILENAME, 2**15), EMPTY)
  File "/tmp/linecache2/linecache2/__init__.py", line 17, in getline
    lines = getlines(filename, module_globals)
  File "/tmp/linecache2/linecache2/__init__.py", line 48, in getlines
    return updatecache(filename, module_globals)
  File "/tmp/linecache2/linecache2/__init__.py", line 93, in updatecache
    stat = os.stat(fullname)
  File "/tmp/linecache2/linecache2/__init__.py", line 93, in updatecache
    stat = os.stat(fullname)
  File "/tmp/linecache2/linecache2/__init__.py", line 190, in _tokenize_open
    encoding, lines = _detect_encoding(buffer.readline)
  File "/tmp/linecache2/linecache2/__init__.py", line 285, in _detect_encoding
    encoding = find_cookie(first)
  File "/tmp/linecache2/linecache2/__init__.py", line 249, in find_cookie
    raise SyntaxError(msg)
SyntaxError: invalid or missing encoding declaration for '/usr/share/jython-2.7/Lib/os$py.class'

======================================================================
ERROR: test_lazycache_no_globals (linecache2.tests.test_linecache.LineCacheTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/linecache2/linecache2/tests/test_linecache.py", line 143, in test_lazycache_no_globals
    lines = linecache.getlines(FILENAME)
  File "/tmp/linecache2/linecache2/__init__.py", line 48, in getlines
    return updatecache(filename, module_globals)
  File "/tmp/linecache2/linecache2/__init__.py", line 93, in updatecache
    stat = os.stat(fullname)
  File "/tmp/linecache2/linecache2/__init__.py", line 93, in updatecache
    stat = os.stat(fullname)
  File "/tmp/linecache2/linecache2/__init__.py", line 190, in _tokenize_open
    encoding, lines = _detect_encoding(buffer.readline)
  File "/tmp/linecache2/linecache2/__init__.py", line 285, in _detect_encoding
    encoding = find_cookie(first)
  File "/tmp/linecache2/linecache2/__init__.py", line 249, in find_cookie
    raise SyntaxError(msg)
SyntaxError: invalid or missing encoding declaration for '/usr/share/jython-2.7/Lib/os$py.class'

----------------------------------------------------------------------
Ran 10 tests in 0.477s

FAILED (errors=2, skipped=2)

Fix:

--- linecache2/tests/test_linecache.py
+++ linecache2/tests/test_linecache.py
@@ -10,6 +10,9 @@
 FILENAME = os.__file__
 if FILENAME.endswith('.pyc'):
     FILENAME = FILENAME[:-1]
+elif FILENAME.endswith('$py.class'):
+    # Jython
+    FILENAME = FILENAME[:-9] + '.py'
 NONEXISTENT_FILENAME = FILENAME + '.missing'
 INVALID_NAME = '!@$)(!@#_1'
 EMPTY = ''

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions