def test_update_metadata(self):
     args_in = [
         'update-metadata',
         self.repository_name,
         self.resource_name,
         '--description',
         'Description of resource',
         '--author',
         'fred',
         '--author-email',
         'fred@here',
         '--version',
         '1.0',
         '--maintainer',
         'Joe',
         '--maintainer-email',
         'joe@here',
     ]
     ds_util.ds_util(args_in)
     updated = self.repository.get(self.resource_name)
     self.assertTrue(updated)
     self.assertEquals('Description of resource',
                       updated.meta('description'))
     self.assertEquals('fred', updated.meta('author'))
     self.assertEquals('fred@here', updated.meta('author_email'))
     self.assertEquals('1.0', updated.meta('version'))
     self.assertEquals('Joe', updated.meta('maintainer'))
     self.assertEquals('joe@here', updated.meta('maintainer_email'))
Esempio n. 2
0
 def test_create_unpublished_resource_with_metadata(self):
     """
     Simulate creating a Resource from the command-line, including all metadata
     options (same as `datastore-util create`), but with --no-publish.
     """
     args_in = [ 'create', '--no-publish',
             '--description', 'Description of resource',
             '--author', 'fred',
             '--author-email', 'fred@here',
             '--version', '1.0',
             '--maintainer', 'Joe',
             '--maintainer-email', 'joe@here',
             'bdkd-datastore-test', 'my_resource',
             self.filepath
             ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
     # Ensure metadata is stored
     added = self.repository.get('my_resource')
     self.assertTrue(added)
     self.assertEquals('Description of resource',
                       added.meta('description'))
     self.assertEquals('fred',
                       added.meta('author'))
     self.assertEquals('fred@here',
                       added.meta('author_email'))
     self.assertEquals('1.0',
                       added.meta('version'))
     self.assertEquals('Joe',
                       added.meta('maintainer'))
     self.assertEquals('joe@here',
                       added.meta('maintainer_email'))
Esempio n. 3
0
 def test_create_published_resource_with_complex_metadata(self):
     """
     Supply metadata both via command line and via metadata file.
     """
     args_in = [ 'create',
             '--description', 'Description of resource',
             '--version', '1.0',
             '--maintainer', 'Joe',
             '--maintainer-email', 'joe@here',
             '--metadata-file', self.metadatafile,
              'bdkd-datastore-test', 'my_resource',
             self.filepath
             ]
     ds_util.ds_util(args_in)
     # Ensure mixing metadata args and file metadata works as expected
     added = self.repository.get('my_resource')
     self.assertTrue(added)
     self.assertEquals('Description of resource',
                       added.meta('description'))
     self.assertEquals('Jane Researcher',
                       added.meta('author'))
     self.assertEquals('*****@*****.**',
                       added.meta('author_email'))
     self.assertEquals('1.0',
                       added.meta('version'))
     self.assertEquals('Joe',
                       added.meta('maintainer'))
     self.assertEquals('joe@here',
                       added.meta('maintainer_email'))
Esempio n. 4
0
 def test_create_resource_with_no_files(self):
     """
     Simulate creating a Resource from the command-line, with no files
     provided
     """
     args_in = [
         'create',
         '--description',
         'Description of resource',
         '--author',
         'fred',
         '--author-email',
         'fred@here',
         '--version',
         '1.0',
         '--maintainer',
         'Joe',
         '--maintainer-email',
         'joe@here',
         'bdkd-datastore-test',
         'my_resource',
     ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 1)
     # Ensure no files stored
     added = self.repository.get('my_resource')
     self.assertTrue(added)
     self.assertEquals(added.files, [])
Esempio n. 5
0
 def test_create_resource(self):
     """
     Simulate creating a Resource from the command-line, with only a basic set
     of options (same as `datastore-util create`) and no metadata.
     """
     args_in = [ 'create', '--no-publish', 'bdkd-datastore-test', 'my_resource',
             self.filepath 
             ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
Esempio n. 6
0
 def test_create_resource(self):
     """
     Simulate creating a Resource from the command-line, with only a basic set
     of options (same as `datastore-util create`) and no metadata.
     """
     args_in = [
         'create', '--no-publish', 'bdkd-datastore-test', 'my_resource',
         self.filepath
     ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
Esempio n. 7
0
 def test_create_resource_without_metadata_fails(self):
     """
     Supply some metadata but not all mandatory fields in published mode.
     """
     args_in = [
         'create', '--description', 'Description of resource', '--version',
         '1.0', '--maintainer', 'Joe', '--maintainer-email', 'joe@here',
         'bdkd-datastore-test', 'my_resource', self.filepath
     ]
     with self.assertRaises(ValueError):
         ds_util.ds_util(args_in)
Esempio n. 8
0
 def test_create_resource_with_metadata(self):
     """
     Simulate creating a Resource from the command-line, including all metadata
     options (same as `datastore-util create`).
     """
     args_in = [
         'create', '--description', 'Description of resource', '--author',
         'fred', '--author-email', 'fred@here', '--version', '1.0',
         '--maintainer', 'Joe', '--maintainer-email', 'joe@here',
         'bdkd-datastore-test', 'my_resource', self.filepath
     ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
Esempio n. 9
0
 def test_create_resource_without_metadata_fails(self):
     """
     Supply some metadata but not all mandatory fields in published mode.
     """
     args_in = [ 'create',
             '--description', 'Description of resource',
             '--version', '1.0',
             '--maintainer', 'Joe',
             '--maintainer-email', 'joe@here',
              'bdkd-datastore-test', 'my_resource',
             self.filepath
             ]
     with self.assertRaises(ValueError):
         ds_util.ds_util(args_in)
Esempio n. 10
0
 def test_create_resource_with_metadata(self):
     """
     Simulate creating a Resource from the command-line, including all metadata
     options (same as `datastore-util create`).
     """
     args_in = [ 'create',
             '--description', 'Description of resource',
             '--author', 'fred', 
             '--author-email', 'fred@here',
             '--version', '1.0',
             '--maintainer', 'Joe',
             '--maintainer-email', 'joe@here',
             'bdkd-datastore-test', 'my_resource',
             self.filepath 
             ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
Esempio n. 11
0
 def test_change_updated_metadata(self):
     # Set description to something
     args_in = [ 'update-metadata', self.repository_name, self.resource_name,
             '--description', 'Description of resource',
             ]
     ds_util.ds_util(args_in)
     updated = self.repository.get(self.resource_name)
     self.assertEquals('Description of resource', 
             updated.meta('description'))
     # Then check that it is altered subsequently
     args_in = [ 'update-metadata', self.repository_name, self.resource_name,
             '--description', 'Altered description',
             ]
     ds_util.ds_util(args_in)
     updated = self.repository.get(self.resource_name)
     self.assertEquals('Altered description', 
             updated.meta('description'))
Esempio n. 12
0
 def test_create_resource_with_no_files(self):
     """
     Simulate creating a Resource from the command-line, with no files
     provided
     """
     args_in = [ 'create',
             '--description', 'Description of resource',
             '--author', 'fred',
             '--author-email', 'fred@here',
             '--version', '1.0',
             '--maintainer', 'Joe',
             '--maintainer-email', 'joe@here',
             'bdkd-datastore-test', 'my_resource',
             ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 1)
     # Ensure no files stored
     added = self.repository.get('my_resource')
     self.assertTrue(added)
     self.assertEquals(added.files, [])
Esempio n. 13
0
 def test_create_published_resource_with_complex_metadata(self):
     """
     Supply metadata both via command line and via metadata file.
     """
     args_in = [
         'create', '--description', 'Description of resource', '--version',
         '1.0', '--maintainer', 'Joe', '--maintainer-email', 'joe@here',
         '--metadata-file', self.metadatafile, 'bdkd-datastore-test',
         'my_resource', self.filepath
     ]
     ds_util.ds_util(args_in)
     # Ensure mixing metadata args and file metadata works as expected
     added = self.repository.get('my_resource')
     self.assertTrue(added)
     self.assertEquals('Description of resource', added.meta('description'))
     self.assertEquals('Jane Researcher', added.meta('author'))
     self.assertEquals('*****@*****.**', added.meta('author_email'))
     self.assertEquals('1.0', added.meta('version'))
     self.assertEquals('Joe', added.meta('maintainer'))
     self.assertEquals('joe@here', added.meta('maintainer_email'))
Esempio n. 14
0
 def test_create_unpublished_resource_with_metadata(self):
     """
     Simulate creating a Resource from the command-line, including all metadata
     options (same as `datastore-util create`), but with --no-publish.
     """
     args_in = [
         'create', '--no-publish', '--description',
         'Description of resource', '--author', 'fred', '--author-email',
         'fred@here', '--version', '1.0', '--maintainer', 'Joe',
         '--maintainer-email', 'joe@here', 'bdkd-datastore-test',
         'my_resource', self.filepath
     ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
     # Ensure metadata is stored
     added = self.repository.get('my_resource')
     self.assertTrue(added)
     self.assertEquals('Description of resource', added.meta('description'))
     self.assertEquals('fred', added.meta('author'))
     self.assertEquals('fred@here', added.meta('author_email'))
     self.assertEquals('1.0', added.meta('version'))
     self.assertEquals('Joe', added.meta('maintainer'))
     self.assertEquals('joe@here', added.meta('maintainer_email'))
Esempio n. 15
0
 def test_update_metadata(self):
     args_in = [ 'update-metadata', self.repository_name, self.resource_name,
             '--description', 'Description of resource',
             '--author', 'fred', 
             '--author-email', 'fred@here',
             '--version', '1.0',
             '--maintainer', 'Joe',
             '--maintainer-email', 'joe@here',
             ]
     ds_util.ds_util(args_in)
     updated = self.repository.get(self.resource_name)
     self.assertTrue(updated)
     self.assertEquals('Description of resource', 
             updated.meta('description'))
     self.assertEquals('fred',
             updated.meta('author'))
     self.assertEquals('fred@here',
             updated.meta('author_email'))
     self.assertEquals('1.0',
             updated.meta('version'))
     self.assertEquals('Joe',
             updated.meta('maintainer'))
     self.assertEquals('joe@here',
             updated.meta('maintainer_email'))
 def test_change_updated_metadata(self):
     # Set description to something
     args_in = [
         'update-metadata',
         self.repository_name,
         self.resource_name,
         '--description',
         'Description of resource',
     ]
     ds_util.ds_util(args_in)
     updated = self.repository.get(self.resource_name)
     self.assertEquals('Description of resource',
                       updated.meta('description'))
     # Then check that it is altered subsequently
     args_in = [
         'update-metadata',
         self.repository_name,
         self.resource_name,
         '--description',
         'Altered description',
     ]
     ds_util.ds_util(args_in)
     updated = self.repository.get(self.resource_name)
     self.assertEquals('Altered description', updated.meta('description'))
Esempio n. 17
0
 def test_create_duplicate_resource(self):
     """
     Adding a resource of the same name (duplicate) should fail with a 
     ValueError, unless the user provides the '--force' flag.
     """
     args_in = [ 'create', '--no-publish', 'bdkd-datastore-test', 'my_resource',
             self.filepath 
             ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
     # Again: error (already exists)
     with self.assertRaises(ValueError):
         ds_util.ds_util(args_in)
     # Do it properly
     args_in.append('--force')
     try:
         ds_util.ds_util(args_in)
     except ValueError:
         self.fail("Flag '--force' should allow overwrite of resource.")
Esempio n. 18
0
 def test_create_duplicate_resource(self):
     """
     Adding a resource of the same name (duplicate) should fail with a 
     ValueError, unless the user provides the '--force' flag.
     """
     args_in = [
         'create', '--no-publish', 'bdkd-datastore-test', 'my_resource',
         self.filepath
     ]
     ds_util.ds_util(args_in)
     self._check_bucket_count('', 2)
     # Again: error (already exists)
     with self.assertRaises(ValueError):
         ds_util.ds_util(args_in)
     # Do it properly
     args_in.append('--force')
     try:
         ds_util.ds_util(args_in)
     except ValueError:
         self.fail("Flag '--force' should allow overwrite of resource.")