← Back to team overview

sts-sponsors team mailing list archive

[Merge] ~adam-collard/maas-ci/+git/system-tests:remove-unnecessary-fixtures into ~maas-committers/maas-ci/+git/system-tests:master

 

Adam Collard has proposed merging ~adam-collard/maas-ci/+git/system-tests:remove-unnecessary-fixtures into ~maas-committers/maas-ci/+git/system-tests:master.

Commit message:
Don't launch a build_container for a snap run that doesn't use it

Fix annotations

Requested reviews:
  MAAS Committers (maas-committers)

For more details, see:
https://code.launchpad.net/~adam-collard/maas-ci/+git/system-tests/+merge/436197
-- 
Your team MAAS Committers is requested to review the proposed merge of ~adam-collard/maas-ci/+git/system-tests:remove-unnecessary-fixtures into ~maas-committers/maas-ci/+git/system-tests:master.
diff --git a/systemtests/collect_sos_report/test_collect.py b/systemtests/collect_sos_report/test_collect.py
index d8b1e5e..8b275b2 100644
--- a/systemtests/collect_sos_report/test_collect.py
+++ b/systemtests/collect_sos_report/test_collect.py
@@ -1,9 +1,13 @@
+from __future__ import annotations
+
 import contextlib
 import subprocess
 import tempfile
 from pathlib import Path
+from typing import TYPE_CHECKING
 
-from ..lxd import Instance
+if TYPE_CHECKING:
+    from ..lxd import Instance
 
 
 def collect_sos_report(instance: Instance, output: Path) -> None:
diff --git a/systemtests/fixtures.py b/systemtests/fixtures.py
index ba9bbb9..df540c8 100644
--- a/systemtests/fixtures.py
+++ b/systemtests/fixtures.py
@@ -37,8 +37,10 @@ def _add_maas_ppa(
 
 
 @pytest.fixture(scope="session")
-def build_container(config: dict[str, Any]) -> Iterator[Instance]:
+def build_container(config: dict[str, Any]) -> Optional[Iterator[Instance]]:
     """Create a container for building MAAS package in."""
+    if "snap" in config:
+        yield None
     log = getLogger(f"{LOG_NAME}.build_container")
     lxd = get_lxd(log)
     container_name = os.environ.get(
@@ -69,10 +71,10 @@ def build_container(config: dict[str, Any]) -> Iterator[Instance]:
 
 @pytest.fixture(scope="session")
 def maas_deb_repo(
-    build_container: Instance, config: dict[str, Any]
+    build_container: Optional[Instance], config: dict[str, Any]
 ) -> Iterator[Optional[str]]:
     """Build maas deb, and setup APT repo."""
-    if "snap" in config:
+    if build_container is None:
         yield None
     else:
         build_container.logger = getLogger(f"{LOG_NAME}.maas_deb_repo")
@@ -181,7 +183,9 @@ def get_user_data(
 
 
 @pytest.fixture(scope="session")
-def maas_container(config: dict[str, Any], build_container: Instance) -> Instance:
+def maas_container(
+    config: dict[str, Any], build_container: Optional[Instance]
+) -> Instance:
     """Build a container for running MAAS in."""
     lxd = get_lxd(getLogger(f"{LOG_NAME}.maas_container"))
     profile_name = container_name = os.environ.get(
@@ -189,7 +193,7 @@ def maas_container(config: dict[str, Any], build_container: Instance) -> Instanc
     )
     instance = Instance(lxd, container_name)
     # FIXME: loggers could be a stack?
-    build_container.logger = instance.logger = lxd.logger
+    instance.logger = lxd.logger
     if not instance.exists():
         if not lxd.profile_exists(profile_name):
             lxd.copy_profile(LXD_PROFILE, profile_name)
@@ -250,6 +254,8 @@ def maas_container(config: dict[str, Any], build_container: Instance) -> Instanc
         )
 
         if "snap" not in config:
+            assert build_container is not None
+            build_container.logger = instance.logger
             build_container_ip = build_container.get_ip_address()
             contents = dedent(
                 f"""\
diff --git a/systemtests/general_tests/test_machine_config.py b/systemtests/general_tests/test_machine_config.py
index 254f3dd..6e9152b 100644
--- a/systemtests/general_tests/test_machine_config.py
+++ b/systemtests/general_tests/test_machine_config.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
 from ..machine_config import MachineConfig
 
 
diff --git a/systemtests/o11y.py b/systemtests/o11y.py
index 4dd4342..e95ba6e 100644
--- a/systemtests/o11y.py
+++ b/systemtests/o11y.py
@@ -1,8 +1,11 @@
+from __future__ import annotations
+
 from pathlib import Path
 from textwrap import dedent
-from typing import Any
+from typing import TYPE_CHECKING, Any
 
-from .lxd import Instance
+if TYPE_CHECKING:
+    from .lxd import Instance
 
 AGENT_PATH = "/opt/agent/agent-linux-amd64"
 
@@ -10,6 +13,7 @@ AGENT_PATH = "/opt/agent/agent-linux-amd64"
 def setup_o11y(
     o11y: dict[str, Any], maas_container: Instance, installed_from_snap: bool
 ) -> None:
+    """Runs telemetry in a systemd unit on the maas container."""
     agent_on_container = maas_container.files[AGENT_PATH]
     if not agent_on_container.exists():
         host_path_to_agent = Path(o11y["grafana_agent_file_path"].strip())
diff --git a/systemtests/tls.py b/systemtests/tls.py
index 66cbdb4..53a739c 100644
--- a/systemtests/tls.py
+++ b/systemtests/tls.py
@@ -1,4 +1,9 @@
-from .lxd import Instance
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+    from .lxd import Instance
 
 # Certs must be accessible for MAAS installed by snap, but
 # this location is useful also when installed via deb package.
diff --git a/systemtests/vault.py b/systemtests/vault.py
index 178ea46..01e3e77 100644
--- a/systemtests/vault.py
+++ b/systemtests/vault.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
 import json
 import subprocess
 import uuid
diff --git a/utils/filter_envs.py b/utils/filter_envs.py
index a233216..17afe71 100644
--- a/utils/filter_envs.py
+++ b/utils/filter_envs.py
@@ -1,3 +1,6 @@
+"""Filter the available environments by the given list."""
+from __future__ import annotations
+
 import argparse
 import subprocess
 import sys
diff --git a/utils/gen_config.py b/utils/gen_config.py
index 98ed2ad..cb000a2 100755
--- a/utils/gen_config.py
+++ b/utils/gen_config.py
@@ -1,4 +1,7 @@
 #!/usr/bin/env python3
+"""Generate specific system-test config from a base config and options."""
+
+from __future__ import annotations
 
 import argparse
 import pathlib
@@ -11,7 +14,6 @@ yaml = YAML()
 
 
 def main(argv: list[str]) -> int:
-
     parser = argparse.ArgumentParser()
     parser.add_argument(
         "base_config",

References