diff --git a/infrahub_sdk/node.py b/infrahub_sdk/node.py index 66b9bb0..b75ee77 100644 --- a/infrahub_sdk/node.py +++ b/infrahub_sdk/node.py @@ -725,12 +725,11 @@ def get_human_friendly_id(self) -> Optional[list[str]]: if not self._schema.human_friendly_id: return None - # If all components of an HFID are null, we cannot identify a single node + # If an HFID component is missing we assume that it is invalid and not usable for this node hfid_components = [self.get_path_value(path=item) for item in self._schema.human_friendly_id] - if all(c is None for c in hfid_components): + if None in hfid_components: return None - - return [str(c) for c in hfid_components] + return [str(hfid) for hfid in hfid_components] def get_human_friendly_id_as_string(self, include_kind: bool = False) -> Optional[str]: hfid = self.get_human_friendly_id() diff --git a/infrahub_sdk/pytest_plugin/plugin.py b/infrahub_sdk/pytest_plugin/plugin.py index faddc78..08d355c 100644 --- a/infrahub_sdk/pytest_plugin/plugin.py +++ b/infrahub_sdk/pytest_plugin/plugin.py @@ -1,3 +1,4 @@ +import os from pathlib import Path from typing import Optional, Union @@ -34,6 +35,7 @@ def pytest_addoption(parser: Parser) -> None: action="store", dest="infrahub_key", metavar="INFRAHUB_TESTS_API_KEY", + default=os.getenv("INFRAHUB_API_TOKEN"), help="Key to use when querying the Infrahub instance for live testing", ) group.addoption( @@ -74,12 +76,11 @@ def pytest_sessionstart(session: Session) -> None: "default_branch": session.config.option.infrahub_branch, } if hasattr(session.config.option, "infrahub_key"): - client_config = {"api_token": session.config.option.infrahub_key} + client_config["api_token"] = session.config.option.infrahub_key elif hasattr(session.config.option, "infrahub_username") and hasattr(session.config.option, "infrahub_password"): - client_config = { - "username": session.config.option.infrahub_username, - "password": session.config.option.infrahub_password, - } + client_config.pop("api_token") + client_config["username"] = session.config.option.infrahub_username + client_config["password"] = session.config.option.infrahub_password infrahub_client = InfrahubClientSync(config=client_config) session.infrahub_client = infrahub_client # type: ignore[attr-defined]