From 5efd27a83cbabdc716f096c1cc6fd069460f2f55 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Fri, 30 Sep 2022 19:45:12 +0100 Subject: [PATCH] tests: Attempt to fix config/ coverage * Define `darwin` and `linux` *and* "platform known" pragmas. * Use per-platform pragmas in `config/__init__.py` selection of implementation. * Attempt, and fail, to use pragma in `config/darwin.py` to ignore it on other platforms. --- config/__init__.py | 8 ++++---- config/darwin.py | 4 ++++ pyproject.toml | 5 +++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/config/__init__.py b/config/__init__.py index cc125129..6f5bfa12 100644 --- a/config/__init__.py +++ b/config/__init__.py @@ -454,19 +454,19 @@ def get_config(*args, **kwargs) -> AbstractConfig: :param kwargs: Args to be passed through to implementation. :return: Instance of the implementation. """ - if sys.platform == "darwin": + if sys.platform == "darwin": # pragma: sys-platform-not-darwin from .darwin import MacConfig return MacConfig(*args, **kwargs) - elif sys.platform == "win32": + elif sys.platform == "win32": # pragma: sys-platform-not-win32 from .windows import WinConfig return WinConfig(*args, **kwargs) - elif sys.platform == "linux": + elif sys.platform == "linux": # pragma: sys-platform-not-linux from .linux import LinuxConfig return LinuxConfig(*args, **kwargs) - else: + else: # pragma: sys-platform-known raise ValueError(f'Unknown platform: {sys.platform=}') diff --git a/config/darwin.py b/config/darwin.py index eb2b887f..a492b8a1 100644 --- a/config/darwin.py +++ b/config/darwin.py @@ -1,3 +1,7 @@ +"""Darwin/macOS implementation of AbstractConfig.""" +# This doesn't actually work: +# +# pragma: sys-platform-not-darwin import pathlib import sys from typing import Any, Dict, List, Union diff --git a/pyproject.toml b/pyproject.toml index 387f00c7..bf2fcc52 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,11 @@ plugins = [ "coverage_conditional_plugin" ] [tool.coverage.coverage_conditional_plugin.rules] sys-platform-win32 = "sys_platform == 'win32'" sys-platform-not-win32 = "sys_platform != 'win32'" +sys-platform-darwin = "sys_platform == 'darwin'" +sys-platform-not-darwin = "sys_platform != 'darwin'" +sys-platform-linux = "sys_platform == 'linux'" +sys-platform-not-linux = "sys_platform != 'linux'" +sys-platform-known = "sys_platform in ('darwin', 'linux', 'win32')" [tool.pyright] # pythonPlatform = 'Darwin'