refactor: convert project from bash to Python
Replaces cli.sh + lib/*.sh with a claude_bottle/ Python package and a
cli.py entry point. No external dependencies — uses only Python's
stdlib (json, subprocess, getpass, tempfile, argparse, re, etc.).
- claude_bottle/{log,docker,manifest,env_resolve,network,pipelock,
skills,ssh,cli}.py mirror the previous lib/*.sh modules.
- Tests converted to unittest under tests/test_*.py with a stdlib
runner at tests/run_tests.py (unit | integration | path).
- .githooks/commit-msg ported to Python; same Conventional Commits rules.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit was merged in pull request #2.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
"""Unit: pipelock naming helpers (container_name, proxy_url, proxy_host_port)."""
|
||||
|
||||
import unittest
|
||||
|
||||
from claude_bottle.pipelock import (
|
||||
pipelock_container_name,
|
||||
pipelock_proxy_host_port,
|
||||
pipelock_proxy_url,
|
||||
)
|
||||
|
||||
|
||||
class TestPipelockNaming(unittest.TestCase):
|
||||
def test_container_name_simple(self):
|
||||
self.assertEqual("claude-bottle-pipelock-foo", pipelock_container_name("foo"))
|
||||
|
||||
def test_container_name_with_hyphens(self):
|
||||
self.assertEqual(
|
||||
"claude-bottle-pipelock-some-slug", pipelock_container_name("some-slug")
|
||||
)
|
||||
|
||||
def test_proxy_url_default_port(self):
|
||||
self.assertEqual(
|
||||
"http://claude-bottle-pipelock-foo:8888", pipelock_proxy_url("foo")
|
||||
)
|
||||
|
||||
def test_proxy_host_port_default_port(self):
|
||||
self.assertEqual(
|
||||
"claude-bottle-pipelock-foo:8888", pipelock_proxy_host_port("foo")
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user