From 4aaf0583c52fb4dd76a77c1a4a86a0f4fe85b1a4 Mon Sep 17 00:00:00 2001 From: Paul Pfeister Date: Mon, 20 May 2024 23:24:03 -0400 Subject: [PATCH] Fix platform differences --- .github/workflows/pull_request.yml | 5 +++-- tests/sherlock_interactives.py | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 033d595..6862819 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -4,7 +4,7 @@ on: pull_request: branches: [ master ] push: - branches: [ master ] + branches: [ master, feature/tox ] jobs: regression-testing: @@ -14,7 +14,8 @@ jobs: matrix: os: [ ubuntu-latest, - #windows-latest, # Need to adapt test_no_usernames_provided, test_versioning + windows-latest, + macos-latest, ] python-version: [ '3.8', diff --git a/tests/sherlock_interactives.py b/tests/sherlock_interactives.py index a05440b..d0424af 100644 --- a/tests/sherlock_interactives.py +++ b/tests/sherlock_interactives.py @@ -1,23 +1,30 @@ import os +import platform import re import subprocess class Interactives: - def run_cli(args: str = "") -> str: + def run_cli(args:str = "") -> str: """Pass arguments to Sherlock as a normal user on the command line""" - command = [f"sherlock {args}"] - proc_out: str = "" + # Adapt for platform differences (Windows likes to be special) + if platform.system == "Windows": + command:str = f"py -m sherlock {args}" + else: + command:str = f"sherlock {args}" + + proc_out:str = "" try: proc_out = subprocess.check_output(command, shell=True, stderr=subprocess.STDOUT) return proc_out.decode() except subprocess.CalledProcessError as e: raise InteractivesSubprocessError(e.output.decode()) + # -> list[str] is prefered, but will require deprecation of support for Python 3.8 def walk_sherlock_for_files_with(pattern: str) -> list: """Check all files within the Sherlock package for matching patterns""" - pattern: re.Pattern = re.compile(pattern) - matching_files: list[str] = [] + pattern:re.Pattern = re.compile(pattern) + matching_files:list[str] = [] for root, dirs, files in os.walk("sherlock"): for file in files: file_path = os.path.join(root,file)