Перейти к содержанию

Спецификация валидации экстракции данных

Спецификация описывает контракты проверки полноты и корректности данных, извлеченных браузерными сценариями.


Контракты утверждений

1. assert_extraction_complete

Проверяет наличие всех обязательных ключей и их непустоту:

from browser_stealth.testing.assertions import assert_extraction_complete

extracted_item = {
    "title": "Ноутбук",
    "price": 75000,
    "currency": "RUB",
}

assert_extraction_complete(
    extracted_item,
    required_fields=["title", "price", "currency"],
)

2. assert_schema_match

Сравнивает структуру словаря с ожидаемой Pydantic-моделью или словарем типов:

from pydantic import BaseModel
from browser_stealth.testing.assertions import assert_schema_match


class ProductModel(BaseModel):
    title: str
    price: int


assert_schema_match(extracted_item, ProductModel)

3. assert_valid_url и assert_valid_price

Специализированные проверки форматов URL (схема, хост) и числовых значений цен.