Skip to content

Commit 6cf9d2f

Browse files
committedNov 20, 2024·
Merge branch 'develop'
2 parents b98cef7 + 5c8dae8 commit 6cf9d2f

File tree

8 files changed

+92
-53
lines changed

8 files changed

+92
-53
lines changed
 

‎.github/workflows/build.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
python-version: ${{ matrix.python }}
101101
- uses: actions/setup-node@v4
102102
with:
103-
node-version: 20
103+
node-version: 22
104104
- if: ${{ matrix.npm }}
105105
run: npm install -g npm@${{ matrix.npm }}
106106
- run: npm --version
@@ -134,7 +134,7 @@ jobs:
134134
python-version: ${{ matrix.python }}
135135
- uses: actions/setup-node@v4
136136
with:
137-
node-version: 20
137+
node-version: 22
138138
- if: ${{ matrix.npm }}
139139
run: npm install -g npm@${{ matrix.npm }}
140140
- run: npm --version

‎aws_lambda_builders/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@
55
# Changing version will trigger a new release!
66
# Please make the version change as the last step of your development.
77

8-
__version__ = "1.51.0"
8+
__version__ = "1.52.0"
99
RPC_PROTOCOL_VERSION = "0.3"

‎aws_lambda_builders/validator.py

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
"nodejs16.x": [ARM64, X86_64],
1414
"nodejs18.x": [ARM64, X86_64],
1515
"nodejs20.x": [ARM64, X86_64],
16+
"nodejs22.x": [ARM64, X86_64],
1617
"python3.8": [ARM64, X86_64],
1718
"python3.9": [ARM64, X86_64],
1819
"python3.10": [ARM64, X86_64],

‎aws_lambda_builders/workflows/java_gradle/gradle_validator.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,5 @@ def _get_jvm_string(self, gradle_path):
8383

8484
for line in stdout.splitlines():
8585
l_dec = decode(line)
86-
if l_dec.startswith("JVM"):
86+
if "JVM" in l_dec:
8787
return l_dec

‎requirements/dev.txt

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
coverage==7.6.4; python_version>="3.9"
1+
coverage==7.6.7; python_version>="3.9"
22
coverage==7.6.1; python_version<"3.9"
33
flake8==3.8.4
4-
pytest-cov==5.0.0
4+
pytest-cov==6.0.0; python_version>="3.9"
5+
pytest-cov==5.0.0; python_version<"3.9"
56

67
# Test requirements
78
pytest>=6.1.1
@@ -11,4 +12,4 @@ pyelftools~=0.31 # Used to verify the generated Go binary architecture in integr
1112
# formatter
1213
black==24.10.0; python_version>="3.9"
1314
black==24.8.0; python_version<"3.9"
14-
ruff==0.7.1
15+
ruff==0.7.4

‎tests/integration/workflows/nodejs_npm/test_nodejs_npm.py

+26-23
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def tearDown(self):
4141
shutil.rmtree(self.dependencies_dir)
4242
shutil.rmtree(self.temp_dir)
4343

44-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
44+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
4545
def test_builds_project_without_dependencies(self, runtime):
4646
source_dir = os.path.join(self.TEST_DATA_FOLDER, "no-deps")
4747

@@ -75,7 +75,7 @@ def test_builds_project_without_manifest(self, runtime):
7575
mock_warning.assert_called_once_with("package.json file not found. Continuing the build without dependencies.")
7676
self.assertEqual(expected_files, output_files)
7777

78-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
78+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
7979
def test_builds_project_and_excludes_hidden_aws_sam(self, runtime):
8080
source_dir = os.path.join(self.TEST_DATA_FOLDER, "excluded-files")
8181

@@ -91,7 +91,7 @@ def test_builds_project_and_excludes_hidden_aws_sam(self, runtime):
9191
output_files = set(os.listdir(self.artifacts_dir))
9292
self.assertEqual(expected_files, output_files)
9393

94-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
94+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
9595
def test_builds_project_with_remote_dependencies(self, runtime):
9696
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
9797

@@ -111,7 +111,7 @@ def test_builds_project_with_remote_dependencies(self, runtime):
111111
output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules")))
112112
self.assertEqual(expected_modules, output_modules)
113113

