Skip to content

Commit f9e5890

Browse files
committed
fix: reject abbreviated inventory options
1 parent 1d064c5 commit f9e5890

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

scripts/pg_compat/extract_statements.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ def _jsonl_text(rows):
127127

128128

129129
def _argument_parser():
130-
parser = argparse.ArgumentParser()
130+
parser = argparse.ArgumentParser(allow_abbrev=False)
131131
parser.add_argument("--input", required=True)
132132
parser.add_argument("--inventory", required=True)
133133
parser.add_argument("--diagnostics", required=True)

tests/pg_compat/test_extract_statements.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -322,3 +322,33 @@ def test_argparse_rejects_missing_and_unknown_options(self):
322322

323323
self.assertNotEqual(missing.returncode, 0)
324324
self.assertNotEqual(unknown.returncode, 0)
325+
326+
def test_argparse_rejects_abbreviated_long_options(self):
327+
with tempfile.TemporaryDirectory() as directory:
328+
directory = Path(directory)
329+
input_path = directory / "raw.jsonl"
330+
inventory_path = directory / "inventory.jsonl"
331+
diagnostics_path = directory / "diagnostics.jsonl"
332+
input_path.write_text("", encoding="utf-8")
333+
option_cases = (
334+
("--inp", "--inventory", "--diagnostics"),
335+
("--input", "--invent", "--diagnostics"),
336+
("--input", "--inventory", "--diag"),
337+
)
338+
339+
for input_option, inventory_option, diagnostics_option in option_cases:
340+
with self.subTest(
341+
input_option=input_option,
342+
inventory_option=inventory_option,
343+
diagnostics_option=diagnostics_option,
344+
):
345+
result = self.run_cli(
346+
input_option,
347+
input_path,
348+
inventory_option,
349+
inventory_path,
350+
diagnostics_option,
351+
diagnostics_path,
352+
)
353+
354+
self.assertNotEqual(result.returncode, 0)

0 commit comments

Comments
 (0)