From 5d22e4637ce45d9b3d6a8ff517b02019cbdd7378 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 12 Jan 2026 14:33:05 -0800 Subject: [PATCH 1/9] Fixups regarding Code Coverage --- .coveragerc | 4 +- README.md | 17 +++--- azure-pipelines-templates/run-tests.yml | 73 +++++++++++++++---------- azure-pipelines.yml | 14 ++++- run-tests | 13 ----- tests/ci_requirements.txt | 18 ------ nose.cfg => tests/requirements.txt | 5 +- 7 files changed, 70 insertions(+), 74 deletions(-) delete mode 100755 run-tests delete mode 100644 tests/ci_requirements.txt rename nose.cfg => tests/requirements.txt (91%) diff --git a/.coveragerc b/.coveragerc index 21ce1f03d..d4e49a941 100644 --- a/.coveragerc +++ b/.coveragerc @@ -8,7 +8,7 @@ # agreement to the Shotgun Pipeline Toolkit Source Code License. All rights # not expressly granted therein are reserved by Shotgun Software Inc. # -# coverage configuration - used by https://coveralls.io/ integration +# coverage configuration - used by pytest-cov and codecov.io integration # # @@ -16,5 +16,5 @@ source=shotgun_api3 omit= shotgun_api3/lib/httplib2/* - shotgun_api3/lib/certify/* + shotgun_api3/lib/certifi/* shotgun_api3/lib/pyparsing.py diff --git a/README.md b/README.md index 5ae2c82ff..2939baed1 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Reference Documentation](http://img.shields.io/badge/Reference-documentation-blue.svg?logo=wikibooks&logoColor=f5f5f5)](http://developer.shotgridsoftware.com/python-api) [![Build Status](https://dev.azure.com/shotgun-ecosystem/Python%20API/_apis/build/status/shotgunsoftware.python-api?branchName=master)](https://dev.azure.com/shotgun-ecosystem/Python%20API/_build/latest?definitionId=108&branchName=master) -[![Coverage Status](https://coveralls.io/repos/github/shotgunsoftware/python-api/badge.svg?branch=master)](https://coveralls.io/github/shotgunsoftware/python-api?branch=master) +[![Coverage Status](https://codecov.io/gh/shotgunsoftware/python-api/branch/master/graph/badge.svg)](https://codecov.io/gh/shotgunsoftware/python-api) # Flow Production Tracking Python API @@ -11,7 +11,7 @@ Autodesk provides a simple Python-based API for accessing Flow Production Tracki The latest version can always be found at http://github.com/shotgunsoftware/python-api ## Documentation -Tutorials and detailed documentation about the Python API are available at http://developer.shotgridsoftware.com/python-api). +Tutorials and detailed documentation about the Python API are available at http://developer.shotgridsoftware.com/python-api. Some useful direct links: @@ -31,12 +31,11 @@ You can see the [full history of the Python API on the documentation site](http: Integration and unit tests are provided. - All tests require: - - The [nose unit testing tools](http://nose.readthedocs.org), - - The [nose-exclude nose plugin](https://pypi.org/project/nose-exclude/) - - (Note: Running `pip install -r tests/ci_requirements.txt` will install this package) + - [pytest](https://docs.pytest.org/) and related plugins + - (Note: Running `pip install -r tests/requirements.txt` will install all required packages) - A `tests/config` file (you can copy an example from `tests/example_config`). -- Tests can be run individually like this: `nosetests --config="nose.cfg" tests/test_client.py` - - Make sure to not forget the `--config="nose.cfg"` option. This option tells nose to use our config file. -- `test_client` and `tests_unit` use mock server interaction and do not require a Flow Production Tracking instance to be available (no modifications to `tests/config` are necessary). +- Tests can be run individually like this: `pytest tests/test_client.py` +- To run all tests: `pytest` +- To run tests with coverage: `pytest --cov shotgun_api3 --cov-report html` +- `test_client` and `test_unit` use mock server interaction and do not require a Flow Production Tracking instance to be available (no modifications to `tests/config` are necessary). - `test_api` and `test_api_long` *do* require a Flow Production Tracking instance, with a script key available for the tests. The server and script user values must be supplied in the `tests/config` file. The tests will add test data to your server based on information in your config. This data will be manipulated by the tests, and should not be used for other purposes. -- To run all of the tests, use the shell script `run-tests`. diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index 2eb2b311a..2db3c9f6d 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -28,9 +28,17 @@ # This is the list of parameters for this template and their default values. parameters: - os_name: '' - vm_image: '' - python_version: '' + - name: codecov_download_url + type: string + + - name: os_name + type: string + + - name: python_version + type: string + + - name: vm_image + type: string jobs: # The job will be named after the OS and Azure will suffix the strategy to make it unique @@ -63,7 +71,7 @@ jobs: script: | pip install --upgrade pip pip install --upgrade setuptools wheel - pip install --upgrade --requirement tests/ci_requirements.txt + pip install --upgrade --requirement tests/requirements.txt # The {{}} syntax is meant for the the pre-processor of Azure pipeline. Every statement inside # a {{}} block will be evaluated and substituted before the file is parsed to create the jobs. @@ -79,18 +87,18 @@ jobs: Import-Certificate -FilePath $cert_file.FullName -CertStoreLocation Cert:\LocalMachine\Root displayName: Updating OS Certificates - # Runs the tests and generates test coverage. The tests results are uploaded to Azure Pipelines in the - # Tests tab of the build and each test run will be named after the --test-run-title argument to pytest, - # for example 'Windows - 2.7' + # Runs the tests and generates both test report and code coverage - task: Bash@3 displayName: Running tests inputs: targetType: inline script: | cp ./tests/example_config ./tests/config - pytest --durations=0 -v \ - --cov shotgun_api3 --cov-report xml \ - --test-run-title="${{ parameters.os_name }}-${{ parameters.python_version }}" + python -m pytest \ + --verbose \ + --nunit-xml=test-results.xml \ + --cov \ + --cov-report xml \ env: # Pass the values needed to authenticate with the Flow Production Tracking site and create some entities. # Remember, on a pull request from a client or on forked repos, those variables @@ -124,22 +132,31 @@ jobs: SG_TASK_CONTENT: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }} SG_PLAYLIST_CODE: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }} - # Upload the code coverage result to codecov.io. - - ${{ if eq(parameters.os_name, 'Windows') }}: - - powershell: | - $ProgressPreference = 'SilentlyContinue' - Invoke-WebRequest -Uri https://uploader.codecov.io/latest/windows/codecov.exe -Outfile codecov.exe - .\codecov.exe -f coverage.xml - displayName: Uploading code coverage - - ${{ elseif eq(parameters.os_name, 'Linux') }}: - - script: | - curl -Os https://uploader.codecov.io/latest/linux/codecov - chmod +x codecov - ./codecov -f coverage.xml - displayName: Uploading code coverage - - ${{ else }}: - - script: | - curl -Os https://uploader.codecov.io/v0.7.3/macos/codecov + - task: PublishTestResults@2 + displayName: Publish test results + inputs: + testResultsFormat: NUnit + testResultsFiles: test-results.xml + testRunTitle: "${{ parameters.os_name }} - Python ${{ parameters.python_version }}" + failTaskOnFailureToPublishResults: true + failTaskOnMissingResultsFile: true + condition: succeededOrFailed() + + - task: PublishCodeCoverageResults@2 + displayName: Publish code coverage + inputs: + summaryFileLocation: coverage.xml + failIfCoverageEmpty: true + + - task: Bash@3 + displayName: Uploading coverage to Codecov.io + inputs: + targetType: inline + script: | + curl -Os "${{ parameters.codecov_download_url }}" chmod +x codecov - ./codecov -f coverage.xml - displayName: Uploading code coverage + ./codecov \ + --file coverage.xml \ + --flags ${{ parameters.os_name }} \ + --flags "Python ${{ parameters.python_version }}" \ + --name "Tests ran on ${{ parameters.os_name }} with Python ${{ parameters.python_version }}" \ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9bb53334d..74eb4174d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -72,12 +72,21 @@ parameters: default: - name: Linux vm_image: ubuntu-latest + codecov_download_url: https://uploader.codecov.io/latest/linux/codecov - name: macOS vm_image: macOS-latest + codecov_download_url: https://uploader.codecov.io/v0.7.3/macos/codecov + # macOS & codecov note: + # In Nov 2024 (SG-36700), we pinned macOS to codecov v0.7.3 because the + # macOS-latest Azure Pipelines agent is Intel (x86_64), but Codecov + # started shipping arm64-only binaries. + # When we will change the macOs image to a arm64 arch, we can use the + # "latest" version again. - name: Windows vm_image: windows-latest + codecov_download_url: https://uploader.codecov.io/latest/windows/codecov.exe # This here is the list of jobs we want to run for our build. # Jobs run in parallel. @@ -96,6 +105,7 @@ jobs: - ${{ each python_version in parameters.python_versions }}: - template: azure-pipelines-templates/run-tests.yml parameters: - os_name: "${{ os_version.name }}" - vm_image: ${{ os_version.vm_image }} + codecov_download_url: ${{ os_version.codecov_download_url }} + os_name: ${{ os_version.name }} python_version: ${{ python_version }} + vm_image: ${{ os_version.vm_image }} diff --git a/run-tests b/run-tests deleted file mode 100755 index 61b0f82c9..000000000 --- a/run-tests +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2019 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -clear && find ./ -name ".coverage" -delete && find ./ -name "*.pyc" -delete && nosetests -vd --config="nose.cfg" --with-cover --cover-package=shotgun_api3 diff --git a/tests/ci_requirements.txt b/tests/ci_requirements.txt deleted file mode 100644 index 0a3ee1df5..000000000 --- a/tests/ci_requirements.txt +++ /dev/null @@ -1,18 +0,0 @@ -# Copyright (c) 2019 Shotgun Software Inc. -# -# CONFIDENTIAL AND PROPRIETARY -# -# This work is provided "AS IS" and subject to the Shotgun Pipeline Toolkit -# Source Code License included in this distribution package. See LICENSE. -# By accessing, using, copying or modifying this work you indicate your -# agreement to the Shotgun Pipeline Toolkit Source Code License. All rights -# not expressly granted therein are reserved by Shotgun Software Inc. - -coverage -coveralls==1.1 -flake8 -nose==1.3.7 -nose-exclude==0.5.0 -pytest -pytest-azurepipelines -pytest-coverage diff --git a/nose.cfg b/tests/requirements.txt similarity index 91% rename from nose.cfg rename to tests/requirements.txt index 22c0e11cd..82f6c626f 100644 --- a/nose.cfg +++ b/tests/requirements.txt @@ -8,5 +8,6 @@ # agreement to the Shotgun Pipeline Toolkit Source Code License. All rights # not expressly granted therein are reserved by Shotgun Software Inc. -[nosetests] -exclude-dir=shotgun_api3/lib +pytest +pytest-cov +pytest-nunit From 96c215bde462c83f8ee001a8564358818cb0a821 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Wed, 14 Jan 2026 09:26:51 -0800 Subject: [PATCH 2/9] fixup! Fixups regarding Code Coverage --- .coveragerc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.coveragerc b/.coveragerc index d4e49a941..c214a4d36 100644 --- a/.coveragerc +++ b/.coveragerc @@ -8,8 +8,7 @@ # agreement to the Shotgun Pipeline Toolkit Source Code License. All rights # not expressly granted therein are reserved by Shotgun Software Inc. # -# coverage configuration - used by pytest-cov and codecov.io integration -# +# coverage.py configuration (https://pypi.org/project/coverage/) # [run] From a969860c05d72e8d1f839ee5d312108e28c11d03 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 19 Jan 2026 13:03:23 -0800 Subject: [PATCH 3/9] Last updates --- azure-pipelines-templates/run-tests.yml | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index 2db3c9f6d..b92550deb 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -26,8 +26,11 @@ # OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# This is the list of parameters for this template and their default values. parameters: + # Using the most formal way of defining parameters so we don't define a + # default value for mandatory parameters. This way, CI will fail if we forget + # to pass it when invoking the template. + - name: codecov_download_url type: string @@ -46,7 +49,7 @@ jobs: # name of the keys under the strategy.matrix scope. So for each OS we'll have " Python 3.9" and # " Python 3.10". - job: - displayName: "${{ parameters.os_name }} Python ${{ parameters.python_version }}" + displayName: "${{ parameters.os_name }} - Python ${{ parameters.python_version }}" pool: vmImage: ${{ parameters.vm_image }} @@ -135,11 +138,11 @@ jobs: - task: PublishTestResults@2 displayName: Publish test results inputs: - testResultsFormat: NUnit - testResultsFiles: test-results.xml - testRunTitle: "${{ parameters.os_name }} - Python ${{ parameters.python_version }}" failTaskOnFailureToPublishResults: true failTaskOnMissingResultsFile: true + testResultsFiles: test-results.xml + testResultsFormat: NUnit + testRunTitle: "${{ parameters.os_name }} - Python ${{ parameters.python_version }}" condition: succeededOrFailed() - task: PublishCodeCoverageResults@2 @@ -157,6 +160,6 @@ jobs: chmod +x codecov ./codecov \ --file coverage.xml \ - --flags ${{ parameters.os_name }} \ - --flags "Python ${{ parameters.python_version }}" \ + --flags "${{ parameters.os_name }}" \ + --flags "Python-${{ parameters.python_version }}" \ --name "Tests ran on ${{ parameters.os_name }} with Python ${{ parameters.python_version }}" \ From b3c64a7345937c522ff79bd00a6883b67ad695c1 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 19 Jan 2026 13:10:16 -0800 Subject: [PATCH 4/9] Black update + durations --- .pre-commit-config.yaml | 4 ++-- azure-pipelines-templates/run-tests.yml | 7 ++++--- shotgun_api3/shotgun.py | 1 - tests/base.py | 1 - tests/test_client.py | 10 +++++----- tests/test_mockgun.py | 1 - 6 files changed, 11 insertions(+), 13 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 537da22cf..32c088e4d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,7 +33,7 @@ exclude: "shotgun_api3/lib/.*" # List of super useful formatters. repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-ast - id: check-case-conflict @@ -44,6 +44,6 @@ repos: - id: trailing-whitespace - repo: https://github.com/psf/black - rev: 25.1.0 + rev: 26.1.0 hooks: - id: black diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index b92550deb..33e8153af 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -98,10 +98,11 @@ jobs: script: | cp ./tests/example_config ./tests/config python -m pytest \ - --verbose \ - --nunit-xml=test-results.xml \ - --cov \ + --cov=shotgun_api3 \ --cov-report xml \ + --duration=0 \ + --nunit-xml=test-results.xml \ + --verbose \ env: # Pass the values needed to authenticate with the Flow Production Tracking site and create some entities. # Remember, on a pull request from a client or on forked repos, those variables diff --git a/shotgun_api3/shotgun.py b/shotgun_api3/shotgun.py index bc7734b63..7a365daeb 100644 --- a/shotgun_api3/shotgun.py +++ b/shotgun_api3/shotgun.py @@ -71,7 +71,6 @@ from .lib.httplib2 import Http, ProxyInfo, socks from .lib.sgtimezone import SgTimezone - LOG = logging.getLogger("shotgun_api3") """ Logging instance for shotgun_api3 diff --git a/tests/base.py b/tests/base.py index b20b5f1ef..eea47fadb 100644 --- a/tests/base.py +++ b/tests/base.py @@ -14,7 +14,6 @@ import shotgun_api3 as api from shotgun_api3.shotgun import ServerCapabilities - THUMBNAIL_MAX_ATTEMPTS = 30 THUMBNAIL_RETRY_INTERVAL = 10 TRANSIENT_IMAGE_PATH = "images/status/transient" diff --git a/tests/test_client.py b/tests/test_client.py index a43e3ed4a..c94d805f0 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -243,7 +243,7 @@ def test_localization_header_default(self): self.sg.info() args, _ = self.sg._http_request.call_args - (_, _, _, headers) = args + _, _, _, headers = args expected_header_value = "auto" self.assertEqual(None, headers.get("locale")) @@ -255,7 +255,7 @@ def test_localization_header_when_localized(self): self.sg.info() args, _ = self.sg._http_request.call_args - (_, _, _, headers) = args + _, _, _, headers = args expected_header_value = "auto" self.assertEqual("auto", headers.get("locale")) @@ -267,7 +267,7 @@ def test_user_agent(self): client_caps = self.sg.client_caps config = self.sg.config args, _ = self.sg._http_request.call_args - (_, _, _, headers) = args + _, _, _, headers = args ssl_validate_lut = {True: "no-validate", False: "validate"} expected = "shotgun-json (%s); Python %s (%s); ssl %s" % ( api.__version__, @@ -281,7 +281,7 @@ def test_user_agent(self): self.sg.add_user_agent("test-agent") self.sg.info() args, _ = self.sg._http_request.call_args - (_, _, _, headers) = args + _, _, _, headers = args expected = "shotgun-json (%s); Python %s (%s); ssl %s; test-agent" % ( api.__version__, client_caps.py_version, @@ -294,7 +294,7 @@ def test_user_agent(self): self.sg.reset_user_agent() self.sg.info() args, _ = self.sg._http_request.call_args - (_, _, _, headers) = args + _, _, _, headers = args expected = "shotgun-json (%s); Python %s (%s); ssl %s" % ( api.__version__, client_caps.py_version, diff --git a/tests/test_mockgun.py b/tests/test_mockgun.py index ad478304a..b12c318f7 100644 --- a/tests/test_mockgun.py +++ b/tests/test_mockgun.py @@ -42,7 +42,6 @@ from shotgun_api3.lib.mockgun import Shotgun as Mockgun from shotgun_api3 import ShotgunError - mockgun_schema_folder = os.path.join(os.path.dirname(__file__), "mockgun") Mockgun.set_schema_paths( From f622b103eee882e050e22e445e0c9933aaa93e7d Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 19 Jan 2026 13:14:36 -0800 Subject: [PATCH 5/9] fixup! Black update + durations --- azure-pipelines-templates/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index 33e8153af..898a885b0 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -100,7 +100,7 @@ jobs: python -m pytest \ --cov=shotgun_api3 \ --cov-report xml \ - --duration=0 \ + --durations=0 \ --nunit-xml=test-results.xml \ --verbose \ env: From 5dd234a679feac807b39e039fa6a02d3a5c4b857 Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 19 Jan 2026 13:41:35 -0800 Subject: [PATCH 6/9] Better --- azure-pipelines-templates/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index 898a885b0..b33e41fd5 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -99,7 +99,7 @@ jobs: cp ./tests/example_config ./tests/config python -m pytest \ --cov=shotgun_api3 \ - --cov-report xml \ + --cov-report xml:coverage.xml \ --durations=0 \ --nunit-xml=test-results.xml \ --verbose \ From 09e12ab013337b0649260c7b349d768ba8ef8f9c Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 19 Jan 2026 14:08:53 -0800 Subject: [PATCH 7/9] Better --- azure-pipelines-templates/run-tests.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index b33e41fd5..edf6d3e94 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -72,6 +72,7 @@ jobs: inputs: targetType: inline script: | + set -e pip install --upgrade pip pip install --upgrade setuptools wheel pip install --upgrade --requirement tests/requirements.txt @@ -96,6 +97,7 @@ jobs: inputs: targetType: inline script: | + set -e cp ./tests/example_config ./tests/config python -m pytest \ --cov=shotgun_api3 \ @@ -104,6 +106,9 @@ jobs: --nunit-xml=test-results.xml \ --verbose \ env: + # Tell Pytest that we're running in a CI environment + CI: 1 + # Pass the values needed to authenticate with the Flow Production Tracking site and create some entities. # Remember, on a pull request from a client or on forked repos, those variables # will be empty! @@ -136,6 +141,12 @@ jobs: SG_TASK_CONTENT: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }} SG_PLAYLIST_CODE: CI-$(python_api_human_login)-${{ parameters.os_name }}-${{ parameters.python_version }} + # Explicit call to PublishTestResults@2 and PublishCodeCoverageResults@2 here + # instead of relying on pytest-azurepipelines because pytest-azurepipelines + # does not seem to be maintained anymore and is still using earlier versions + # of the PublishTestResults and PublishCodeCoverageResults Azure Pipelines + # jobs. + - task: PublishTestResults@2 displayName: Publish test results inputs: @@ -157,6 +168,7 @@ jobs: inputs: targetType: inline script: | + set -e curl -Os "${{ parameters.codecov_download_url }}" chmod +x codecov ./codecov \ From eb40e12d3652d4a64e04c4f22c07ea0e338e459d Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Mon, 19 Jan 2026 14:23:06 -0800 Subject: [PATCH 8/9] fixup! Better --- azure-pipelines-templates/run-tests.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index edf6d3e94..c0cb1074d 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -44,10 +44,6 @@ parameters: type: string jobs: - # The job will be named after the OS and Azure will suffix the strategy to make it unique - # so we'll have a job name "Windows Python 3.9" for example. What's a strategy? Strategies are the - # name of the keys under the strategy.matrix scope. So for each OS we'll have " Python 3.9" and - # " Python 3.10". - job: displayName: "${{ parameters.os_name }} - Python ${{ parameters.python_version }}" pool: From 9ec4bbe440773fadfbc5b1062c3b95406885ceba Mon Sep 17 00:00:00 2001 From: Julien Langlois Date: Thu, 22 Jan 2026 13:42:32 -0800 Subject: [PATCH 9/9] Cleanup --- azure-pipelines-templates/run-tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines-templates/run-tests.yml b/azure-pipelines-templates/run-tests.yml index c0cb1074d..54e64aaca 100644 --- a/azure-pipelines-templates/run-tests.yml +++ b/azure-pipelines-templates/run-tests.yml @@ -96,7 +96,7 @@ jobs: set -e cp ./tests/example_config ./tests/config python -m pytest \ - --cov=shotgun_api3 \ + --cov \ --cov-report xml:coverage.xml \ --durations=0 \ --nunit-xml=test-results.xml \ @@ -165,10 +165,10 @@ jobs: targetType: inline script: | set -e - curl -Os "${{ parameters.codecov_download_url }}" + curl --remote-name --silent "${{ parameters.codecov_download_url }}" chmod +x codecov ./codecov \ --file coverage.xml \ --flags "${{ parameters.os_name }}" \ --flags "Python-${{ parameters.python_version }}" \ - --name "Tests ran on ${{ parameters.os_name }} with Python ${{ parameters.python_version }}" \ + --name "Tested on ${{ parameters.os_name }} with Python ${{ parameters.python_version }}" \