114-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
114+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
115115
def test_builds_project_with_npmrc(self, runtime):
116116
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npmrc")
117117

@@ -137,12 +137,15 @@ def test_builds_project_with_npmrc(self, runtime):
137137
("nodejs16.x", "package-lock"),
138138
("nodejs18.x", "package-lock"),
139139
("nodejs20.x", "package-lock"),
140+
("nodejs22.x", "package-lock"),
140141
("nodejs16.x", "shrinkwrap"),
141142
("nodejs18.x", "shrinkwrap"),
142143
("nodejs20.x", "shrinkwrap"),
144+
("nodejs22.x", "shrinkwrap"),
143145
("nodejs16.x", "package-lock-and-shrinkwrap"),
144146
("nodejs18.x", "package-lock-and-shrinkwrap"),
145147
("nodejs20.x", "package-lock-and-shrinkwrap"),
148+
("nodejs22.x", "package-lock-and-shrinkwrap"),
146149
]
147150
)
148151
def test_builds_project_with_lockfile(self, runtime, dir_name):
@@ -169,7 +172,7 @@ def test_builds_project_with_lockfile(self, runtime, dir_name):
169172

170173
self.assertEqual(expected_files, output_files)
171174

172-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
175+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
173176
def test_fails_if_npm_cannot_resolve_dependencies(self, runtime):
174177
source_dir = os.path.join(self.TEST_DATA_FOLDER, "broken-deps")
175178

@@ -184,7 +187,7 @@ def test_fails_if_npm_cannot_resolve_dependencies(self, runtime):
184187

185188
self.assertIn("No matching version found for aws-sdk@2.997.999", str(ctx.exception))
186189

187-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
190+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
188191
def test_builds_project_with_remote_dependencies_without_download_dependencies_with_dependencies_dir(self, runtime):
189192
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
190193

@@ -202,7 +205,7 @@ def test_builds_project_with_remote_dependencies_without_download_dependencies_w
202205
output_files = set(os.listdir(self.artifacts_dir))
203206
self.assertEqual(expected_files, output_files)
204207

205-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
208+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
206209
def test_builds_project_with_remote_dependencies_with_download_dependencies_and_dependencies_dir(self, runtime):
207210
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
208211

@@ -232,7 +235,7 @@ def test_builds_project_with_remote_dependencies_with_download_dependencies_and_
232235
output_dependencies_files = set(os.listdir(os.path.join(self.dependencies_dir)))
233236
self.assertNotIn(expected_dependencies_files, output_dependencies_files)
234237

235-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
238+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
236239
def test_builds_project_with_remote_dependencies_without_download_dependencies_without_dependencies_dir(
237240
self, runtime
238241
):
@@ -253,7 +256,7 @@ def test_builds_project_with_remote_dependencies_without_download_dependencies_w
253256
output_files = set(os.listdir(self.artifacts_dir))
254257
self.assertEqual(expected_files, output_files)
255258

256-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
259+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
257260
def test_builds_project_without_combine_dependencies(self, runtime):
258261
source_dir = os.path.join(self.TEST_DATA_FOLDER, "npm-deps")
259262

@@ -280,7 +283,7 @@ def test_builds_project_without_combine_dependencies(self, runtime):
280283
output_dependencies_files = set(os.listdir(os.path.join(self.dependencies_dir)))
281284
self.assertNotIn(expected_dependencies_files, output_dependencies_files)
282285

283-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
286+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
284287
def test_build_in_source_with_download_dependencies(self, runtime):
285288
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
286289

@@ -309,7 +312,7 @@ def test_build_in_source_with_download_dependencies(self, runtime):
309312
output_files = set(os.listdir(self.artifacts_dir))
310313
self.assertEqual(expected_files, output_files)
311314

312-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
315+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
313316
def test_build_in_source_with_removed_dependencies(self, runtime):
314317
# run a build with default requirements and confirm dependencies are downloaded
315318
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
@@ -349,7 +352,7 @@ def test_build_in_source_with_removed_dependencies(self, runtime):
349352
self.assertIn(".package-lock.json", set(os.listdir(source_node_modules)))
350353
self.assertNotIn("minimal-request-promise", set(os.listdir(source_node_modules)))
351354

