DataDesigner/packages/data-designer-engine/tests/engine/resources/test_seed_reader.py
Johnny Greco ae0665fa16
refactor: slim package refactor into three subpackages (#240)
* remove old structure

* major shuffle

* streamline project configs

* update make commands

* updates to make commands

* remove essentials

* initialize logger in interface

* uv lock

* ignore notepad

* update workflows

* fix e2e project config

* generate colab notebooks

* resolve default model settings in interface

* fix build commands

* update perf import make command

* cleaning up some slop

* update recipes

* move conftest files to tests/

* update subpackage readmes

* streamline config_logging

* use exports

* update perf import usage pattern

* update for IDE behavior with ruff

* remove engine's fixtures file

* add note to about lazy imports

* update dependencies

* update docs

* doc fixes

* uv lock

* updates to catch up with main

* clean up makefile

* remove package gitignores

* define deps only once

* isolate tests

* add test for protetion rule

* create temp dirs for isolated tests

* catch up to main

* update headers

* re apply changes

* better result summaries for isolated tests

* move exports into top-level init

* fix client importlib version syntax

* catch up with main
2026-01-27 13:53:20 -05:00

58 lines
1.6 KiB
Python

# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
from __future__ import annotations
from typing import TYPE_CHECKING
import pytest
from data_designer.config.seed_source import DataFrameSeedSource
from data_designer.engine.resources.seed_reader import (
DataFrameSeedReader,
LocalFileSeedReader,
SeedReaderError,
SeedReaderRegistry,
)
from data_designer.engine.secret_resolver import PlaintextResolver
from data_designer.lazy_heavy_imports import pd
if TYPE_CHECKING:
import pandas as pd
def test_one_reader_per_seed_type():
local_1 = LocalFileSeedReader()
local_2 = LocalFileSeedReader()
with pytest.raises(SeedReaderError):
SeedReaderRegistry([local_1, local_2])
registry = SeedReaderRegistry([local_1])
with pytest.raises(SeedReaderError):
registry.add_reader(local_2)
def test_get_reader_basic():
local_reader = LocalFileSeedReader()
df_reader = DataFrameSeedReader()
registry = SeedReaderRegistry([local_reader, df_reader])
df = pd.DataFrame(data={"a": [1, 2, 3]})
local_seed_config = DataFrameSeedSource(df=df)
reader = registry.get_reader(local_seed_config, PlaintextResolver())
assert reader == df_reader
def test_get_reader_missing():
local_reader = LocalFileSeedReader()
registry = SeedReaderRegistry([local_reader])
df = pd.DataFrame(data={"a": [1, 2, 3]})
local_seed_config = DataFrameSeedSource(df=df)
with pytest.raises(SeedReaderError):
registry.get_reader(local_seed_config, PlaintextResolver())