Skip to content

Commit 67a6193

Browse files
committed
Generalize JVM source code expectations
The tests won't necessarily run with Java 11. And if the Java version is 1.8 or earlier, use the second digit.
1 parent 64dd34c commit 67a6193

File tree

3 files changed

+16
-10
lines changed

3 files changed

+16
-10
lines changed

src/scyjava/_introspect.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,9 @@ def jsource(data) -> str:
9999
cls_path = str(jcls.getName()).replace(".", "/")
100100

101101
# Discern the Java version.
102-
java_version = jvm_version()[0]
102+
jv_digits = jvm_version()
103+
assert jv_digits is not None and len(jv_digits) > 1
104+
java_version = jv_digits[1] if jv_digits[0] == 1 else jv_digits[0]
103105

104106
# Note: some classes (e.g. corba and jaxp) will not be located correctly before
105107
# Java 10, because they fall under a different subtree than `jdk`. But Java 11+

tests/test_inspect.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
Tests for functions in inspect submodule.
33
"""
44

5+
import re
6+
57
from scyjava import inspect
68
from scyjava.config import mode, Mode
79

@@ -18,14 +20,16 @@ def test_inspect_members(self):
1820
members = []
1921
inspect.members("java.lang.Iterable", writer=members.append)
2022
expected = [
21-
"Source code URL: "
22-
"https://github.com/openjdk/jdk/blob/jdk-11-ga/"
23-
"src/java.base/share/classes/java/lang/Iterable.java",
23+
"Source code URL: https://github.com/openjdk/jdk/blob/"
24+
".../share/classes/java/lang/Iterable.java",
2425
" * indicates static modifier",
2526
"java.util.Iterator = iterator()",
2627
"java.util.Spliterator = spliterator()",
2728
"void = forEach(java.util.function.Consumer)",
2829
"",
2930
"",
3031
]
31-
assert "".join(members).split("\n") == expected
32+
pattern = r"(https://github.com/openjdk/jdk/blob/)" \
33+
"[^ ]*(/share/classes/java/lang/Iterable\.java)"
34+
members_string = re.sub(pattern, r"\1...\2", "".join(members))
35+
assert members_string.split("\n") == expected

tests/test_introspect.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,12 @@ def test_jsource_jdk_class(self):
9696
if mode == Mode.JEP:
9797
# JEP does not support the jclass function.
9898
return
99-
jv = scyjava.jvm_version()[0]
99+
jv_digits = scyjava.jvm_version()
100+
jv = jv_digits[1] if jv_digits[0] == 1 else jv_digits[0]
100101
source = scyjava.jsource("java.util.List")
101-
assert (
102-
source == f"https://github.com/openjdk/jdk/blob/jdk-{jv}-ga/"
103-
"src/java.base/share/classes/java/util/List.java"
104-
)
102+
assert source.startswith(f"https://github.com/openjdk/jdk/blob/")
103+
assert source.endswith("/share/classes/java/util/List.java")
104+
assert str(jv) in source
105105

106106
def test_imagej_legacy(self):
107107
if mode == Mode.JEP:

0 commit comments

Comments
 (0)