def test_update_resource(self):
        # Get Resource ID
        result = self.engine.get_dataset(dataset_id=self.test_dataset_name)

        resource_id = result['result']['resources'][0]['id']

        # Setup
        file_name = 'upload_test.txt'
        file_to_upload = os.path.join(self.support_root, file_name)
        description_new = random_string_generator(10)

        # Execute
        result = self.engine.update_resource(resource_id=resource_id,
                                             file=file_to_upload,
                                             description=description_new)

        # Verify Success
        self.assertTrue(result['success'])

        # Verify Name (should be the same as the file uploaded by default)
        self.assertEqual(result['result']['name'], file_name)
        self.assertEqual(result['result']['description'], description_new)

        # TEST get_resource
        # Execute
        result = self.engine.get_resource(resource_id=resource_id)

        # Verify Success
        self.assertTrue(result['success'])

        # Verify Properties
        self.assertEqual(result['result']['name'], file_name)
        self.assertEqual(result['result']['description'], description_new)

        # TEST download_resource
        location = self.files_root

        result = self.engine.download_resource(resource_id=resource_id, location=location)

        # Result will return list of the file with .zip at the end. Check here
        self.assertIn('.zip', result[-4:].lower())
        download_file = os.path.basename(result)

        location_final = os.path.join(self.files_root, download_file)

        # Delete the file
        if os.path.isfile(location_final):
            os.remove(location_final)
        else:
            raise AssertionError('No file has been downloaded')

        # TEST delete_resource
        # Execute
        result = self.engine.delete_resource(resource_id=resource_id)

        # Verify Success
        self.assertTrue(result['success'])

        # Delete requests should return nothing
        self.assertEqual(result['result'], None)