352-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
355+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
353356
def test_build_in_source_with_download_dependencies_local_dependency(self, runtime):
354357
source_dir = os.path.join(self.temp_testdata_dir, "with-local-dependency")
355358

@@ -378,7 +381,7 @@ def test_build_in_source_with_download_dependencies_local_dependency(self, runti
378381
output_files = set(os.listdir(self.artifacts_dir))
379382
self.assertEqual(expected_files, output_files)
380383

381-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
384+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
382385
def test_build_in_source_with_download_dependencies_and_dependencies_dir(self, runtime):
383386
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
384387

@@ -413,7 +416,7 @@ def test_build_in_source_with_download_dependencies_and_dependencies_dir(self, r
413416
output_files = set(os.listdir(self.artifacts_dir))
414417
self.assertEqual(expected_files, output_files)
415418

416-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
419+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
417420
def test_build_in_source_with_download_dependencies_and_dependencies_dir_without_combine_dependencies(
418421
self, runtime
419422
):
@@ -446,7 +449,7 @@ def test_build_in_source_with_download_dependencies_and_dependencies_dir_without
446449
output_files = set(os.listdir(self.artifacts_dir))
447450
self.assertEqual(expected_files, output_files)
448451

449-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
452+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
450453
def test_build_in_source_reuse_saved_dependencies_dir(self, runtime):
451454
source_dir = os.path.join(self.temp_testdata_dir, "npm-deps")
452455

@@ -502,7 +505,7 @@ def test_build_in_source_reuse_saved_dependencies_dir(self, runtime):
502505
output_files = set(os.listdir(self.artifacts_dir))
503506
self.assertEqual(expected_files, output_files)
504507

505-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
508+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
506509
def test_builds_project_with_manifest_outside_root(self, runtime):
507510
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
508511
source_dir = os.path.join(base_dir, "src")
@@ -525,7 +528,7 @@ def test_builds_project_with_manifest_outside_root(self, runtime):
525528
output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules")))
526529
self.assertEqual(expected_modules, output_modules)
527530

528-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
531+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
529532
def test_builds_project_with_manifest_outside_root_with_reuse_saved_dependencies_dir(self, runtime):
530533
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
531534
source_dir = os.path.join(base_dir, "src")
@@ -572,7 +575,7 @@ def test_builds_project_with_manifest_outside_root_with_reuse_saved_dependencies
572575
output_modules = set(os.listdir(os.path.join(self.artifacts_dir, "node_modules")))
573576
self.assertEqual(expected_modules, output_modules)
574577

575-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
578+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
576579
def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_not_combine(self, runtime):
577580
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
578581
source_dir = os.path.join(base_dir, "src")
@@ -597,7 +600,7 @@ def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_not
597600
dependencies_dir_modules = set(os.listdir(os.path.join(self.dependencies_dir, "node_modules")))
598601
self.assertEqual(expected_modules, dependencies_dir_modules)
599602

600-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
603+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
601604
def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_combine(self, runtime):
602605
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root")
603606
source_dir = os.path.join(base_dir, "src")
@@ -626,7 +629,7 @@ def test_builds_project_with_manifest_outside_root_with_dependencies_dir_and_com
626629
dependencies_dir_modules = set(os.listdir(os.path.join(self.dependencies_dir, "node_modules")))
627630
self.assertEqual(expected_modules, dependencies_dir_modules)
628631

629-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
632+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
630633
def test_builds_project_with_manifest_outside_root_and_local_dependencies(self, runtime):
631634
base_dir = os.path.join(self.temp_testdata_dir, "manifest-outside-root-with-local-dependency")
632635
source_dir = os.path.join(base_dir, "src")
@@ -654,7 +657,7 @@ def test_builds_project_with_manifest_outside_root_and_local_dependencies(self,
654657
source_modules = set(os.listdir(os.path.join(source_dir, "node_modules")))
655658
self.assertTrue(all(expected_module in source_modules for expected_module in expected_modules))
656659

657-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
660+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
658661
def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_reuse_saved_dependencies_dir(
659662
self, runtime
660663
):
@@ -709,7 +712,7 @@ def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_r
709712
source_modules = set(os.listdir(os.path.join(source_dir, "node_modules")))
710713
self.assertTrue(all(expected_module in source_modules for expected_module in expected_modules))
711714

712-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
715+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
713716
def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_dependencies_dir_and_not_combine(
714717
self, runtime
715718
):
@@ -741,7 +744,7 @@ def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_d
741744
source_modules = set(os.listdir(os.path.join(source_dir, "node_modules")))
742745
self.assertTrue(all(expected_module in source_modules for expected_module in expected_modules))
743746

744-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
747+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
745748
def test_builds_project_with_manifest_outside_root_and_local_dependencies_with_dependencies_dir_and_combine(
746749
self, runtime
747750
):

‎tests/integration/workflows/nodejs_npm_esbuild/test_nodejs_npm_with_esbuild.py

+23-23
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ def tearDown(self):
5252
if os.path.exists(source_dependencies):
5353
shutil.rmtree(source_dependencies)
5454

55-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
55+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
5656
def test_builds_javascript_project_with_dependencies(self, runtime):
5757
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
5858

@@ -73,7 +73,7 @@ def test_builds_javascript_project_with_dependencies(self, runtime):
7373
output_files = set(os.listdir(self.artifacts_dir))
7474
self.assertEqual(expected_files, output_files)
7575

76-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
76+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
7777
def test_builds_javascript_project_with_multiple_entrypoints(self, runtime):
7878
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild-multiple-entrypoints")
7979

@@ -94,7 +94,7 @@ def test_builds_javascript_project_with_multiple_entrypoints(self, runtime):
9494
output_files = set(os.listdir(self.artifacts_dir))
9595
self.assertEqual(expected_files, output_files)
9696

97-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
97+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
9898
def test_builds_typescript_projects(self, runtime):
9999
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild-typescript")
100100

@@ -115,7 +115,7 @@ def test_builds_typescript_projects(self, runtime):
115115
output_files = set(os.listdir(self.artifacts_dir))
116116
self.assertEqual(expected_files, output_files)
117117

118-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
118+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
119119
def test_builds_with_external_esbuild(self, runtime):
120120
source_dir = os.path.join(self.TEST_DATA_FOLDER, "no-deps-esbuild")
121121
options = {"entry_points": ["included.js"]}
@@ -135,7 +135,7 @@ def test_builds_with_external_esbuild(self, runtime):
135135
output_files = set(os.listdir(self.artifacts_dir))
136136
self.assertEqual(expected_files, output_files)
137137

138-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
138+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
139139
def test_no_options_passed_to_esbuild(self, runtime):
140140
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
141141

@@ -152,7 +152,7 @@ def test_no_options_passed_to_esbuild(self, runtime):
152152

153153
self.assertEqual(str(context.exception), "NodejsNpmEsbuildBuilder:EsbuildBundle - entry_points not set ({})")
154154

155-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
155+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
156156
def test_bundle_with_implicit_file_types(self, runtime):
157157
source_dir = os.path.join(self.TEST_DATA_FOLDER, "implicit-file-types")
158158

@@ -173,7 +173,7 @@ def test_bundle_with_implicit_file_types(self, runtime):
173173
output_files = set(os.listdir(self.artifacts_dir))
174174
self.assertEqual(expected_files, output_files)
175175

176-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
176+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
177177
def test_bundles_project_without_dependencies(self, runtime):
178178
source_dir = os.path.join(self.TEST_DATA_FOLDER, "no-package-esbuild")
179179
options = {"entry_points": ["included"]}
@@ -199,7 +199,7 @@ def test_bundles_project_without_dependencies(self, runtime):
199199
output_files = set(os.listdir(self.artifacts_dir))
200200
self.assertEqual(expected_files, output_files)
201201

202-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
202+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
203203
def test_builds_project_with_remote_dependencies_without_download_dependencies_with_dependencies_dir(self, runtime):
204204
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-no-node_modules")
205205
options = {"entry_points": ["included.js"]}
@@ -227,7 +227,7 @@ def test_builds_project_with_remote_dependencies_without_download_dependencies_w
227227
output_files = set(os.listdir(self.artifacts_dir))
228228
self.assertEqual(expected_files, output_files)
229229

230-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
230+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
231231
def test_builds_project_with_remote_dependencies_with_download_dependencies_and_dependencies_dir(self, runtime):
232232
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-no-node_modules")
233233
options = {"entry_points": ["included.js"]}
@@ -257,7 +257,7 @@ def test_builds_project_with_remote_dependencies_with_download_dependencies_and_
257257
output_dependencies_files = set(os.listdir(os.path.join(self.dependencies_dir)))
258258
self.assertNotIn(expected_dependencies_files, output_dependencies_files)
259259

260-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
260+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
261261
def test_builds_project_with_remote_dependencies_without_download_dependencies_without_dependencies_dir(
262262
self, runtime
263263
):
@@ -282,7 +282,7 @@ def test_builds_project_with_remote_dependencies_without_download_dependencies_w
282282
"dependencies directory was not provided and downloading dependencies is disabled.",
283283
)
284284

285-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
285+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
286286
def test_builds_project_without_combine_dependencies(self, runtime):
287287
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-no-node_modules")
288288
options = {"entry_points": ["included.js"]}
@@ -313,7 +313,7 @@ def test_builds_project_without_combine_dependencies(self, runtime):
313313
output_dependencies_files = set(os.listdir(os.path.join(self.dependencies_dir)))
314314
self.assertNotIn(expected_dependencies_files, output_dependencies_files)
315315

316-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
316+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
317317
def test_builds_javascript_project_with_external(self, runtime):
318318
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild-externals")
319319

@@ -338,7 +338,7 @@ def test_builds_javascript_project_with_external(self, runtime):
338338
# Check that the module has been require() instead of bundled
339339
self.assertIn('require("minimal-request-promise")', js_file)
340340

341-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
341+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
342342
def test_builds_javascript_project_with_loader(self, runtime):
343343
osutils = OSUtils()
344344
source_dir = os.path.join(self.TEST_DATA_FOLDER, "no-deps-esbuild-loader")
@@ -380,7 +380,7 @@ def test_builds_javascript_project_with_loader(self, runtime):
380380
),
381381
)
382382

