@@ -811,6 +811,97 @@ def test_lab_ensure_initialized(tmp_path, monkeypatch):
811811 pass # Expected
812812
813813
814+ def test_lab_list_datasets (tmp_path , monkeypatch ):
815+ _fresh (monkeypatch )
816+ home = tmp_path / ".tfl_home"
817+ ws = tmp_path / ".tfl_ws"
818+ home .mkdir ()
819+ ws .mkdir ()
820+ monkeypatch .setenv ("TFL_HOME_DIR" , str (home ))
821+ monkeypatch .setenv ("TFL_WORKSPACE_DIR" , str (ws ))
822+
823+ from lab .lab_facade import Lab
824+ from lab .dataset import Dataset
825+
826+ # Create test datasets
827+ ds1 = asyncio .run (Dataset .create ("test_dataset_1" ))
828+ asyncio .run (ds1 .set_metadata (description = "First dataset" ))
829+
830+ ds2 = asyncio .run (Dataset .create ("test_dataset_2" ))
831+ asyncio .run (ds2 .set_metadata (description = "Second dataset" ))
832+
833+ lab = Lab ()
834+ # list_datasets doesn't require initialization
835+ datasets = lab .list_datasets ()
836+
837+ assert len (datasets ) >= 2
838+ dataset_ids = [d .get ("dataset_id" ) for d in datasets ]
839+ assert "test_dataset_1" in dataset_ids
840+ assert "test_dataset_2" in dataset_ids
841+
842+
843+ def test_lab_list_datasets_empty (tmp_path , monkeypatch ):
844+ _fresh (monkeypatch )
845+ home = tmp_path / ".tfl_home"
846+ ws = tmp_path / ".tfl_ws"
847+ home .mkdir ()
848+ ws .mkdir ()
849+ monkeypatch .setenv ("TFL_HOME_DIR" , str (home ))
850+ monkeypatch .setenv ("TFL_WORKSPACE_DIR" , str (ws ))
851+
852+ from lab .lab_facade import Lab
853+
854+ lab = Lab ()
855+ datasets = lab .list_datasets ()
856+
857+ assert isinstance (datasets , list )
858+ assert len (datasets ) == 0
859+
860+
861+ def test_lab_get_dataset (tmp_path , monkeypatch ):
862+ _fresh (monkeypatch )
863+ home = tmp_path / ".tfl_home"
864+ ws = tmp_path / ".tfl_ws"
865+ home .mkdir ()
866+ ws .mkdir ()
867+ monkeypatch .setenv ("TFL_HOME_DIR" , str (home ))
868+ monkeypatch .setenv ("TFL_WORKSPACE_DIR" , str (ws ))
869+
870+ from lab .lab_facade import Lab
871+ from lab .dataset import Dataset
872+
873+ # Create a test dataset
874+ ds = asyncio .run (Dataset .create ("test_dataset_get" ))
875+ asyncio .run (ds .set_metadata (description = "My Dataset" ))
876+
877+ lab = Lab ()
878+ # get_dataset doesn't require initialization
879+ retrieved_ds = lab .get_dataset ("test_dataset_get" )
880+
881+ assert retrieved_ds .id == "test_dataset_get"
882+ metadata = asyncio .run (retrieved_ds .get_metadata ())
883+ assert metadata ["description" ] == "My Dataset"
884+
885+
886+ def test_lab_get_dataset_nonexistent (tmp_path , monkeypatch ):
887+ _fresh (monkeypatch )
888+ home = tmp_path / ".tfl_home"
889+ ws = tmp_path / ".tfl_ws"
890+ home .mkdir ()
891+ ws .mkdir ()
892+ monkeypatch .setenv ("TFL_HOME_DIR" , str (home ))
893+ monkeypatch .setenv ("TFL_WORKSPACE_DIR" , str (ws ))
894+
895+ from lab .lab_facade import Lab
896+
897+ lab = Lab ()
898+ try :
899+ lab .get_dataset ("nonexistent_dataset" )
900+ assert False , "Should have raised FileNotFoundError"
901+ except FileNotFoundError :
902+ pass # Expected
903+
904+
814905def test_lab_list_models (tmp_path , monkeypatch ):
815906 _fresh (monkeypatch )
816907 home = tmp_path / ".tfl_home"
0 commit comments