def test_delete(self):
        id = dataset.create_from_dict(self.test_data,
                                      author_id=self.test_user_id)
        self.assertIsNotNone(dataset.get(id))

        dataset.delete(id)
        self.assertIsNone(dataset.get(id))
    def test_delete(self):
        id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        self.assertIsNotNone(dataset.get(id))

        dataset.delete(id)
        with self.assertRaises(db.exceptions.NoDataFoundException):
            dataset.get(id)
Exemplo n.º 3
0
    def test_add_recordings(self):
        """ Add recordings to an existing class """
        dsid = dataset.create_from_dict(self.test_data,
                                        author_id=self.test_user_id)
        originaldataset = dataset.get(dsid)

        class_name = "Class #1",
        recordings = ["1c085555-3805-428a-982f-e14e0a2b18e6"]
        dataset.add_recordings(dsid, class_name, recordings)

        updateddataset = dataset.get(dsid)

        # Class 1 has been updated with the new recording id
        self.assertEqual(2, len(originaldataset["classes"][0]["recordings"]))
        expected_recordings = [
            "0dad432b-16cc-4bf0-8961-fd31d124b01b",
            "19e698e7-71df-48a9-930e-d4b1a2026c82",
            "1c085555-3805-428a-982f-e14e0a2b18e6"
        ]
        self.assertEqual(set(expected_recordings),
                         set(updateddataset["classes"][0]["recordings"]))

        # Class #2 stays the same as `test_data`
        expected_recordings = [
            "fd528ddb-411c-47bc-a383-1f8a222ed213",
            "96888f9e-c268-4db2-bc13-e29f8b317c20",
            "ed94c67d-bea8-4741-a3a6-593f20a22eb6"
        ]
        self.assertEqual(set(expected_recordings),
                         set(updateddataset["classes"][1]["recordings"]))
    def test_delete_nonexistent_class(self):
        """ Delete a class which doesn't exist in the dataset """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #100"
        }
        originaldataset = dataset.get(dsid)
        dataset.delete_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        self.assertEqual(2, len(originaldataset["classes"]))
        self.assertEqual(2, len(updateddataset["classes"]))
 def test_last_edited(self):
     id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
     ds = dataset.get(id)
     self.assertEqual(ds['created'], ds['last_edited'])
     with db.engine.begin() as connection:
         connection.execute("""UPDATE dataset SET last_edited = now() - interval %s where id = %s""",
                 ('1 hour', id))
     ds = dataset.get(id)
     self.assertTrue(ds['created'] > ds['last_edited'])
     dataset.update(id, self.test_data, author_id=self.test_user_id)
     ds_updated = dataset.get(id)
     self.assertTrue(ds_updated['last_edited'] > ds['last_edited'])
    def test_delete_class(self):
        """ Delete a class from the dataset """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #2"
        }
        originaldataset = dataset.get(dsid)
        dataset.delete_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        self.assertEqual(2, len(originaldataset["classes"]))
        self.assertEqual(1, len(updateddataset["classes"]))
    def test_update_metadata(self):
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        existing_dataset = dataset.get(dsid)
        dataset.update_dataset_meta(dsid, {"name": "new name", "description": "new desc", "public": False})
        new_dataset = dataset.get(dsid)

        self.assertNotEqual(existing_dataset["name"], new_dataset["name"])
        self.assertEqual(new_dataset["name"], "new name")
        self.assertNotEqual(existing_dataset["description"], new_dataset["description"])
        self.assertEqual(new_dataset["description"], "new desc")
        self.assertNotEqual(existing_dataset["public"], new_dataset["public"])
        self.assertEqual(new_dataset["public"], False)
    def test_update_metadata(self):
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        existing_dataset = dataset.get(dsid)
        dataset.update_dataset_meta(dsid, {"name": "new name", "description": "new desc", "public": False})
        new_dataset = dataset.get(dsid)

        self.assertNotEqual(existing_dataset["name"], new_dataset["name"])
        self.assertEqual(new_dataset["name"], "new name")
        self.assertNotEqual(existing_dataset["description"], new_dataset["description"])
        self.assertEqual(new_dataset["description"], "new desc")
        self.assertNotEqual(existing_dataset["public"], new_dataset["public"])
        self.assertEqual(new_dataset["public"], False)
    def test_delete_recordings_other_class(self):
        """ If there are two datasets with the same class names, the correct one is deleted. """
        ds1id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        ds2id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        class_name = "Class #1",
        recordings = ["19e698e7-71df-48a9-930e-d4b1a2026c82"]
        dataset.delete_recordings(ds2id, class_name, recordings)

        # Dataset 1 has both initial recordings, but it's been removed from dataset 2
        ds1 = dataset.get(ds1id)
        ds2 = dataset.get(ds2id)
        self.assertEqual(2, len(ds1["classes"][0]["recordings"]))
        self.assertEqual(1, len(ds2["classes"][0]["recordings"]))
    def test_delete_recordings_other_class(self):
        """ If there are two datasets with the same class names, the correct one is deleted. """
        ds1id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        ds2id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        class_name = "Class #1",
        recordings = ["19e698e7-71df-48a9-930e-d4b1a2026c82"]
        dataset.delete_recordings(ds2id, class_name, recordings)

        # Dataset 1 has both initial recordings, but it's been removed from dataset 2
        ds1 = dataset.get(ds1id)
        ds2 = dataset.get(ds2id)
        self.assertEqual(2, len(ds1["classes"][0]["recordings"]))
        self.assertEqual(1, len(ds2["classes"][0]["recordings"]))
    def test_delete_recordings(self):
        """ Delete recordings from a class """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        originaldataset = dataset.get(dsid)

        class_name = "Class #1",
        recordings = ["19e698e7-71df-48a9-930e-d4b1a2026c82"]

        dataset.delete_recordings(dsid, class_name, recordings)
        updateddataset = dataset.get(dsid)

        # Original dataset has the 2 recordings in Class #1, but the updated one only has 1 remaining
        self.assertEqual(2, len(originaldataset["classes"][0]["recordings"]))
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))
    def test_delete_recordings(self):
        """ Delete recordings from a class """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        originaldataset = dataset.get(dsid)

        class_name = "Class #1",
        recordings = ["19e698e7-71df-48a9-930e-d4b1a2026c82"]

        dataset.delete_recordings(dsid, class_name, recordings)
        updateddataset = dataset.get(dsid)

        # Original dataset has the 2 recordings in Class #1, but the updated one only has 1 remaining
        self.assertEqual(2, len(originaldataset["classes"][0]["recordings"]))
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))
Exemplo n.º 13
0
    def test_create_from_dict(self):
        id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        ds = dataset.get(id)
        self.assertIsNotNone(ds)
        self.assertEqual(len(ds["classes"][0]["recordings"]), 2)
        self.assertEqual(len(ds["classes"][1]["recordings"]), 3)
    def test_update_class(self):
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #1",
            "new_name": "Different class",
            "description": "different desc"
        }
        originaldataset = dataset.get(dsid)
        dataset.update_class(dsid, "Class #1", test_data)
        updateddataset = dataset.get(dsid)

        self.assertEqual("Class #2", updateddataset["classes"][1]["name"])
        self.assertEqual("", updateddataset["classes"][1]["description"])

        self.assertEqual("Class #1", originaldataset["classes"][0]["name"])
        self.assertEqual("Different class", updateddataset["classes"][0]["name"])
        self.assertEqual("different desc", updateddataset["classes"][0]["description"])
    def test_update_class(self):
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #1",
            "new_name": "Different class",
            "description": "different desc"
        }
        originaldataset = dataset.get(dsid)
        dataset.update_class(dsid, "Class #1", test_data)
        updateddataset = dataset.get(dsid)

        self.assertEqual("Class #2", updateddataset["classes"][1]["name"])
        self.assertEqual("", updateddataset["classes"][1]["description"])

        self.assertEqual("Class #1", originaldataset["classes"][0]["name"])
        self.assertEqual("Different class", updateddataset["classes"][0]["name"])
        self.assertEqual("different desc", updateddataset["classes"][0]["description"])
    def test_add_class(self):
        """ Add a class to a dataset """

        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #3",
            "description": "This is the description of class 3"
        }

        originaldataset = dataset.get(dsid)
        dataset.add_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        self.assertEqual(2, len(originaldataset["classes"]))
        self.assertEqual(3, len(updateddataset["classes"]))
        expected = copy.deepcopy(test_data)
        expected["recordings"] = []
        expected["id"] = mock.ANY
        self.assertDictEqual(expected, updateddataset["classes"][2])
    def test_add_class(self):
        """ Add a class to a dataset """

        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #3",
            "description": "This is the description of class 3"
        }

        originaldataset = dataset.get(dsid)
        dataset.add_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        self.assertEqual(2, len(originaldataset["classes"]))
        self.assertEqual(3, len(updateddataset["classes"]))
        expected = copy.deepcopy(test_data)
        expected["recordings"] = []
        expected["id"] = mock.ANY
        self.assertDictEqual(expected, updateddataset["classes"][2])