383-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
383+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
384384
def test_includes_sourcemap_if_requested(self, runtime):
385385
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
386386

@@ -401,7 +401,7 @@ def test_includes_sourcemap_if_requested(self, runtime):
401401
output_files = set(os.listdir(self.artifacts_dir))
402402
self.assertEqual(expected_files, output_files)
403403

404-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
404+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
405405
def test_esbuild_produces_mjs_output_files(self, runtime):
406406
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
407407
options = {"entry_points": ["included.js"], "sourcemap": True, "out_extension": [".js=.mjs"]}
@@ -421,7 +421,7 @@ def test_esbuild_produces_mjs_output_files(self, runtime):
421421
output_files = set(os.listdir(self.artifacts_dir))
422422
self.assertEqual(expected_files, output_files)
423423

424-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
424+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
425425
def test_esbuild_produces_sourcemap_without_source_contents(self, runtime):
426426
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
427427
options = {"entry_points": ["included.js"], "sourcemap": True, "sources_content": "false"}
@@ -444,7 +444,7 @@ def test_esbuild_produces_sourcemap_without_source_contents(self, runtime):
444444
self.assertNotIn("sourcesContent", sourcemap)
445445
self.assertEqual(expected_files, output_files)
446446

447-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
447+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
448448
def test_esbuild_can_build_in_source(self, runtime):
449449
options = {"entry_points": ["included.js"]}
450450

