def test_get_experiment_by_name(self): fs = FileStore(self.test_root) for exp_id in self.experiments: name = self.exp_data[exp_id]["name"] exp = fs.get_experiment_by_name(name) self.assertEqual(exp.experiment_id, exp_id) self.assertEqual(exp.name, self.exp_data[exp_id]["name"]) self.assertEqual(exp.artifact_location, self.exp_data[exp_id]["artifact_location"]) # test that fake experiments dont exist. # look up experiments with names of length 15 since created ones are of length 10 for exp_names in set(random_str(15) for x in range(20)): exp = fs.get_experiment_by_name(exp_names) self.assertIsNone(exp)
def test_delete_restore_experiment(self): fs = FileStore(self.test_root) exp_id = self.experiments[random_int(0, len(self.experiments) - 1)] exp_name = self.exp_data[exp_id]["name"] # delete it fs.delete_experiment(exp_id) self.assertTrue(exp_id not in self._extract_ids( fs.list_experiments(ViewType.ACTIVE_ONLY))) self.assertTrue(exp_id in self._extract_ids( fs.list_experiments(ViewType.DELETED_ONLY))) self.assertTrue( exp_id in self._extract_ids(fs.list_experiments(ViewType.ALL))) self.assertEqual( fs.get_experiment(exp_id).lifecycle_stage, LifecycleStage.DELETED) # restore it fs.restore_experiment(exp_id) restored_1 = fs.get_experiment(exp_id) self.assertEqual(restored_1.experiment_id, exp_id) self.assertEqual(restored_1.name, exp_name) restored_2 = fs.get_experiment_by_name(exp_name) self.assertEqual(restored_2.experiment_id, exp_id) self.assertEqual(restored_2.name, exp_name) self.assertTrue(exp_id in self._extract_ids( fs.list_experiments(ViewType.ACTIVE_ONLY))) self.assertTrue(exp_id not in self._extract_ids( fs.list_experiments(ViewType.DELETED_ONLY))) self.assertTrue( exp_id in self._extract_ids(fs.list_experiments(ViewType.ALL))) self.assertEqual( fs.get_experiment(exp_id).lifecycle_stage, LifecycleStage.ACTIVE)
def test_create_experiment(self): fs = FileStore(self.test_root) # Error cases with self.assertRaises(Exception): fs.create_experiment(None) with self.assertRaises(Exception): fs.create_experiment("") exp_id_ints = (int(exp_id) for exp_id in self.experiments) next_id = str(max(exp_id_ints) + 1) name = random_str(25) # since existing experiments are 10 chars long created_id = fs.create_experiment(name) # test that newly created experiment matches expected id self.assertEqual(created_id, next_id) # get the new experiment (by id) and verify (by name) exp1 = fs.get_experiment(created_id) self.assertEqual(exp1.name, name) self.assertEqual( exp1.artifact_location, path_to_local_file_uri(posixpath.join(self.test_root, created_id))) # get the new experiment (by name) and verify (by id) exp2 = fs.get_experiment_by_name(name) self.assertEqual(exp2.experiment_id, created_id)