From 8e3751f6472a1a669bbcb86c2189af76fb9a0a0e Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Tue, 13 Feb 2024 11:51:48 +0100 Subject: [PATCH] lsb-release: split the function so it can be tested with more ease Signed-off-by: Olivier Gayot --- subiquitycore/lsb_release.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/subiquitycore/lsb_release.py b/subiquitycore/lsb_release.py index 9e3ac136..7bf91728 100644 --- a/subiquitycore/lsb_release.py +++ b/subiquitycore/lsb_release.py @@ -6,15 +6,7 @@ LSB_RELEASE_FILE = "/etc/lsb-release" LSB_RELEASE_EXAMPLE = "examples/lsb-release-focal" -def lsb_release(path=None, dry_run: bool = False) -> Dict[str, str]: - """return a dictionary of values from /etc/lsb-release. - keys are lower case with DISTRIB_ prefix removed.""" - if dry_run and path is not None: - raise ValueError("Both dry_run and path are specified.") - - if path is None: - path = LSB_RELEASE_EXAMPLE if dry_run else LSB_RELEASE_FILE - +def lsb_release_from_path(path: str) -> Dict[str, str]: ret: Dict[str, str] = {} try: with open(path, "r") as fp: @@ -30,5 +22,17 @@ def lsb_release(path=None, dry_run: bool = False) -> Dict[str, str]: return ret +def lsb_release(path=None, dry_run: bool = False) -> Dict[str, str]: + """return a dictionary of values from /etc/lsb-release. + keys are lower case with DISTRIB_ prefix removed.""" + if dry_run and path is not None: + raise ValueError("Both dry_run and path are specified.") + + if path is None: + path = LSB_RELEASE_EXAMPLE if dry_run else LSB_RELEASE_FILE + + return lsb_release_from_path(path) + + if __name__ == "__main__": print(lsb_release())