@@ -470,7 +470,7 @@ def test_esbuild_can_build_in_source(self, runtime):
470470
output_files = set(os.listdir(self.artifacts_dir))
471471
self.assertEqual(expected_files, output_files)
472472

473-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
473+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
474474
def test_esbuild_can_build_in_source_with_local_dependency(self, runtime):
475475
self.source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-local-dependency")
476476

@@ -498,7 +498,7 @@ def test_esbuild_can_build_in_source_with_local_dependency(self, runtime):
498498
output_files = set(os.listdir(self.artifacts_dir))
499499
self.assertEqual(expected_files, output_files)
500500

501-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
501+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
502502
def test_builds_javascript_project_ignoring_relevant_flags(self, runtime):
503503
source_dir = os.path.join(self.TEST_DATA_FOLDER, "with-deps-esbuild")
504504

@@ -519,7 +519,7 @@ def test_builds_javascript_project_ignoring_relevant_flags(self, runtime):
519519
output_files = set(os.listdir(self.artifacts_dir))
520520
self.assertEqual(expected_files, output_files)
521521

522-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
522+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
523523
def test_builds_typescript_projects_with_external_manifest(self, runtime):
524524
base_dir = os.path.join(self.TEST_DATA_FOLDER, "esbuild-manifest-outside-root")
525525
source_dir = os.path.join(base_dir, "src")
@@ -541,7 +541,7 @@ def test_builds_typescript_projects_with_external_manifest(self, runtime):
541541
output_files = set(os.listdir(self.artifacts_dir))
542542
self.assertEqual(expected_files, output_files)
543543

