Preparing next release

- More typing
- All failing mypy tests fixed
This commit is contained in:
Jürgen Edelbluth 2022-08-15 17:32:09 +00:00
parent 9b744d8b4c
commit 8c888d450a
Signed by: jed
GPG Key ID: 6DEAEDD5CDB646DF
6 changed files with 16 additions and 15 deletions

View File

@ -6,14 +6,14 @@ from _pytest.config import Config
from _ptcsvp.plugin import Plugin from _ptcsvp.plugin import Plugin
def pytest_configure(config: Config, plugin_name="csv_params") -> None: def pytest_configure(config: Config, plugin_name: str = "csv_params") -> None:
""" """
Register our Plugin Register our Plugin
""" """
config.pluginmanager.register(Plugin(config), f"{plugin_name}_plugin") config.pluginmanager.register(Plugin(config), f"{plugin_name}_plugin")
def pytest_unconfigure(config: Config, plugin_name="csv_params") -> None: def pytest_unconfigure(config: Config, plugin_name: str = "csv_params") -> None:
""" """
Remove our Plugin Remove our Plugin
""" """

View File

@ -6,6 +6,7 @@ from pathlib import Path
from typing import Any, List, Optional, TypedDict from typing import Any, List, Optional, TypedDict
import pytest import pytest
from _pytest.mark import MarkDecorator
from _ptcsvp.plugin import BASE_DIR_KEY, Plugin from _ptcsvp.plugin import BASE_DIR_KEY, Plugin
from pytest_csv_params.dialect import CsvParamsDefaultDialect from pytest_csv_params.dialect import CsvParamsDefaultDialect
@ -14,7 +15,7 @@ from pytest_csv_params.exception import (
CsvParamsDataFileInvalid, CsvParamsDataFileInvalid,
CsvParamsDataFileNotFound, CsvParamsDataFileNotFound,
) )
from pytest_csv_params.types import BaseDir, CsvDialect, DataCastDict, DataFile, IdColName from pytest_csv_params.types import BaseDir, CsvDialect, DataCasts, DataFile, IdColName
class TestCaseParameters(TypedDict): class TestCaseParameters(TypedDict):
@ -56,9 +57,9 @@ def add_parametrization(
data_file: DataFile, data_file: DataFile,
base_dir: BaseDir = None, base_dir: BaseDir = None,
id_col: IdColName = None, id_col: IdColName = None,
data_casts: DataCastDict = None, data_casts: DataCasts = None,
dialect: CsvDialect = CsvParamsDefaultDialect, dialect: CsvDialect = CsvParamsDefaultDialect,
): ) -> MarkDecorator:
""" """
Get data from the files and add things to the tests Get data from the files and add things to the tests
""" """

View File

@ -2,6 +2,7 @@
The main Plugin implementation The main Plugin implementation
""" """
from _pytest.config import Config
BASE_DIR_KEY = "__pytest_csv_plugins__config__base_dir" BASE_DIR_KEY = "__pytest_csv_plugins__config__base_dir"
@ -11,7 +12,7 @@ class Plugin: # pylint: disable=too-few-public-methods
Plugin Class Plugin Class
""" """
def __init__(self, config) -> None: def __init__(self, config: Config) -> None:
""" """
Hold the pytest config Hold the pytest config
""" """

View File

@ -2,12 +2,11 @@
Types to ease the usage of the API Types to ease the usage of the API
""" """
import csv import csv
from typing import Callable, Dict, Optional, Type, TypeVar from typing import Any, Callable, Dict, Optional, Type
T = TypeVar("T") DataCast = Callable[[str], Any]
DataCast = Callable[[str], T]
DataCastDict = Dict[str, DataCast] DataCastDict = Dict[str, DataCast]
DataCasts = Optional[DataCastDict]
BaseDir = Optional[str] BaseDir = Optional[str]
IdColName = Optional[str] IdColName = Optional[str]

View File

@ -2,7 +2,7 @@
Test the Parametrization Feature Test the Parametrization Feature
""" """
from os.path import dirname, join from os.path import dirname, join
from typing import List, Optional, Tuple from typing import List, Optional, Tuple, Type
import pytest import pytest
@ -82,7 +82,7 @@ def test_parametrization( # pylint: disable=too-many-arguments
id_col: Optional[str], id_col: Optional[str],
result: Optional[Tuple[List[str], List[List[str]]]], result: Optional[Tuple[List[str], List[List[str]]]],
ids: Optional[List[str]], ids: Optional[List[str]],
expect_exception: Optional[Exception], expect_exception: Optional[Type[Exception]],
expect_message: Optional[str], expect_message: Optional[str],
) -> None: ) -> None:
""" """

View File

@ -2,7 +2,7 @@
Test the reading of the CSV Test the reading of the CSV
""" """
from os.path import dirname, join from os.path import dirname, join
from typing import Optional from typing import Optional, Type
import pytest import pytest
@ -35,10 +35,10 @@ from pytest_csv_params.exception import CsvParamsDataFileInvalid, CsvParamsDataF
], ],
) )
def test_csv_reader( def test_csv_reader(
csv_file: Optional[str], csv_file: str,
base_dir: Optional[str], base_dir: Optional[str],
expect_lines: Optional[int], expect_lines: Optional[int],
expect_exception: Optional[Exception], expect_exception: Optional[Type[Exception]],
expect_message: Optional[str], expect_message: Optional[str],
) -> None: ) -> None:
""" """