Mercurial > repos > fubar > tool_factory_2
comparison toolfactory/rgToolFactory2.py @ 117:b1a29d3d50d6 draft
Uploaded
author | fubar |
---|---|
date | Sun, 06 Dec 2020 01:21:06 +0000 |
parents | bf7b4b603bf9 |
children | e43c43396a70 |
comparison
equal
deleted
inserted
replaced
116:b1ea31ea3f00 | 117:b1a29d3d50d6 |
---|---|
633 ): # cannot do this inside galaxyxml as it expects lxml objects for tests | 633 ): # cannot do this inside galaxyxml as it expects lxml objects for tests |
634 part1 = exml.split("<tests>")[0] | 634 part1 = exml.split("<tests>")[0] |
635 part2 = exml.split("</tests>")[1] | 635 part2 = exml.split("</tests>")[1] |
636 fixed = "%s\n%s\n%s" % (part1, self.test_override, part2) | 636 fixed = "%s\n%s\n%s" % (part1, self.test_override, part2) |
637 exml = fixed | 637 exml = fixed |
638 exml = exml.replace('range="1:"', 'range="1000:"') | 638 #exml = exml.replace('range="1:"', 'range="1000:"') |
639 xf = open("%s.xml" % self.tool_name, "w") | 639 xf = open("%s.xml" % self.tool_name, "w") |
640 xf.write(exml) | 640 xf.write(exml) |
641 xf.write("\n") | 641 xf.write("\n") |
642 xf.close() | 642 xf.close() |
643 # ready for the tarball | 643 # ready for the tarball |
754 client = docker.from_env() | 754 client = docker.from_env() |
755 tvol = client.volumes.create() | 755 tvol = client.volumes.create() |
756 tvolname = tvol.name | 756 tvolname = tvol.name |
757 destdir = "/toolfactory/ptest" | 757 destdir = "/toolfactory/ptest" |
758 imrep = os.path.join(destdir, repname) | 758 imrep = os.path.join(destdir, repname) |
759 # need to keep the container running so keep it open with tail -f. | 759 # need to keep the container running so keep it open with sleep |
760 # will stop and destroy it when we are done | 760 # will stop and destroy it when we are done |
761 container = client.containers.run( | 761 container = client.containers.run( |
762 planemoimage, | 762 planemoimage, |
763 "sleep 120m", | 763 "sleep 120m", |
764 detach=True, | 764 detach=True, |
784 tout.write(f"#### error: {e} from {ptestcl}\n") | 784 tout.write(f"#### error: {e} from {ptestcl}\n") |
785 cl = f"planemo test --test_output {imrep} --no_cleanup --test_data {destdir}/tfout/test-data --galaxy_root /home/biodocker/galaxy-central {ptestpath}" | 785 cl = f"planemo test --test_output {imrep} --no_cleanup --test_data {destdir}/tfout/test-data --galaxy_root /home/biodocker/galaxy-central {ptestpath}" |
786 try: | 786 try: |
787 prun(container, tout, cl) | 787 prun(container, tout, cl) |
788 except: | 788 except: |
789 pass | 789 e = sys.exc_info()[0] |
790 tout.write(f"#### error: {e} from {ptestcl}\n") | |
790 testouts = tempfile.mkdtemp(suffix=None, prefix="tftemp", dir=".") | 791 testouts = tempfile.mkdtemp(suffix=None, prefix="tftemp", dir=".") |
791 self.copy_from_container(destdir, testouts, container) | 792 self.copy_from_container(destdir, testouts, container) |
792 src = os.path.join(testouts, "ptest") | 793 src = os.path.join(testouts, "ptest") |
793 if os.path.isdir(src): | 794 if os.path.isdir(src): |
794 shutil.copytree(src, ".", dirs_exist_ok=True) | 795 shutil.copytree(src, ".", dirs_exist_ok=True) |
928 | 929 |
929 def exclude_function(tarinfo): | 930 def exclude_function(tarinfo): |
930 filename = tarinfo.name | 931 filename = tarinfo.name |
931 return None if filename.endswith(excludeme) else tarinfo | 932 return None if filename.endswith(excludeme) else tarinfo |
932 | 933 |
934 if os.path.exists(self.tlog): | |
935 tout = open(self.tlog, "a") | |
936 else: | |
937 tout = open(self.tlog, "w") | |
933 for p in self.outfiles: | 938 for p in self.outfiles: |
934 oname = p[ONAMEPOS] | 939 oname = p[ONAMEPOS] |
935 tdest = os.path.join(self.testdir, "%s_sample" % oname) | 940 tdest = os.path.join(self.testdir, "%s_sample" % oname) |
936 if not os.path.isfile(tdest): | 941 if not os.path.isfile(tdest): |
937 src = os.path.join(self.testdir, oname) | 942 src = os.path.join(self.testdir, oname) |
938 if os.path.isfile(src): | 943 if os.path.isfile(src): |
939 shutil.copyfile(src, tdest) | 944 shutil.copyfile(src, tdest) |
940 dest = os.path.join(self.repdir, "%s.sample" % (oname)) | 945 dest = os.path.join(self.repdir, "%s.sample" % (oname)) |
941 shutil.copyfile(src, dest) | 946 shutil.copyfile(src, dest) |
942 else: | 947 else: |
943 print( | 948 tout.write( |
944 "### problem - output file %s not found in testdir %s" | 949 "###Output file %s not found in testdir %s. This is normal during the first Planemo run that generates test outputs" |
945 % (tdest, self.testdir) | 950 % (tdest, self.testdir) |
946 ) | 951 ) |
947 tf = tarfile.open(self.newtarpath, "w:gz") | 952 tf = tarfile.open(self.newtarpath, "w:gz") |
948 tf.add(name=self.tooloutdir, arcname=self.tool_name, filter=exclude_function) | 953 tf.add(name=self.tooloutdir, arcname=self.tool_name, filter=exclude_function) |
949 tf.close() | 954 tf.close() |