544-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
544+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
545545
def test_builds_typescript_projects_with_external_manifest_with_dependencies_dir_without_combine(self, runtime):
546546
base_dir = os.path.join(self.TEST_DATA_FOLDER, "esbuild-manifest-outside-root")
547547
source_dir = os.path.join(base_dir, "src")
@@ -570,7 +570,7 @@ def test_builds_typescript_projects_with_external_manifest_with_dependencies_dir
570570
output_modules = set(os.listdir(os.path.join(self.dependencies_dir, "node_modules")))
571571
self.assertIn(expected_modules, output_modules)
572572

573-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
573+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
574574
def test_builds_typescript_projects_with_external_manifest_with_dependencies_dir_with_combine(self, runtime):
575575
base_dir = os.path.join(self.TEST_DATA_FOLDER, "esbuild-manifest-outside-root")
576576
source_dir = os.path.join(base_dir, "src")
@@ -599,7 +599,7 @@ def test_builds_typescript_projects_with_external_manifest_with_dependencies_dir
599599
output_modules = set(os.listdir(os.path.join(self.dependencies_dir, "node_modules")))
600600
self.assertIn(expected_modules, output_modules)
601601

602-
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",)])
602+
@parameterized.expand([("nodejs16.x",), ("nodejs18.x",), ("nodejs20.x",), ("nodejs22.x",)])
603603
def test_builds_typescript_projects_with_external_manifest_and_local_depends(self, runtime):
604604
base_dir = os.path.join(self.temp_testdata_dir, "esbuild-manifest-outside-root-with-local-depends")
605605
source_dir = os.path.join(base_dir, "src")

‎tests/unit/workflows/java_gradle/test_gradle_validator.py

+34
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,40 @@ def test_emits_warning_when_version_string_not_found(self):
7878
validator.validate(runtime_path=self.runtime_path)
7979
self.mock_log.warning.assert_called_with(GradleValidator.VERSION_STRING_WARNING, self.runtime_path)
8080

81+
@parameterized.expand(
82+
[
83+
("1.8.0", "java8"),
84+
("11.0.0", "java11"),
85+
("17.0.0", "java17"),
86+
("21.0.0", "java21"),
87+
]
88+
)
89+
def test_does_not_emit_warning_for_version_string_in_gradle_lt_8_9(self, version, runtime):
90+
version_string = f"JVM: {version}".encode()
91+
self.mock_os_utils.popen.side_effect = [FakePopen(stdout=version_string, returncode=0)]
92+
validator = GradleValidator(
93+
runtime=runtime, architecture=self.architecture, os_utils=self.mock_os_utils, log=self.mock_log
94+
)
95+
validator.validate(runtime_path=self.runtime_path)
96+
self.mock_log.warning.assert_not_called()
97+
98+
@parameterized.expand(
99+
[
100+
("1.8.0", "java8"),
101+
("11.0.0", "java11"),
102+
("17.0.0", "java17"),
103+
("21.0.0", "java21"),
104+
]
105+
)
106+
def test_does_not_emit_warning_for_version_string_in_gradle_ge_8_9(self, version, runtime):
107+
version_string = f"Launcher JVM: {version}".encode()
108+
self.mock_os_utils.popen.side_effect = [FakePopen(stdout=version_string, returncode=0)]
109+
validator = GradleValidator(
110+
runtime=runtime, architecture=self.architecture, os_utils=self.mock_os_utils, log=self.mock_log
111+
)
112+
validator.validate(runtime_path=self.runtime_path)
113+
self.mock_log.warning.assert_not_called()
114+
81115
@parameterized.expand(
82116
[
83117
("11.0.0", "java11"),

0 commit comments

Comments
 (0)
Please sign in to comment.