Merge pull request 'AURORA-1677: поправил тесты, ruff и mypy' (#1) from statements-library-packaging-checks into main
Reviewed-on: #1
This commit is contained in:
commit
d64d2a885b
2
Makefile
2
Makefile
@ -16,7 +16,7 @@ install: ## Установить или переустановить библи
|
||||
lint: ## ruff check, ruff format --check, mypy
|
||||
$(BIN)/ruff check .
|
||||
$(BIN)/ruff format --check .
|
||||
$(BIN)/mypy pylib_ai_arm_statements
|
||||
$(BIN)/mypy arm_statements
|
||||
|
||||
test: ## pytest
|
||||
$(BIN)/pytest
|
||||
|
||||
@ -6,7 +6,7 @@ target-version = "py311"
|
||||
select = ["E", "F", "I", "UP", "B", "PL"]
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
known-first-party = ["pylib_ai_arm_statements"]
|
||||
known-first-party = ["arm_statements"]
|
||||
|
||||
[tool.mypy]
|
||||
python_version = "3.11"
|
||||
|
||||
@ -1,6 +1,3 @@
|
||||
pandas>=2.0.0
|
||||
numpy>=1.24.0
|
||||
|
||||
build>=0.10.0
|
||||
twine>=4.0.0
|
||||
ruff==0.16.10
|
||||
|
||||
@ -1,4 +1,2 @@
|
||||
# Пример зависимостей для работы с данными
|
||||
pandas>=2.0.0
|
||||
numpy>=1.24.0
|
||||
PyYAML==6.0.3
|
||||
|
||||
30
setup.py
30
setup.py
@ -1,31 +1,31 @@
|
||||
from setuptools import setup, find_packages
|
||||
import os
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
version_file = os.path.join(os.path.dirname(__file__), 'VERSION')
|
||||
with open(version_file, 'r') as f:
|
||||
version_file = os.path.join(os.path.dirname(__file__), "VERSION")
|
||||
with open(version_file) as f:
|
||||
version = f.read().strip()
|
||||
|
||||
with open('requirements.txt') as f:
|
||||
requirements = [line.strip() for line in f if line.strip() and not line.startswith('#')]
|
||||
with open("requirements.txt") as f:
|
||||
requirements = [line.strip() for line in f if line.strip() and not line.startswith("#")]
|
||||
|
||||
with open('README.md', encoding='utf-8') as f:
|
||||
with open("README.md", encoding="utf-8") as f:
|
||||
long_description = f.read()
|
||||
|
||||
setup(
|
||||
name="pylib-ai-arm-statements",
|
||||
version=version,
|
||||
author='tsygankov-iva',
|
||||
description='Библиотека нормализации форм ББ/ОФР для ДКБ АРМКА',
|
||||
author="tsygankov-iva",
|
||||
description="Библиотека нормализации форм ББ/ОФР для ДКБ АРМКА",
|
||||
long_description=long_description,
|
||||
long_description_content_type='text/markdown',
|
||||
packages=find_packages(exclude=['tests', 'tests.*']),
|
||||
long_description_content_type="text/markdown",
|
||||
packages=find_packages(exclude=["tests", "tests.*"]),
|
||||
install_requires=requirements,
|
||||
python_requires='>=3.10',
|
||||
python_requires=">=3.11",
|
||||
classifiers=[
|
||||
'Development Status :: 3 - Alpha',
|
||||
'Intended Audience :: Developers',
|
||||
'Programming Language :: Python :: 3.10',
|
||||
'Programming Language :: Python :: 3.11',
|
||||
"Development Status :: 3 - Alpha",
|
||||
"Intended Audience :: Developers",
|
||||
# 'Programming Language :: Python :: 3.10',
|
||||
"Programming Language :: Python :: 3.11",
|
||||
],
|
||||
)
|
||||
@ -9,7 +9,7 @@ from arm_statements.issues import WarningCode, make_warning
|
||||
from arm_statements.loader import LABEL_KEYS, Rules, RulesError, load_rules
|
||||
from arm_statements.model import DocumentType, Edition, FormVariant, Severity
|
||||
|
||||
RULES_DIR = Path(__file__).resolve().parent.parent / "pylib_ai_arm_statements" / "rules"
|
||||
RULES_DIR = Path(__file__).resolve().parent.parent / "arm_statements" / "rules"
|
||||
|
||||
SPEC_WARNINGS = {
|
||||
"JSON_FAILED": ("error", "file"),
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
from importlib.metadata import PackageNotFoundError
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
import arm_statements.version as version_module
|
||||
from arm_statements.version import statements_version
|
||||
|
||||
FULL_HASH = "abc1234def5678abc1234def5678abc1234def56"
|
||||
@ -19,3 +23,52 @@ def test_version_empty_file_is_none(tmp_path: Path) -> None:
|
||||
marker = tmp_path / "VERSION"
|
||||
marker.write_text(" \n", encoding="utf-8")
|
||||
assert statements_version(marker) is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize("contents", [None, " \n"])
|
||||
def test_default_marker_falls_back_to_distribution(
|
||||
tmp_path: Path, monkeypatch: pytest.MonkeyPatch, contents: str | None
|
||||
) -> None:
|
||||
marker = tmp_path / "VERSION"
|
||||
if contents is not None:
|
||||
marker.write_text(contents, encoding="utf-8")
|
||||
monkeypatch.setattr(version_module, "_DEFAULT_MARKER", marker)
|
||||
monkeypatch.setattr(version_module, "version", lambda name: "0.1.1" if name == "pylib-ai-arm-statements" else None)
|
||||
assert statements_version() == "0.1.1"
|
||||
|
||||
|
||||
def test_default_marker_takes_priority(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
marker = tmp_path / "VERSION"
|
||||
marker.write_text(f" {FULL_HASH}\n", encoding="utf-8")
|
||||
monkeypatch.setattr(version_module, "_DEFAULT_MARKER", marker)
|
||||
|
||||
def unexpected_metadata_lookup(name: str) -> str:
|
||||
raise AssertionError(f"Unexpected metadata lookup: {name}")
|
||||
|
||||
monkeypatch.setattr(version_module, "version", unexpected_metadata_lookup)
|
||||
assert statements_version() == FULL_HASH
|
||||
|
||||
|
||||
def test_default_version_without_metadata_is_none(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
monkeypatch.setattr(version_module, "_DEFAULT_MARKER", tmp_path / "VERSION")
|
||||
|
||||
def missing_distribution(name: str) -> str:
|
||||
raise PackageNotFoundError(name)
|
||||
|
||||
monkeypatch.setattr(version_module, "version", missing_distribution)
|
||||
assert statements_version() is None
|
||||
|
||||
|
||||
@pytest.mark.parametrize("contents", [None, " \n"])
|
||||
def test_explicit_marker_does_not_use_distribution(
|
||||
tmp_path: Path, monkeypatch: pytest.MonkeyPatch, contents: str | None
|
||||
) -> None:
|
||||
marker = tmp_path / "VERSION"
|
||||
if contents is not None:
|
||||
marker.write_text(contents, encoding="utf-8")
|
||||
|
||||
def unexpected_metadata_lookup(name: str) -> str:
|
||||
raise AssertionError(f"Unexpected metadata lookup: {name}")
|
||||
|
||||
monkeypatch.setattr(version_module, "version", unexpected_metadata_lookup)
|
||||
assert statements_version(marker) is None
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user