# Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # # This source code is licensed under the terms described in the LICENSE file in # the root directory of this source tree. import pytest import pytest_asyncio from llama_stack.distribution.datatypes import Api, Provider from llama_stack.providers.tests.resolver import construct_stack_for_test from ..conftest import ProviderFixture, remote_stack_fixture @pytest.fixture(scope="session") def datasetio_remote() -> ProviderFixture: return remote_stack_fixture() @pytest.fixture(scope="session") def datasetio_localfs() -> ProviderFixture: return ProviderFixture( providers=[ Provider( provider_id="localfs", provider_type="inline::localfs", config={}, ) ], ) @pytest.fixture(scope="session") def datasetio_huggingface() -> ProviderFixture: return ProviderFixture( providers=[ Provider( provider_id="huggingface", provider_type="remote::huggingface", config={}, ) ], ) DATASETIO_FIXTURES = ["localfs", "remote", "huggingface"] @pytest_asyncio.fixture(scope="session") async def datasetio_stack(request): fixture_name = request.param fixture = request.getfixturevalue(f"datasetio_{fixture_name}") test_stack = await construct_stack_for_test( [Api.datasetio], {"datasetio": fixture.providers}, fixture.provider_data, ) return test_stack.impls[Api.datasetio], test_stack.impls[Api.datasets]