Files
ai-training/tests/test_infrastructure.py
T
Oleksandr Bezdieniezhnykh 142c6c4de8 Refactor constants management to use Pydantic BaseModel for configuration
- Replaced module-level path variables in constants.py with a structured Pydantic Config class.
- Updated all relevant modules (train.py, augmentation.py, exports.py, dataset-visualiser.py, manual_run.py) to access paths through the new config structure.
- Fixed bugs related to image processing and model saving.
- Enhanced test infrastructure to accommodate the new configuration approach.

This refactor improves code maintainability and clarity by centralizing configuration management.
2026-03-27 18:18:30 +02:00

60 lines
1.7 KiB
Python

import constants as c
def test_fixture_images_dir_has_jpegs(fixture_images_dir):
jpgs = list(fixture_images_dir.glob("*.jpg"))
assert len(jpgs) == 100
def test_fixture_labels_dir_has_yolo_labels(fixture_labels_dir):
txts = list(fixture_labels_dir.glob("*.txt"))
assert len(txts) == 100
def test_fixture_onnx_model_bytes(fixture_onnx_model):
assert len(fixture_onnx_model) > 0
def test_fixture_classes_json_exists(fixture_classes_json):
assert fixture_classes_json.is_file()
assert fixture_classes_json.name == "classes.json"
def test_work_dir_layout(work_dir):
assert (work_dir / "images").is_dir()
assert (work_dir / "labels").is_dir()
def test_sample_image_label_paths(sample_image_label):
img, lbl = sample_image_label
assert img.suffix.lower() == ".jpg"
assert lbl.suffix == ".txt"
assert img.exists() and lbl.exists()
assert img.stem == lbl.stem
def test_sample_images_labels_factory(sample_images_labels):
img_dir, lbl_dir = sample_images_labels(3)
assert len(list(img_dir.glob("*.jpg"))) == 3
assert len(list(lbl_dir.glob("*.txt"))) == 3
def test_corrupted_label_content(corrupted_label):
text = corrupted_label.read_text(encoding="utf-8")
assert "1.5" in text
def test_edge_bbox_label_exists(edge_bbox_label):
assert edge_bbox_label.read_text(encoding="utf-8").strip()
def test_empty_label_file(empty_label):
assert empty_label.read_text(encoding="utf-8") == ""
def test_constants_patch_uses_tmp(constants_patch, tmp_path):
constants_patch(tmp_path)
assert c.config.azaion.startswith(str(tmp_path))
assert c.config.data_dir.startswith(str(tmp_path))
assert c.config.current_onnx_model.startswith(str(tmp_path))