def test_rollforward(self): with config.tempdir() as scratch: rpkg = os.path.join(scratch, 'tostrip.refpkg') shutil.copytree(config.data_path('lactobacillus2-0.2.refpkg'), rpkg) r = refpkg.Refpkg(rpkg, create=False) original_contents = copy.deepcopy(r.contents) r.update_metadata('boris', 'hilda') r.update_metadata('meep', 'natasha') updated_contents = copy.deepcopy(r.contents) r.rollback() r.rollback() class _Args(object): refpkg = rpkg def __init__(self, n): self.n = n self.assertEqual(rollforward.action(_Args(3)), 1) r._sync_from_disk() self.assertEqual(r.contents['metadata'], original_contents['metadata']) self.assertEqual(rollforward.action(_Args(2)), 0) r._sync_from_disk() self.assertEqual(r.contents['metadata'], updated_contents['metadata']) self.assertEqual(r.contents['rollforward'], None) self.assertNotEqual(r.contents['rollback'], None)
def test_create(self): with config.tempdir() as scratch: class _Args(object): clobber = True locus = 'Nowhere' description = 'A description' author = 'Boris the Mad Baboon' package_version = '0.3' package_name = os.path.join(scratch, 'test.refpkg') tree_stats = None aln_fasta = None aln_sto = None phylo_model = None seq_info = None mask = None profile = None readme = None tree = None taxonomy = None reroot = False rppr = 'rppr' create.action(_Args()) r = refpkg.Refpkg(_Args().package_name, create=False) self.assertEqual(r.metadata('locus'), 'Nowhere') self.assertEqual(r.metadata('description'), 'A description') self.assertEqual(r.metadata('author'), 'Boris the Mad Baboon') self.assertEqual(r.metadata('package_version'), '0.3') self.assertEqual(r.metadata('format_version'), '1.1') self.assertEqual(r.contents['rollback'], None) args2 = _Args() args2.package_name = os.path.join(scratch, 'test.refpkg') args2.clobber = True self.assertEqual(0, create.action(args2))
def _test_create_phylo_model(self, stats_path, stats_type=None, frequency_type=None): with config.tempdir() as scratch: args = self._Args(scratch) args.tree_stats = stats_path args.stats_type = stats_type args.frequency_type = frequency_type create.action(args) r = refpkg.Refpkg(args.package_name, create=False) self.assertIn('phylo_model', r.contents['files'])
def test_metadata_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path, create=True) self.args.changes = ['meep=boris', 'hilda=vrrp'] self.args.metadata = True self.args.refpkg = pkg_path update.action(self.args) r._sync_from_disk() self.assertEqual(r.metadata('meep'), 'boris') self.assertEqual(r.metadata('hilda'), 'vrrp')
def test_metadata_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path) class _Args(object): refpkg=pkg_path changes = ['meep=boris', 'hilda=vrrp'] metadata = True update.action(_Args()) r._sync_from_disk() self.assertEqual(r.metadata('meep'), 'boris') self.assertEqual(r.metadata('hilda'), 'vrrp')
def test_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path) test_file = config.data_path('bv_refdata.csv') class _Args(object): refpkg=pkg_path changes = ['meep='+test_file, 'hilda='+test_file] metadata = False update.action(_Args()) r._sync_from_disk() self.assertEqual(r.contents['files']['meep'], 'bv_refdata.csv') self.assertEqual(r.contents['files']['hilda'], 'bv_refdata.csv1')
def test_create(self): with config.tempdir() as scratch: args = self._Args(scratch) create.action(args) r = refpkg.Refpkg(args.package_name, create=False) self.assertEqual(r.metadata('locus'), 'Nowhere') self.assertEqual(r.metadata('description'), 'A description') self.assertEqual(r.metadata('author'), 'Boris the Mad Baboon') self.assertEqual(r.metadata('package_version'), '0.3') self.assertEqual(r.metadata('format_version'), '1.1') self.assertEqual(r.contents['rollback'], None) args2 = self._Args(scratch) args2.package_name = os.path.join(scratch, 'test.refpkg') args2.clobber = True self.assertEqual(0, create.action(args2))
def test_strip(self): with config.tempdir() as scratch: rpkg = os.path.join(scratch, 'tostrip.refpkg') shutil.copytree(config.data_path('lactobacillus2-0.2.refpkg'), rpkg) r = refpkg.Refpkg(rpkg, create=False) r.update_metadata('boris', 'hilda') r.update_metadata('meep', 'natasha') class _Args(object): refpkg = rpkg strip.action(_Args()) r._sync_from_disk() self.assertEqual(r.contents['rollback'], None) self.assertEqual(r.contents['rollforward'], None)
def test_update_stats_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path, create=True) args = self.args stats_path = os.path.join(config.datadir, 'phyml_aa_stats.txt') args.refpkg = pkg_path args.changes = ['tree_stats=' + stats_path] args.frequency_type = 'empirical' update.action(args) r._sync_from_disk() self.assertIn('tree_stats', r.contents['files']) self.assertIn('phylo_model', r.contents['files']) self.assertTrue(r.contents['files']['phylo_model'].endswith('.json'))
def test_update_stats_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path, create=True) args = self.args stats_path = os.path.join(config.datadir, 'phyml_aa_stats.txt') args.refpkg = pkg_path args.changes = ['tree_stats=' + stats_path] args.frequency_type = 'empirical' update.action(args) r._sync_from_disk() self.assertIn('tree_stats', r.contents['files']) self.assertIn('phylo_model', r.contents['files']) self.assertTrue( r.contents['files']['phylo_model'].endswith('.json'))
def test_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path, create=True) test_file = config.data_path('bv_refdata.csv') self.args.refpkg = pkg_path self.args.changes = ['meep=' + test_file, 'hilda=' + test_file] update.action(self.args) r._sync_from_disk() self.assertEqual(r.contents['files']['meep'], 'bv_refdata.csv') # Second file should have been assigned a non-clashing name h = r.contents['files']['hilda'] self.assertNotEqual(h, 'bv_refdata.csv') self.assertTrue(h.startswith('bv_refdata')) self.assertTrue(h.endswith('.csv')) self.assertTrue(os.path.exists(r.resource_path('hilda')))
def test_action(self): with config.tempdir() as scratch: pkg_path = os.path.join(scratch, 'test.refpkg') r = refpkg.Refpkg(pkg_path, create=True) test_file = config.data_path('bv_refdata.csv') class _Args(object): refpkg=pkg_path changes = ['meep='+test_file, 'hilda='+test_file] metadata = False update.action(_Args()) r._sync_from_disk() self.assertEqual(r.contents['files']['meep'], 'bv_refdata.csv') # Second file should have been assigned a non-clashing name h = r.contents['files']['hilda'] self.assertNotEqual(h, 'bv_refdata.csv') self.assertTrue(h.startswith('bv_refdata')) self.assertTrue(h.endswith('.csv')) self.assertTrue(os.path.exists(r.resource_path('hilda')))