8b5b5730ae
test / stage-firecracker-inputs (pull_request) Successful in 3s
tracker-policy-pr / check-pr (pull_request) Successful in 12s
lint / lint (push) Successful in 42s
test / integration-docker (pull_request) Successful in 33s
test / unit (pull_request) Successful in 37s
test / build-infra (pull_request) Successful in 3m47s
test / integration-firecracker (pull_request) Successful in 1m39s
test / coverage (pull_request) Failing after 1m27s
test / publish-infra (pull_request) Has been skipped
- Remove hardcoded --backend=macos-container flag reference in firecracker/util.py require_firecracker() error message - Remove --backend flag from cli.py start; backend selection now driven exclusively by BOT_BOTTLE_BACKEND env var or auto-selection - Skip unavailable backends in cli.py cleanup (fixes crash on Linux when macos-container.prepare_cleanup calls require_container()) - Add two-tier auto-selection: VM backend first (macos-container on macOS, firecracker on Linux+KVM); fall back to docker with a security warning and interactive i/d/q prompt; exit if docker also unavailable and print VM install instructions Closes #344
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
"""Unit: backend resolution priority — explicit name > env var.
|
|
|
|
The `--backend` flag has been removed from `cli.py start`; backend
|
|
selection is driven by BOT_BOTTLE_BACKEND or auto-selection only.
|
|
`get_bottle_backend` still accepts an explicit name so that `resume`
|
|
(which records the backend from a prior session) and the `backend`
|
|
sub-command can pass one directly."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
|
|
class TestBackendResolutionPriority(unittest.TestCase):
|
|
def test_explicit_name_overrides_env_var(self):
|
|
from bot_bottle.backend import get_bottle_backend
|
|
with patch.dict(os.environ, {"BOT_BOTTLE_BACKEND": "firecracker"}):
|
|
self.assertEqual("docker", get_bottle_backend("docker").name)
|
|
|
|
def test_env_var_used_when_no_explicit_name(self):
|
|
from bot_bottle.backend import get_bottle_backend
|
|
with patch.dict(os.environ, {"BOT_BOTTLE_BACKEND": "firecracker"}):
|
|
self.assertEqual("firecracker", get_bottle_backend().name)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|