def test_get_datasets_filter_status(self): """ Filter datasets by the status of their jobs """ user1_id = self._create_user("myuser1") dataset1_id = self._create_dataset(user1_id, "dataset1") self._create_dataset_job(dataset1_id, "pending") dataset2_id = self._create_dataset(user1_id, "dataset2") self._create_dataset_job(dataset2_id, "running") dataset3_id = self._create_dataset(user1_id, "dataset3") self._create_dataset_job(dataset3_id, "done") dataset4_id = self._create_dataset(user1_id, "dataset4") self._create_dataset_job(dataset4_id, "failed") datasets = dataset.get_public_datasets("all") self.assertEqual(4, len(datasets)) datasets = dataset.get_public_datasets("pending") self.assertEqual(1, len(datasets)) self.assertEqual("dataset1", datasets[0]["name"]) datasets = dataset.get_public_datasets("running") self.assertEqual(1, len(datasets)) self.assertEqual("dataset2", datasets[0]["name"]) datasets = dataset.get_public_datasets("done") self.assertEqual(1, len(datasets)) self.assertEqual("dataset3", datasets[0]["name"]) datasets = dataset.get_public_datasets("failed") self.assertEqual(1, len(datasets)) self.assertEqual("dataset4", datasets[0]["name"])
def test_get_datasets_not_public(self): """ If a dataset is not public, even if it has a job, it shouldn't show up.""" user1_id = self._create_user("myuser1") dataset1_id = self._create_dataset(user1_id, "private dataset", public=False) self._create_dataset_job(dataset1_id, "pending") datasets = dataset.get_public_datasets("all") self.assertEqual(0, len(datasets))
def test_get_datasets_not_submitted(self): """ If a dataset has no jobs submitted, it should not show up""" user1_id = self._create_user("myuser1") dataset1_id = self._create_dataset(user1_id, "unsubmitted dataset") dataset2_id = self._create_dataset(user1_id, "submitted dataset") self._create_dataset_job(dataset2_id, "pending") datasets = dataset.get_public_datasets("all") self.assertEqual(1, len(datasets)) self.assertEqual("submitted dataset", datasets[0]["name"])
def test_get_datasets(self): user1_id = self._create_user("myuser1") dataset1_id = self._create_dataset(user1_id, "test dataset1") self._create_dataset_job(dataset1_id, "pending") user2_id = self._create_user("myuser2") dataset2_id = self._create_dataset(user2_id, "test dataset2") self._create_dataset_job(dataset2_id, "running") datasets = dataset.get_public_datasets("all") self.assertEqual(2, len(datasets))
def test_get_datasets_submitted_multiple(self): """ If a dataset has been submitted many times, only the most recent submission status should show up""" user1_id = self._create_user("myuser1") dataset1_id = self._create_dataset(user1_id, "dataset") self._create_dataset_job(dataset1_id, "done") self._create_dataset_job(dataset1_id, "pending") datasets = dataset.get_public_datasets("all") self.assertEqual(1, len(datasets)) self.assertEqual("pending", datasets[0]["status"])
def test_invalid_status(self): with self.assertRaises(ValueError): datasets = dataset.get_public_datasets("not_a_status")