From a2f59f4e3146b8871a9a1d66ee84295b44321ecb Mon Sep 17 00:00:00 2001 From: "John L. Villalovos" Date: Wed, 24 Nov 2021 10:37:13 -0800 Subject: [PATCH] chore: remove duplicate/no-op tests from meta/test_ensure_type_hints Before we were generating 725 tests for the meta/test_ensure_type_hints.py tests. Which isn't a huge concern as it was fairly fast. But when we had a failure we would usually get two failures for each problem as the same test was being run multiple times. Changed it so that: 1. Don't add tests that are not for *Manager classes 2. Use a set so that we don't have duplicate tests. After doing that our generated test count in meta/test_ensure_type_hints.py went from 725 to 178 tests. Additionally removed the parsing of `pyproject.toml` to generate files to ignore as we have finished adding type-hints to all files in gitlab/v4/objects/. This also means we no longer use the toml library so remove installation of `types-toml`. To determine the test count the following command was run: $ tox -e py39 -- -k test_ensure_type_hints --- requirements-lint.txt | 1 - tests/meta/test_ensure_type_hints.py | 28 +++++++--------------------- 2 files changed, 7 insertions(+), 22 deletions(-) diff --git a/requirements-lint.txt b/requirements-lint.txt index b3571147f..eb42924d9 100644 --- a/requirements-lint.txt +++ b/requirements-lint.txt @@ -6,4 +6,3 @@ pytest types-PyYAML==6.0.1 types-requests==2.26.0 types-setuptools==57.4.3 -types-toml==0.10.1 diff --git a/tests/meta/test_ensure_type_hints.py b/tests/meta/test_ensure_type_hints.py index 7a351ec39..a770afba3 100644 --- a/tests/meta/test_ensure_type_hints.py +++ b/tests/meta/test_ensure_type_hints.py @@ -8,7 +8,6 @@ from typing import Tuple, Type import _pytest -import toml import gitlab.mixins import gitlab.v4.objects @@ -18,20 +17,8 @@ def pytest_generate_tests(metafunc: _pytest.python.Metafunc) -> None: """Find all of the classes in gitlab.v4.objects and pass them to our test function""" - # Ignore any modules that we are ignoring in our pyproject.toml - excluded_modules = set() - with open("pyproject.toml", "r") as in_file: - pyproject = toml.load(in_file) - overrides = pyproject.get("tool", {}).get("mypy", {}).get("overrides", []) - for override in overrides: - if not override.get("ignore_errors"): - continue - for module in override.get("module", []): - if module.startswith("gitlab.v4.objects"): - excluded_modules.add(module) - - class_info_list = [] - for module_name, module_value in inspect.getmembers(gitlab.v4.objects): + class_info_set = set() + for _, module_value in inspect.getmembers(gitlab.v4.objects): if not inspect.ismodule(module_value): # We only care about the modules continue @@ -41,17 +28,16 @@ def pytest_generate_tests(metafunc: _pytest.python.Metafunc) -> None: continue module_name = class_value.__module__ - # Ignore modules that mypy is ignoring - if module_name in excluded_modules: - continue - # Ignore imported classes from gitlab.base if module_name == "gitlab.base": continue - class_info_list.append((class_name, class_value)) + if not class_name.endswith("Manager"): + continue + + class_info_set.add((class_name, class_value)) - metafunc.parametrize("class_info", class_info_list) + metafunc.parametrize("class_info", class_info_set) class TestTypeHints: pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy