From baf62f03fd5cef12fa7bb9fbc2239e7f93450042 Mon Sep 17 00:00:00 2001 From: Athanasius Date: Sun, 2 Oct 2022 12:11:16 +0100 Subject: [PATCH] pytest/coverage: Resolve the "which way around to have pragmas" issue 1. You end up either inverting the sense of a `coverage_conditional_plugin` pragma's name (versus what it actually tests), *or* where you put it in the code. 2. As the pragmas are only defined in once, in one place, it's better to invert the sense there, rather than in *every single use case*. Then technically any 'other' branch isn't guaranteed to --- config/__init__.py | 8 ++++---- journal_lock.py | 8 ++++---- pyproject.toml | 16 +++++++++------- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/config/__init__.py b/config/__init__.py index 6f5bfa12..56679019 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": # pragma: sys-platform-not-darwin + if sys.platform == "darwin": # pragma: sys-platform-darwin from .darwin import MacConfig return MacConfig(*args, **kwargs) - elif sys.platform == "win32": # pragma: sys-platform-not-win32 + elif sys.platform == "win32": # pragma: sys-platform-win32 from .windows import WinConfig return WinConfig(*args, **kwargs) - elif sys.platform == "linux": # pragma: sys-platform-not-linux + elif sys.platform == "linux": # pragma: sys-platform-linux from .linux import LinuxConfig return LinuxConfig(*args, **kwargs) - else: # pragma: sys-platform-known + else: # pragma: sys-platform-not-known raise ValueError(f'Unknown platform: {sys.platform=}') diff --git a/journal_lock.py b/journal_lock.py index b96fd9e9..ef5cf983 100644 --- a/journal_lock.py +++ b/journal_lock.py @@ -94,7 +94,7 @@ class JournalLock: :return: LockResult - See the class Enum definition """ - if sys.platform == 'win32': # pragma: sys-platform-not-win32 + if sys.platform == 'win32': # pragma: sys-platform-win32 logger.trace_if('journal-lock', 'win32, using msvcrt') # win32 doesn't have fcntl, so we have to use msvcrt import msvcrt @@ -107,7 +107,7 @@ class JournalLock: f", assuming another process running: {e!r}") return JournalLockResult.ALREADY_LOCKED - else: # pragma: sys-platform-win32 + else: # pragma: sys-platform-not-win32 logger.trace_if('journal-lock', 'NOT win32, using fcntl') try: import fcntl @@ -143,7 +143,7 @@ class JournalLock: return True # We weren't locked, and still aren't unlocked = False - if sys.platform == 'win32': # pragma: sys-platform-not-win32 + if sys.platform == 'win32': # pragma: sys-platform-win32 logger.trace_if('journal-lock', 'win32, using msvcrt') # win32 doesn't have fcntl, so we have to use msvcrt import msvcrt @@ -160,7 +160,7 @@ class JournalLock: else: unlocked = True - else: # pragma: sys-platform-win32 + else: # pragma: sys-platform-not-win32 logger.trace_if('journal-lock', 'NOT win32, using fcntl') try: import fcntl diff --git a/pyproject.toml b/pyproject.toml index bf2fcc52..7086d166 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -15,13 +15,15 @@ omit = [ "tests/*", "venv/*", "dist.win32/*" ] 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')" +# Yes, the sense of all of these is inverted, because else it ends up +# inverted at *every* use. +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-not-known = "sys_platform in ('darwin', 'linux', 'win32')" [tool.pyright] # pythonPlatform = 'Darwin'