Skip to content

Commit 6b817f0

Browse files
authored
Merge pull request #1338 from SpiNNakerManchester/no_java_skip
raise skiptest is java not installed
2 parents 17bb2c3 + f29c96f commit 6b817f0

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

spinn_front_end_common/interface/java_caller.py

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,21 +75,32 @@ class JavaCaller(object):
7575
# Properties flag to be passed to Java
7676
"_java_properties")
7777

78-
def __init__(self) -> None:
78+
@classmethod
79+
def check_java(cls) -> str:
7980
"""
80-
Creates a Java caller and checks the user/configuration parameters.
81+
Reads and checks the Java call
8182
82-
:raise ConfigurationException: if simple parameter checking fails.
83+
:return: Java call from cfg
84+
:raises FileNotFoundError: If no Java installed
85+
:raises ConfigurationException: If Java -version failed
8386
"""
84-
self._recording: Optional[bool] = None
8587
java_call = get_config_str("Java", "java_call")
86-
self._java_call = java_call
87-
result = subprocess.call([self._java_call, '-version'])
88+
result = subprocess.call([java_call, '-version'])
8889
if result != 0:
8990
raise ConfigurationException(
90-
f" {self._java_call} -version failed. "
91+
f" {java_call} -version failed. "
9192
"Please set [Java] java_call to the absolute path "
9293
"to start java. (in config file)")
94+
return java_call
95+
96+
def __init__(self) -> None:
97+
"""
98+
Creates a Java caller and checks the user/configuration parameters.
99+
100+
:raise ConfigurationException: if simple parameter checking fails.
101+
"""
102+
self._java_call = self.check_java()
103+
self._recording: Optional[bool] = None
93104

94105
self._find_java_jar()
95106

unittests/interface/test_java_caller.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ class TestJavaCaller(unittest.TestCase):
3333

3434
def setUp(self) -> None:
3535
unittest_setup()
36+
try:
37+
JavaCaller.check_java()
38+
except (ConfigurationException, FileNotFoundError):
39+
raise unittest.SkipTest("Java not available")
3640

3741
def test_creation_with_jar_path(self) -> None:
3842
set_config("Java", "java_spinnaker_path", "missing")

0 commit comments

Comments
 (0)