Exemplo n.º 18
0
    def test_create_from_dict_duplicates(self):
        bad_dict = copy.deepcopy(self.test_data)
        bad_dict["classes"][0]["recordings"] = [
            "0dad432b-16cc-4bf0-8961-fd31d124b01b",
            "19e698e7-71df-48a9-930e-d4b1a2026c82",
            "19e698e7-71df-48a9-930e-d4b1a2026c82",
        ]
        id = dataset.create_from_dict(bad_dict, author_id=self.test_user_id)

        ds = dataset.get(id)
        self.assertEqual(len(ds["classes"][0]["recordings"]), 2)
        self.assertIn("19e698e7-71df-48a9-930e-d4b1a2026c82", ds["classes"][0]["recordings"])
    def test_add_recordings_duplicate(self):
        """ A recording id which already exists is skipped """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        class_name = "Class #1",
        recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b", "1c085555-3805-428a-982f-e14e0a2b18e6"]
        dataset.add_recordings(dsid, class_name, recordings)

        updateddataset = dataset.get(dsid)
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b",
                               "19e698e7-71df-48a9-930e-d4b1a2026c82",
                               "1c085555-3805-428a-982f-e14e0a2b18e6"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))
    def test_add_recordings_duplicate(self):
        """ A recording id which already exists is skipped """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)

        class_name = "Class #1",
        recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b", "1c085555-3805-428a-982f-e14e0a2b18e6"]
        dataset.add_recordings(dsid, class_name, recordings)

        updateddataset = dataset.get(dsid)
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b",
                               "19e698e7-71df-48a9-930e-d4b1a2026c82",
                               "1c085555-3805-428a-982f-e14e0a2b18e6"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))
