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_rename_experiment(self): fs = FileStore(self.test_root) exp_id = self.experiments[random_int(0, len(self.experiments) - 1)] # Error cases with self.assertRaises(Exception): fs.rename_experiment(exp_id, None) with self.assertRaises(Exception): # test that names of existing experiments are checked before renaming other_exp_id = None for exp in self.experiments: if exp != exp_id: other_exp_id = exp break fs.rename_experiment(exp_id, fs.get_experiment(other_exp_id).name) exp_name = self.exp_data[exp_id]["name"] new_name = exp_name + "!!!" self.assertNotEqual(exp_name, new_name) self.assertEqual(fs.get_experiment(exp_id).name, exp_name) fs.rename_experiment(exp_id, new_name) self.assertEqual(fs.get_experiment(exp_id).name, new_name) # Ensure that we cannot rename deleted experiments. fs.delete_experiment(exp_id) with pytest.raises(Exception) as e: fs.rename_experiment(exp_id, exp_name) assert "non-active lifecycle" in str(e.value) self.assertEqual(fs.get_experiment(exp_id).name, new_name) # Restore the experiment, and confirm that we acn now rename it. fs.restore_experiment(exp_id) self.assertEqual(fs.get_experiment(exp_id).name, new_name) fs.rename_experiment(exp_id, exp_name) self.assertEqual(fs.get_experiment(exp_id).name, exp_name)
def test_rename_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"] new_name = exp_name + "!!!" self.assertNotEqual(exp_name, new_name) self.assertEqual(fs.get_experiment(exp_id).name, exp_name) fs.rename_experiment(exp_id, new_name) self.assertEqual(fs.get_experiment(exp_id).name, new_name) # Ensure that we cannot rename deleted experiments. fs.delete_experiment(exp_id) with pytest.raises(Exception) as e: fs.rename_experiment(exp_id, exp_name) assert 'non-active lifecycle' in str(e.value) self.assertEqual(fs.get_experiment(exp_id).name, new_name) # Restore the experiment, and confirm that we acn now rename it. fs.restore_experiment(exp_id) self.assertEqual(fs.get_experiment(exp_id).name, new_name) fs.rename_experiment(exp_id, exp_name) self.assertEqual(fs.get_experiment(exp_id).name, exp_name)