Skip to content

Commit 585676d

Browse files
authored
Merge pull request #61 from jmolina4/increase_readibility_for_java_version_test
Refactoring java version test
2 parents baafd69 + 54ceb47 commit 585676d

1 file changed

Lines changed: 15 additions & 21 deletions

File tree

tests/integration/test_validate_spark_environment.py

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -10,40 +10,34 @@ def test_java_home_is_set():
1010
assert java_home is not None, "Environment variable 'JAVA_HOME' is not set but is required by pySpark to work."
1111

1212

13-
def test_java_version_is_greater_or_equal_11():
14-
java_version_output = get_java_version_output()
15-
print(f"\n`java -version` returned\n{java_version_output}")
16-
17-
version_line = extract_version_line(java_version_output)
18-
if not version_line:
19-
pytest.fail("Couldn't find version information in `java -version` output.")
20-
21-
major_version = parse_major_version(version_line)
22-
if major_version is None:
23-
pytest.fail(f"Couldn't parse Java version from {version_line}.")
24-
25-
expected_major_version = 11
13+
def test_java_version_minimum_requirement(expected_major_version=11):
14+
version_line = __extract_version_line(__java_version_output())
15+
major_version = __parse_major_version(version_line)
2616
assert major_version >= expected_major_version, (f"Major version {major_version} is not recent enough, "
2717
f"we need at least version {expected_major_version}.")
2818

2919

30-
def get_java_version_output():
31-
return subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT).decode("utf-8")
20+
def __java_version_output():
21+
java_version = subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT).decode("utf-8")
22+
print(f"\n`java -version` returned\n{java_version}")
23+
return java_version
3224

3325

34-
def extract_version_line(java_version_output):
35-
for line in java_version_output.splitlines():
36-
if "version" in line:
37-
return line
38-
return None
26+
def __extract_version_line(java_version_output):
27+
version_line = next((line for line in java_version_output.splitlines() if "version" in line), None)
28+
if not version_line:
29+
pytest.fail("Couldn't find version information in `java -version` output.")
30+
return version_line
3931

4032

41-
def parse_major_version(version_line):
33+
def __parse_major_version(version_line):
4234
version_regex = re.compile(r'version "(?P<major>\d+)\.(?P<minor>\d+)\.\d+"')
4335
match = version_regex.search(version_line)
4436
if not match:
4537
return None
4638
major_version = int(match.group("major"))
4739
if major_version == 1:
4840
major_version = int(match.group("minor"))
41+
if major_version is None:
42+
pytest.fail(f"Couldn't parse Java version from {version_line}.")
4943
return major_version

0 commit comments

Comments
 (0)