Skip to content

Commit 28e8fa1

Browse files
author
Paul Ellis
committed
Release v0.10.0
1 parent a0efea3 commit 28e8fa1

4 files changed

Lines changed: 36 additions & 2 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "sql-agent-cli"
7-
version = "0.9.2"
7+
version = "0.10.0"
88
description = "Read-only SQL CLI for agentic workflows"
99
readme = "README.md"
1010
license = "MIT"

src/sql_agent/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
__all__ = ["__version__"]
22

3-
__version__ = "0.9.2"
3+
__version__ = "0.10.0"

src/sql_agent/cli.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import sys
77
from pathlib import Path
88

9+
from . import __version__
910
from .config import (
1011
build_show_payload,
1112
create_native_auth_template,
@@ -49,6 +50,9 @@ def main(argv: list[str] | None = None) -> int:
4950

5051
def _handle_query(argv: list[str]) -> int:
5152
parser = _build_query_parser()
53+
if not argv:
54+
parser.print_help()
55+
return 0
5256
args = parser.parse_args(argv)
5357

5458
if args.password_stdin and args.prompt_password:
@@ -258,6 +262,12 @@ def _build_query_parser() -> argparse.ArgumentParser:
258262
),
259263
formatter_class=HelpFormatter,
260264
)
265+
parser.add_argument(
266+
"-v",
267+
"--version",
268+
action="version",
269+
version=f"%(prog)s {__version__}",
270+
)
261271

262272
target_group = parser.add_argument_group("Target and environment")
263273
target_group.add_argument(

tests/test_sqlite_cli.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
bootstrap_package()
1515

16+
from sql_agent import __version__
1617
from sql_agent.cli import _build_query_parser, main
1718

1819

@@ -25,6 +26,29 @@ def _test_temp_dir(name: str) -> Path:
2526

2627

2728
class SqliteCliTests(unittest.TestCase):
29+
def test_no_arguments_prints_help(self) -> None:
30+
stdout = io.StringIO()
31+
stderr = io.StringIO()
32+
33+
with redirect_stdout(stdout), redirect_stderr(stderr):
34+
exit_code = main([])
35+
36+
self.assertEqual(exit_code, 0)
37+
self.assertEqual(stderr.getvalue(), "")
38+
self.assertIn('sql-agent-cli "SELECT ..."', stdout.getvalue())
39+
40+
def test_version_flag_prints_package_version(self) -> None:
41+
stdout = io.StringIO()
42+
stderr = io.StringIO()
43+
44+
with redirect_stdout(stdout), redirect_stderr(stderr):
45+
with self.assertRaises(SystemExit) as exc:
46+
main(["-v"])
47+
48+
self.assertEqual(exc.exception.code, 0)
49+
self.assertEqual(stderr.getvalue(), "")
50+
self.assertEqual(stdout.getvalue().strip(), f"sql-agent-cli {__version__}")
51+
2852
def test_help_emphasizes_default_target_happy_path(self) -> None:
2953
help_text = _build_query_parser().format_help()
3054

0 commit comments

Comments
 (0)