feat: add Docker MTU apply support and docker-ordered persistence
https://chatgpt.com/share/69733e45-96ec-800f-9aad-0cac7306dedd
This commit is contained in:
49
tests/unit/test_docker.py
Normal file
49
tests/unit/test_docker.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import unittest
|
||||
from unittest.mock import patch
|
||||
|
||||
import automtu.docker as docker
|
||||
|
||||
|
||||
class TestDocker(unittest.TestCase):
|
||||
def test_detect_docker_ifaces_explicit_dedup_and_drop_unknown(self) -> None:
|
||||
# explicit args are repeatable and/or comma-separated
|
||||
args = ["docker0,br-abc,unknown0", "br-abc,docker0"]
|
||||
|
||||
def fake_iface_exists(name: str) -> bool:
|
||||
return name in {"docker0", "br-abc"} # unknown0 does not exist
|
||||
|
||||
with patch("automtu.docker.iface_exists", side_effect=fake_iface_exists):
|
||||
got = docker.detect_docker_ifaces(args, include_user_bridges=True)
|
||||
|
||||
# preserve order, de-dup, drop unknown
|
||||
self.assertEqual(got, ["docker0", "br-abc"])
|
||||
|
||||
def test_detect_docker_ifaces_auto_detect_docker0_only(self) -> None:
|
||||
# no explicit args -> auto detect
|
||||
def fake_iface_exists(name: str) -> bool:
|
||||
return name == "docker0"
|
||||
|
||||
with patch("automtu.docker.iface_exists", side_effect=fake_iface_exists):
|
||||
got = docker.detect_docker_ifaces(None, include_user_bridges=False)
|
||||
|
||||
self.assertEqual(got, ["docker0"])
|
||||
|
||||
def test_detect_docker_ifaces_auto_detect_includes_user_bridges(self) -> None:
|
||||
# docker0 exists + br-* exists in list_ifaces -> included if include_user_bridges=True
|
||||
def fake_iface_exists(name: str) -> bool:
|
||||
return name in {"docker0", "br-abc"} # br-abc exists, br-nope does not
|
||||
|
||||
with (
|
||||
patch("automtu.docker.iface_exists", side_effect=fake_iface_exists),
|
||||
patch(
|
||||
"automtu.docker.list_ifaces",
|
||||
return_value=["lo", "eth0", "br-abc", "br-nope", "wg0"],
|
||||
),
|
||||
):
|
||||
got = docker.detect_docker_ifaces(None, include_user_bridges=True)
|
||||
|
||||
self.assertEqual(got, ["docker0", "br-abc"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main(verbosity=2)
|
||||
Reference in New Issue
Block a user