def test_write_json_no_info(self): """correctly writes an object with out an info attribute from json""" # create a mock object that pretends like it's been derived from # something with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme") mock = patch("data.source", autospec=True) mock.to_rich_dict = DNA.to_rich_dict mock.source = join("blah", "delme.json") writer = io_app.write_json(outdir, create=True) _ = writer(mock) reader = io_app.load_json() got = reader(writer.data_store[0]) self.assertEqual(got, DNA) # now with a zipped archive with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme.zip") mock = patch("data.source", autospec=True) mock.to_rich_dict = DNA.to_rich_dict mock.source = join("blah", "delme.json") writer = io_app.write_json(outdir, create=True) identifier = writer(mock) reader = io_app.load_json() # checking loadable from a data store member too got = reader(writer.data_store[0]) self.assertEqual(got, DNA) expect = join(outdir.replace(".zip", ""), "delme.json") if expect.startswith("." + os.sep): expect = expect[2:] self.assertEqual(identifier, expect)
def test_write_json_with_info(self): """correctly writes an object with info attribute from json""" # create a mock object that pretends like it's been derived from # something from cogent3.app.result import generic_result with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme") obj = generic_result(source=join("blah", "delme.json")) obj["dna"] = DNA writer = io_app.write_json(outdir, create=True) _ = writer(obj) reader = io_app.load_json() got = reader(join(outdir, "delme.json")) got.deserialised_values() self.assertEqual(got["dna"], DNA) # now with a zipped archive with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme.zip") obj = generic_result(source=join("blah", "delme.json")) obj["dna"] = DNA writer = io_app.write_json(outdir, create=True) identifier = writer(obj) reader = io_app.load_json() got = reader(writer.data_store[0]) got.deserialised_values() self.assertEqual(got["dna"], DNA) expect = join(outdir.replace(".zip", ""), "delme.json") if expect.startswith("." + os.sep): expect = expect[2:] self.assertEqual(identifier, expect)
def test_write_json_with_info(self): """correctly writes an object with info attribute from json""" # create a mock object that pretends like it's been derived from # something from cogent3.util.union_dict import UnionDict with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme") mock = Mock() mock.to_rich_dict = DNA.to_rich_dict mock.info = UnionDict(source=join("blah", "delme.json")) writer = io_app.write_json(outdir, create=True) _ = writer(mock) reader = io_app.load_json() got = reader(join(outdir, "delme.json")) self.assertEqual(got, DNA) # now with a zipped archive with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme.zip") mock = Mock() mock.to_rich_dict = DNA.to_rich_dict mock.info = UnionDict(source=join("blah", "delme.json")) writer = io_app.write_json(outdir, create=True) identifier = writer(mock) reader = io_app.load_json() got = reader(writer.data_store[0]) self.assertEqual(got, DNA) expect = join(outdir.replace(".zip", ""), "delme.json") if expect.startswith("." + os.sep): expect = expect[2:] self.assertEqual(identifier, expect)
def _get_all_composables(tmp_dir_name): test_model1 = evo.model("HKY85") test_model2 = evo.model("GN") test_hyp = evo.hypothesis(test_model1, test_model2) test_num_reps = 100 applications = [ align.align_to_ref(), align.progressive_align(model="GY94"), evo.ancestral_states(), evo.bootstrap(hyp=test_hyp, num_reps=test_num_reps), evo.hypothesis(test_model1, test_model2), evo.model("GN"), evo.tabulate_stats(), sample.fixed_length(100), sample.min_length(100), io.write_db(tmp_dir_name, create=True), io.write_json(tmp_dir_name, create=True), io.write_seqs(tmp_dir_name, create=True), sample.omit_bad_seqs(), sample.omit_degenerates(), sample.omit_duplicated(), sample.take_codon_positions(1), sample.take_named_seqs(), sample.trim_stop_codons(gc=1), translate.select_translatable(), tree.quick_tree(), tree.scale_branches(), tree.uniformize_tree(), ] return applications
def test_write_json_no_info(self): """correctly writes an object with out an info attribute from json""" # create a mock object that pretends like it's been derived from # something with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme") gr = _get_generic_result(join("blah", "delme.json")) writer = io_app.write_json(outdir, create=True) _ = writer(gr) reader = io_app.load_json() got = reader(writer.data_store[0]) got.deserialised_values() self.assertEqual(got["dna"], DNA)
def test_write_json_with_info(self): """correctly writes an object with info attribute from json""" # create a mock object that pretends like it's been derived from # something from cogent3.app.result import generic_result with TemporaryDirectory(dir=".") as dirname: outdir = join(dirname, "delme") obj = generic_result(source=join("blah", "delme.json")) obj["dna"] = DNA writer = io_app.write_json(outdir, create=True) _ = writer(obj) reader = io_app.load_json() got = reader(join(outdir, "delme.json")) got.deserialised_values() self.assertEqual(got["dna"], DNA)