proxy2vpn 0.3.0__tar.gz → 0.3.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. {proxy2vpn-0.3.0/src/proxy2vpn.egg-info → proxy2vpn-0.3.1}/PKG-INFO +1 -1
  2. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/pyproject.toml +1 -1
  3. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/cli.py +4 -0
  4. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/typer_ext.py +1 -1
  5. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1/src/proxy2vpn.egg-info}/PKG-INFO +1 -1
  6. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn.egg-info/SOURCES.txt +1 -0
  7. proxy2vpn-0.3.1/tests/test_cli_empty_commands.py +29 -0
  8. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/LICENSE +0 -0
  9. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/README.md +0 -0
  10. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/setup.cfg +0 -0
  11. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/__init__.py +0 -0
  12. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/__main__.py +0 -0
  13. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/compose_manager.py +0 -0
  14. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/compose_utils.py +0 -0
  15. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/compose_validator.py +0 -0
  16. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/config.py +0 -0
  17. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/diagnostics.py +0 -0
  18. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/docker_ops.py +0 -0
  19. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/models.py +0 -0
  20. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/preset_manager.py +0 -0
  21. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn/server_manager.py +0 -0
  22. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn.egg-info/dependency_links.txt +0 -0
  23. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn.egg-info/entry_points.txt +0 -0
  24. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn.egg-info/requires.txt +0 -0
  25. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/src/proxy2vpn.egg-info/top_level.txt +0 -0
  26. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_cli_entrypoint.py +0 -0
  27. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_compose_manager.py +0 -0
  28. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_compose_utils.py +0 -0
  29. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_compose_validator.py +0 -0
  30. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_docker_ops.py +0 -0
  31. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_init_command.py +0 -0
  32. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_preset_manager.py +0 -0
  33. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_server_manager.py +0 -0
  34. {proxy2vpn-0.3.0 → proxy2vpn-0.3.1}/tests/test_version_option.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proxy2vpn
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Proxy2VPN Python utilities
5
5
  Author-email: Serhii Khalymon <serhii.khalymon@pm.me>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "proxy2vpn"
7
- version = "0.3.0"
7
+ version = "0.3.1"
8
8
  description = "Proxy2VPN Python utilities"
9
9
  authors = [{ name = "Serhii Khalymon", email = "serhii.khalymon@pm.me" }]
10
10
  readme = "README.md"
@@ -56,6 +56,10 @@ def main(
56
56
  ctx.obj = ctx.obj or {}
57
57
  ctx.obj["compose_file"] = compose_file
58
58
 
59
+ if ctx.invoked_subcommand is None:
60
+ typer.echo(ctx.get_help())
61
+ raise typer.Exit()
62
+
59
63
 
60
64
  # ---------------------------------------------------------------------------
61
65
  # System commands
@@ -50,7 +50,7 @@ class HelpfulTyper(typer.Typer):
50
50
  self._show_no_such_command_help(exc)
51
51
  else:
52
52
  # For other errors, format them nicely
53
- error_msg = exc.message.strip()
53
+ error_msg = (getattr(exc, "message", "") or str(exc)).strip()
54
54
 
55
55
  # Handle missing argument errors
56
56
  if "Missing argument" in error_msg:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proxy2vpn
3
- Version: 0.3.0
3
+ Version: 0.3.1
4
4
  Summary: Proxy2VPN Python utilities
5
5
  Author-email: Serhii Khalymon <serhii.khalymon@pm.me>
6
6
  License-Expression: MIT
@@ -20,6 +20,7 @@ src/proxy2vpn.egg-info/dependency_links.txt
20
20
  src/proxy2vpn.egg-info/entry_points.txt
21
21
  src/proxy2vpn.egg-info/requires.txt
22
22
  src/proxy2vpn.egg-info/top_level.txt
23
+ tests/test_cli_empty_commands.py
23
24
  tests/test_cli_entrypoint.py
24
25
  tests/test_compose_manager.py
25
26
  tests/test_compose_utils.py
@@ -0,0 +1,29 @@
1
+ import os
2
+ import pathlib
3
+ import subprocess
4
+ import sys
5
+
6
+ repo_root = pathlib.Path(__file__).resolve().parents[1]
7
+
8
+
9
+ def _run_cli(*args: str) -> subprocess.CompletedProcess[str]:
10
+ env = os.environ.copy()
11
+ env["PYTHONPATH"] = str(repo_root / "src")
12
+ return subprocess.run(
13
+ [sys.executable, "-m", "proxy2vpn", *args],
14
+ capture_output=True,
15
+ text=True,
16
+ env=env,
17
+ )
18
+
19
+
20
+ def test_root_command_shows_help():
21
+ result = _run_cli()
22
+ assert result.returncode == 0
23
+ assert "proxy2vpn command line interface" in result.stdout
24
+
25
+
26
+ def test_missing_arguments_show_error():
27
+ result = _run_cli("profile", "create")
28
+ assert result.returncode == 2
29
+ assert "Missing parameter" in result.stderr
File without changes
File without changes
File without changes