示例#1
0
文件: test_api.py 项目: stain/bdbag
 def test_update_bag_remote(self):
     logger.info(self.getTestHeader('update bag add remote file manifest'))
     try:
         bag = bdb.make_bag(self.test_bag_dir,
                            update=True,
                            remote_file_manifest=ospj(
                                self.test_config_dir,
                                'test-fetch-manifest.json'))
         output = self.stream.getvalue()
         self.assertIsInstance(bag, bagit.Bag)
         self.assertExpectedMessages([
             'Generating remote file references from',
             'test-fetch-manifest.json'
         ], output)
         fetch_file = ospj(self.test_bag_dir, 'fetch.txt')
         self.assertTrue(ospif(fetch_file))
         with open(fetch_file) as ff:
             fetch_txt = ff.read()
         self.assertIn(
             'https://raw.githubusercontent.com/ini-bdds/bdbag/master/profiles/bdbag-profile.json'
             '\t723\tdata/bdbag-profile.json', fetch_txt)
         self.assertIn(
             'ark:/88120/r8059v\t632860\tdata/minid_v0.1_Nov_2015.pdf',
             fetch_txt)
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#2
0
文件: test_api.py 项目: stain/bdbag
 def test_archive_bag_tar(self):
     logger.info(self.getTestHeader('archive bag tar format'))
     try:
         archive_file = bdb.archive_bag(self.test_bag_dir, 'tar')
         self.assertTrue(ospif(archive_file))
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#3
0
 def test_archive_bag_tgz(self):
     logger.info(self.getTestHeader('archive bag tgz format'))
     try:
         archive_file = bdb.archive_bag(self.test_bag_dir, 'tgz')
         self.assertTrue(ospif(archive_file))
     except Exception as e:
         self.fail(get_typed_exception(e))
示例#4
0
 def _test_bag_with_remote_file_manifest(self, update=False):
     try:
         bag_dir = self.test_data_dir if not update else self.test_bag_dir
         bag = bdb.make_bag(bag_dir,
                            algs=["md5", "sha1", "sha256", "sha512"],
                            update=update,
                            remote_file_manifest=ospj(
                                self.test_config_dir,
                                'test-fetch-manifest.json'))
         output = self.stream.getvalue()
         self.assertIsInstance(bag, bdbagit.BDBag)
         self.assertExpectedMessages([
             'Generating remote file references from',
             'test-fetch-manifest.json'
         ], output)
         fetch_file = ospj(bag_dir, 'fetch.txt')
         self.assertTrue(ospif(fetch_file))
         with open(fetch_file) as ff:
             fetch_txt = ff.read()
         self.assertIn(
             'https://raw.githubusercontent.com/fair-research/bdbag/master/test/test-data/test-http/'
             'test-fetch-http.txt\t201\tdata/test-fetch-http.txt',
             fetch_txt)
         self.assertIn(
             'ark:/57799/b9dd5t\t223\tdata/test-fetch-identifier.txt',
             fetch_txt)
         bdb.validate_bag_structure(bag_dir, True)
     except Exception as e:
         self.fail(bdbag.get_typed_exception(e))
示例#5
0
 def test_archive_bag_tar_with_trailing_slash(self):
     logger.info(self.getTestHeader('archive bag tar format'))
     try:
         archive_file = bdb.archive_bag(self.test_bag_dir + os.sep, 'tar')
         self.assertTrue(ospif(archive_file))
     except Exception as e:
         self.fail(get_typed_exception(e))
示例#6
0
 def test_archive_bag_tar(self):
     logger.info(self.getTestHeader('archive bag tar format'))
     try:
         archive_file = bdb.archive_bag(self.test_bag_dir, 'tar')
         self.assertTrue(ospif(archive_file))
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#7
0
文件: test_api.py 项目: stain/bdbag
 def test_create_bag_with_config(self):
     logger.info(self.getTestHeader('create bag with config'))
     try:
         bag = bdb.make_bag(self.test_data_dir,
                            config_file=(ospj(self.test_config_dir,
                                              'test-config.json')))
         self.assertIsInstance(bag, bagit.Bag)
         self.assertFalse(
             ospif(ospj(self.test_data_dir, 'manifest-sha1.txt')))
         self.assertFalse(
             ospif(ospj(self.test_data_dir, 'manifest-sha256.txt')))
         self.assertFalse(
             ospif(ospj(self.test_data_dir, 'manifest-sha512.txt')))
         self.assertFalse(
             ospif(ospj(self.test_data_dir, 'tagmanifest-sha1.txt')))
         self.assertFalse(
             ospif(ospj(self.test_data_dir, 'tagmanifest-sha256.txt')))
         self.assertFalse(
             ospif(ospj(self.test_data_dir, 'tagmanifest-sha512.txt')))
         baginfo = ospj(self.test_data_dir, 'bag-info.txt')
         with open(baginfo) as bi:
             baginfo_txt = bi.read()
         self.assertIn('Contact-Name: bdbag test', baginfo_txt)
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#8
0
 def _test_resolve_fetch_http_with_filter(self,
                                          expr,
                                          files=list(frozenset())):
     logger.info(
         self.getTestHeader(
             'test resolve fetch http with filter expression "%s"' % expr))
     try:
         bdb.resolve_fetch(self.test_bag_fetch_http_dir, filter_expr=expr)
         for test_file in files:
             self.assertTrue(
                 ospif(ospj(self.test_bag_fetch_http_dir, test_file)))
     except Exception as e:
         self.fail(bdbag.get_typed_exception(e))
