test: cover is_backend_available, is_backend_ready, and status(quiet=True)
test / integration-docker (pull_request) Successful in 21s
lint / lint (push) Failing after 59s
test / unit (pull_request) Successful in 1m47s
test / integration-firecracker (pull_request) Successful in 3m22s
test / coverage (pull_request) Successful in 18s
test / publish-infra (pull_request) Has been skipped
tracker-policy-pr / check-pr (pull_request) Failing after 13m0s
test / integration-docker (pull_request) Successful in 21s
lint / lint (push) Failing after 59s
test / unit (pull_request) Successful in 1m47s
test / integration-firecracker (pull_request) Successful in 3m22s
test / coverage (pull_request) Successful in 18s
test / publish-infra (pull_request) Has been skipped
tracker-policy-pr / check-pr (pull_request) Failing after 13m0s
Add unit tests for the three new public symbols introduced by this PR: - TestIsBackendAvailable — delegates to has_backend; returns True/False correctly for available and unavailable backends - TestIsBackendReady — unknown names return False; known names return True/False based on status() return code; quiet flag is forwarded - TestBackendStatusQuiet — verifies the quiet=True branch in DockerBottleBackend, FirecrackerBottleBackend, and MacosContainerBottleBackend: return code is propagated and diagnostic stderr is suppressed Together these bring diff-coverage for the PR's changed lines to 100%. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -385,6 +385,60 @@ class TestHasBackend(unittest.TestCase):
|
||||
self.assertFalse(has_backend("nonexistent"))
|
||||
|
||||
|
||||
class TestIsBackendAvailable(unittest.TestCase):
|
||||
def test_delegates_to_has_backend(self):
|
||||
from bot_bottle.backend import is_backend_available
|
||||
with patch.object(backend_mod, "_backends", {}):
|
||||
self.assertFalse(is_backend_available("docker"))
|
||||
|
||||
def test_known_and_available(self):
|
||||
class _Ready:
|
||||
def is_available(self):
|
||||
return True
|
||||
|
||||
from bot_bottle.backend import is_backend_available
|
||||
with patch.object(backend_mod, "_backends", {"docker": _Ready()}):
|
||||
self.assertTrue(is_backend_available("docker"))
|
||||
|
||||
|
||||
class TestIsBackendReady(unittest.TestCase):
|
||||
def test_unknown_backend_returns_false(self):
|
||||
from bot_bottle.backend import is_backend_ready
|
||||
with patch.object(backend_mod, "_backends", {}):
|
||||
self.assertFalse(is_backend_ready("docker"))
|
||||
|
||||
def test_ready_when_status_returns_zero(self):
|
||||
class _ReadyBackend:
|
||||
def status(self, *, quiet=False):
|
||||
return 0
|
||||
|
||||
from bot_bottle.backend import is_backend_ready
|
||||
with patch.object(backend_mod, "_backends", {"docker": _ReadyBackend()}):
|
||||
self.assertTrue(is_backend_ready("docker"))
|
||||
|
||||
def test_not_ready_when_status_nonzero(self):
|
||||
class _BrokenBackend:
|
||||
def status(self, *, quiet=False):
|
||||
return 1
|
||||
|
||||
from bot_bottle.backend import is_backend_ready
|
||||
with patch.object(backend_mod, "_backends", {"docker": _BrokenBackend()}):
|
||||
self.assertFalse(is_backend_ready("docker"))
|
||||
|
||||
def test_quiet_flag_forwarded(self):
|
||||
calls = []
|
||||
|
||||
class _SpyBackend:
|
||||
def status(self, *, quiet=False):
|
||||
calls.append(quiet)
|
||||
return 0
|
||||
|
||||
from bot_bottle.backend import is_backend_ready
|
||||
with patch.object(backend_mod, "_backends", {"docker": _SpyBackend()}):
|
||||
is_backend_ready("docker", quiet=True)
|
||||
self.assertEqual([True], calls)
|
||||
|
||||
|
||||
class TestEnsureOrchestrator(unittest.TestCase):
|
||||
"""The backend-agnostic orchestrator bring-up entry point. Docker starts
|
||||
the orchestrator + gateway containers; firecracker boots the infra VM;
|
||||
|
||||
Reference in New Issue
Block a user