Coverage for src/pytest_vulture/conf/package.py: 0.00%
33 statements
« prev ^ index » next coverage.py v7.6.1, created at 2024-11-22 10:23 +0100
« prev ^ index » next coverage.py v7.6.1, created at 2024-11-22 10:23 +0100
1"""The package configuration."""
3from configparser import ConfigParser
4from contextlib import suppress
5from pathlib import Path
7from pytest_vulture.conf.base import Configuration
10class PackageConfiguration(Configuration):
11 """The package configuration (setup.py options)
12 Examples::
13 >>> config_file = Path("/tmp/test.ini")
14 >>> config_file.write_text("[package]\\nsetup_path = setup.py\\ncheck_entry_points = true")
15 57
16 >>> config = ConfigParser()
17 >>> config.read(Path(config_file))
18 ['/tmp/test.ini']
19 >>> package_config = PackageConfiguration(is_pyproject=False)
20 >>> package_config.read_ini(config)
21 >>> package_config.setup_path
22 PosixPath('setup.py')
23 >>> package_config.check_entry_points
24 True
25 """
27 _setup_path: Path = Path("setup.py")
28 _source_path: Path = Path()
29 _check_entry_points: bool = True
30 _NAME = "package"
32 @property
33 def setup_path(self) -> Path:
34 return self._setup_path
36 @setup_path.setter
37 def setup_path(self, setup_path: Path) -> None:
38 self._setup_path = setup_path
40 @property
41 def source_path(self) -> Path:
42 return self._source_path
44 @property
45 def check_entry_points(self) -> bool:
46 return self._check_entry_points
48 def read_tomli(self, data: dict) -> None:
49 parameters = self._get_parameters(data)
50 if not parameters: # pragma: no cover
51 return
53 str_source = parameters.get("source-path")
54 self._source_path = Path(str_source) if str_source else Path()
55 self._check_entry_points = data.get("check-entry-points", True)
57 def read_ini(self, config: ConfigParser) -> None:
58 """Read the ini file."""
59 if self._is_pyproject: # pragma: no cover
60 return
61 with suppress(KeyError):
62 self._setup_path = Path(config[self._NAME]["setup_path"])
63 with suppress(KeyError):
64 self._source_path = Path(config[self._NAME]["source_path"])
65 with suppress(KeyError):
66 self._check_entry_points = self._to_bool(config[self._NAME]["check_entry_points"])