示例#9
0
 def test_update_bag_prune(self):
     logger.info(self.getTestHeader('update bag prune manifests'))
     try:
         bag = bdb.make_bag(self.test_bag_dir, algs=['md5'], update=True, prune_manifests=True)
         self.assertIsInstance(bag, bdbagit.BDBag)
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'manifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'manifest-sha256.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'manifest-sha512.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'tagmanifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'tagmanifest-sha256.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'tagmanifest-sha512.txt')))
     except Exception as e:
         self.fail(get_typed_exception(e))
示例#10
0
 def test_update_bag_prune(self):
     logger.info(self.getTestHeader('update bag prune manifests'))
     try:
         bag = bdb.make_bag(self.test_bag_dir, algs=['md5'], update=True, prune_manifests=True)
         self.assertIsInstance(bag, bagit.Bag)
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'manifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'manifest-sha256.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'manifest-sha512.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'tagmanifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'tagmanifest-sha256.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'tagmanifest-sha512.txt')))
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#11
0
 def test_update_bag_remote(self):
     logger.info(self.getTestHeader('update bag add remote file manifest'))
     try:
         bag = bdb.make_bag(self.test_bag_dir,
                            update=True,
                            remote_file_manifest=ospj(self.test_config_dir, 'test-fetch-manifest.json'))
         output = self.stream.getvalue()
         self.assertIsInstance(bag, bagit.Bag)
         self.assertExpectedMessages(['Generating remote file references from', 'test-fetch-manifest.json'], output)
         fetch_file = ospj(self.test_bag_dir, 'fetch.txt')
         self.assertTrue(ospif(fetch_file))
         with open(fetch_file) as ff:
             fetch_txt = ff.read()
         self.assertIn(
             'https://raw.githubusercontent.com/ini-bdds/bdbag/master/profiles/bdbag-profile.json'
             '\t723\tdata/bdbag-profile.json', fetch_txt)
         self.assertIn(
             'ark:/88120/r8059v\t632860\tdata/minid_v0.1_Nov_2015.pdf', fetch_txt)
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#12
0
 def test_create_bag_with_config(self):
     logger.info(self.getTestHeader('create bag with config'))
     try:
         bag = bdb.make_bag(self.test_data_dir,
                            config_file=(ospj(self.test_config_dir, 'test-config.json')))
         self.assertIsInstance(bag, bagit.Bag)
         self.assertFalse(ospif(ospj(self.test_data_dir, 'manifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_data_dir, 'manifest-sha256.txt')))
         self.assertFalse(ospif(ospj(self.test_data_dir, 'manifest-sha512.txt')))
         self.assertFalse(ospif(ospj(self.test_data_dir, 'tagmanifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_data_dir, 'tagmanifest-sha256.txt')))
         self.assertFalse(ospif(ospj(self.test_data_dir, 'tagmanifest-sha512.txt')))
         baginfo = ospj(self.test_data_dir, 'bag-info.txt')
         with open(baginfo) as bi:
             baginfo_txt = bi.read()
         self.assertIn('Contact-Name: bdbag test', baginfo_txt)
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))
示例#13
0
文件: test_api.py 项目: stain/bdbag
 def test_revert_bag(self):
     logger.info(self.getTestHeader('revert bag'))
     try:
         bdb.revert_bag(self.test_bag_dir)
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'bag-info.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir, 'bagit.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'manifest-sha1.txt')))
         self.assertFalse(ospif(ospj(self.test_bag_dir,
                                     'manifest-md5.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'manifest-sha1.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'manifest-sha256.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'manifest-sha512.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'tagmanifest-md5.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'tagmanifest-sha1.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'tagmanifest-sha256.txt')))
         self.assertFalse(
             ospif(ospj(self.test_bag_dir, 'tagmanifest-sha512.txt')))
         self.assertTrue(ospif(ospj(self.test_bag_dir, 'README.txt')))
         self.assertTrue(
             ospif(ospj(self.test_bag_dir, ospj('test1', 'test1.txt'))))
         self.assertTrue(
             ospif(ospj(self.test_bag_dir, ospj('test2', 'test2.txt'))))
         self.assertFalse(ospe(ospj(self.test_bag_dir, 'data')))
     except Exception as e:
         self.fail(bdbag.get_named_exception(e))