99import pytest
1010from data_designer .engine .resources .seed_reader import DirectorySeedReader , FileContentsSeedReader
1111from data_designer_nemo .context import RemoteDataDesignerContext
12- from data_designer_nemo .seed import validate_seed
12+ from data_designer_nemo .errors import NDDInvalidConfigError
13+ from data_designer_nemo .fileset_file_seed_source import FilesetFileSeedSource
14+ from data_designer_nemo .seed import _validate_seed_from_files_service , validate_seed
1315from nemo_platform import AsyncNeMoPlatform
1416
1517
@@ -35,3 +37,31 @@ async def test_validate_seed_returns_canonical_validated_filesystem_root() -> No
3537 assert validated_root == "default/docs#corpus"
3638 sdk .files .filesets .retrieve .assert_awaited_once_with (name = "docs" , workspace = "default" )
3739 sdk .files .list .assert_awaited_once_with (remote_path = "corpus" , fileset = "docs" , workspace = "default" )
40+
41+
42+ @pytest .mark .asyncio
43+ async def test_validate_seed_rejects_path_with_no_files () -> None :
44+ sdk = AsyncMock (spec = AsyncNeMoPlatform )
45+ sdk .files .filesets .retrieve = AsyncMock ()
46+ sdk .files .list = AsyncMock (return_value = Mock (data = []))
47+
48+ builder = dd .DataDesignerConfigBuilder ()
49+ builder .with_seed_dataset (dd .FileContentsSeedSource (path = "docs#corpus" , file_pattern = "*.md" ))
50+ config = builder .build ()
51+
52+ with pytest .raises (NDDInvalidConfigError , match = "contains no files to use as seed data" ):
53+ await validate_seed (config , "default" , sdk , is_local = False )
54+
55+
56+ @pytest .mark .asyncio
57+ async def test_validate_seed_reports_missing_fileset_file () -> None :
58+ # FilesetFileSeedSource points at a single file, so the error should say "File ... not found"
59+ # rather than the directory-style "contains no files" message.
60+ sdk = AsyncMock (spec = AsyncNeMoPlatform )
61+ sdk .files .filesets .retrieve = AsyncMock ()
62+ sdk .files .list = AsyncMock (return_value = Mock (data = []))
63+
64+ seed_source = FilesetFileSeedSource (path = "docs#corpus/missing.parquet" )
65+
66+ with pytest .raises (NDDInvalidConfigError , match = r"File 'corpus/missing.parquet' not found" ):
67+ await _validate_seed_from_files_service (seed_source , "default" , sdk )
0 commit comments