Об этом проекте
Driver Validation Suite — это повторно используемая модульная тестовая инфраструктура для проверки драйверов ADBC (Arrow Database Connectivity), созданная на Python и библиотеке pytest. Она тестирует различные функции ADBC и типы данных, выполняя SQL-запросы против целевых драйверов, и генерирует таблицы документации, перечисляющие поддерживаемые и неподдерживаемые функции. Набор может учитывать специфический синтаксис и особенности поведения различных баз данных.
Тестовые случаи организованы в директории queries/base, где каждый отдельный тест состоит из всех файлов в одной директории, имеющих общее базовое имя. Набор поддерживает три основных типа запросов:
1. SELECT-запросы: Тестируют выполнение запроса и валидацию его результата, состоят из файла query.sql, ожидаемой схемы результата (query.schema.json), ожидаемых данных результата в формате JSON Lines (query.json), а также опциональных файлов SQL для настройки, данных параметров привязки, схемы привязки и запроса привязки.
2. Schema-запросы: Тестируют получение схемы набора результатов запроса без его выполнения, требуют только файл query.sql и файл ожидаемой схемы.
3. Ingest-запросы: Тестируют пакетную загрузку данных Arrow с последующим запросом загруженной таблицы, требуют файлы входной схемы и данных, а также опциональные файлы ожидаемой схемы и данных результата.
Все тестовые случаи могут включать опциональный метаданный файл query.toml для управления поведением теста и выводом документации: флаг hide полностью пропускает выполнение теста для драйвера, флаг skip помечает тест как неподдерживаемый с указанием причины, sort-keys определяет столбцы для сортировки наборов результатов перед сравнением, а теги могут добавлять оговорки, помечать частичную поддержку или указывать имя типа SQL для документации.
Драйверы могут переопределять базовые тестовые случаи специфическими настройками, помещая файлы по тому же относительному пути в своей назначенной директории quirks, что позволяет избежать дублирования полных тестовых случаев. В качестве альтернативы отдельным определениям файлов для каждого теста можно использовать один файл .txtcase, где комментарии // part: отмечают, какой раздел соответствует какому типу исходного файла. Файлы .txtcase нельзя смешивать с отдельными файлами для одного и того же тестового случая, так как это вызовет ошибки обнаружения тестов.
В проекте отмечается, что формальная документация все еще находится в разработке, и пользователям рекомендуется обращаться к существующим реализациям драйверов ADBC, чтобы узнать, как интегрировать набор для валидации.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.