Exemplo n.º 21
0
    def test_update(self):
        id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        updated_dict = copy.deepcopy(self.test_data)
        updated_dict["classes"][0]["recordings"] = []  # Removing recordings from first class
        dataset.update(
            dataset_id=id,
            dictionary=updated_dict,
            author_id=self.test_user_id,
        )

        ds = dataset.get(id)
        # First class shouldn't have any recordings
        self.assertEqual(len(ds["classes"][0]["recordings"]), 0)
        self.assertEqual(len(ds["classes"][1]["recordings"]), 3)
    def test_add_recordings(self):
        """ Add recordings to an existing class """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        originaldataset = dataset.get(dsid)

        class_name = "Class #1",
        recordings = ["1c085555-3805-428a-982f-e14e0a2b18e6"]
        dataset.add_recordings(dsid, class_name, recordings)

        updateddataset = dataset.get(dsid)

        # Class 1 has been updated with the new recording id
        self.assertEqual(2, len(originaldataset["classes"][0]["recordings"]))
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b",
                               "19e698e7-71df-48a9-930e-d4b1a2026c82",
                               "1c085555-3805-428a-982f-e14e0a2b18e6"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))

        # Class #2 stays the same as `test_data`
        expected_recordings = ["fd528ddb-411c-47bc-a383-1f8a222ed213",
                               "96888f9e-c268-4db2-bc13-e29f8b317c20",
                               "ed94c67d-bea8-4741-a3a6-593f20a22eb6"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][1]["recordings"]))
    def test_add_class_with_recordings(self):
        """ Add a class to a dataset and also add some recordings to it """

        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #3",
            "description": "This is description of class 3",
            "recordings": ["1c085555-3805-428a-982f-e14e0a2b18e6"]
        }
        dataset.add_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        # Check that both the class details and recordings are in the retrieved dataset
        expected = copy.deepcopy(test_data)
        expected["id"] = mock.ANY
        self.assertDictEqual(expected, updateddataset["classes"][2])
    def test_add_class_with_recordings(self):
        """ Add a class to a dataset and also add some recordings to it """

        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #3",
            "description": "This is description of class 3",
            "recordings": ["1c085555-3805-428a-982f-e14e0a2b18e6"]
        }
        dataset.add_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        # Check that both the class details and recordings are in the retrieved dataset
        expected = copy.deepcopy(test_data)
        expected["id"] = mock.ANY
        self.assertDictEqual(expected, updateddataset["classes"][2])
    def test_add_class_twice(self):
        """ A class name which already exists is skipped. """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #1",
            "description": "This is description of class 1",
            "recordings": ["1c085555-3805-428a-982f-e14e0a2b18e6"]
        }
        dataset.add_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        # Class #1 is not added again, but the recording is added to it
        self.assertEqual(2, len(updateddataset["classes"]))
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b",
                               "19e698e7-71df-48a9-930e-d4b1a2026c82",
                               "1c085555-3805-428a-982f-e14e0a2b18e6"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))
    def test_add_class_twice(self):
        """ A class name which already exists is skipped. """
        dsid = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        test_data = {
            "name": "Class #1",
            "description": "This is description of class 1",
            "recordings": ["1c085555-3805-428a-982f-e14e0a2b18e6"]
        }
        dataset.add_class(dsid, test_data)
        updateddataset = dataset.get(dsid)

        # Class #1 is not added again, but the recording is added to it
        self.assertEqual(2, len(updateddataset["classes"]))
        expected_recordings = ["0dad432b-16cc-4bf0-8961-fd31d124b01b",
                               "19e698e7-71df-48a9-930e-d4b1a2026c82",
                               "1c085555-3805-428a-982f-e14e0a2b18e6"]
        self.assertEqual(set(expected_recordings), set(updateddataset["classes"][0]["recordings"]))
    def test_delete(self):
        id = dataset.create_from_dict(self.test_data, author_id=self.test_user_id)
        self.assertIsNotNone(dataset.get(id))

        dataset.delete(id)
        self.assertIsNone(dataset.get(id))