Repository 'get_db_info'
hg clone https://eddie.galaxyproject.org/repos/tduigou/get_db_info

Changeset 13:5b16f2911491 (2025-05-23)
Previous changeset 12:ee28ec28140d (2025-05-23)
Commit message:
planemo upload for repository https://github.com/brsynth commit 6ae809b563b40bcdb6be2e74fe2a84ddad5484ae
modified:
get_DB_data.xml
get_db_info.py
output.html
output.json
test-data/test_missing_input.csv
testMock.py
added:
test-data/2-step-golden_gate_plan.csv
b
diff -r ee28ec28140d -r 5b16f2911491 get_DB_data.xml
--- a/get_DB_data.xml Fri May 23 12:45:20 2025 +0000
+++ b/get_DB_data.xml Fri May 23 13:47:21 2025 +0000
b
@@ -37,31 +37,71 @@
     <tests>
     <!--python get_db_info.py -input 'test-data/test_input.csv' -sequence_column 'sequence' -annotation_column 'annotation' -db_uri 'postgresql://postgres:RK17@localhost:5432/test_fragments_db' -table 'sample' -fragment_column 'fragment' -output 'test-data/output'-->
         <test> 
-            <param name="input" value="test_input.csv" />
+            <param name="input" value="2-step-golden_gate_plan.csv" />
             <param name="table" value="sample" />
             <param name="sequence_column" value="sequence" />
             <param name="annotation_columns" value="annotation" />
             <param name="fragment_column" value="fragment" />
             <param name="db_uri" value="postgresql://postgres:RK17@localhost:5432/test_fragments_db" />
-            <output_collection name="output_gb" type="list" count="4">
-                <element name="ACP10001AaCbbBS">
+            <output_collection name="output_gb" type="list" count="12">
+                <element name="part_A">
+                    <assert_contents>
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_B">
                     <assert_contents>
-                     <has_n_lines min="3" />
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_C">
+                    <assert_contents>
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_D">
+                    <assert_contents>
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_E">
+                    <assert_contents>
+                     <has_n_lines min="10" />
                     </assert_contents>
                 </element>
-                <element name="CFP10002AaCbbBS">
+                <element name="part_F">
+                    <assert_contents>
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_G">
                     <assert_contents>
-                     <has_n_lines min="3" />
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_H">
+                    <assert_contents>
+                     <has_n_lines min="10" />
                     </assert_contents>
                 </element>
-                <element name="QWE10004AaCbbBS">
+                <element name="part_I">
                     <assert_contents>
-                     <has_n_lines min="3" />
+                     <has_n_lines min="10" />
                     </assert_contents>
                 </element>
-                <element name="XYZ10003AaCbbBS">
+                <element name="part_J">
+                    <assert_contents>
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_K">
                     <assert_contents>
-                     <has_n_lines min="3" />
+                     <has_n_lines min="10" />
+                    </assert_contents>
+                </element>
+                <element name="part_L">
+                    <assert_contents>
+                     <has_n_lines min="10" />
                     </assert_contents>
                 </element>
             </output_collection>
b
diff -r ee28ec28140d -r 5b16f2911491 get_db_info.py
--- a/get_db_info.py Fri May 23 12:45:20 2025 +0000
+++ b/get_db_info.py Fri May 23 13:47:21 2025 +0000
[
@@ -106,17 +106,18 @@
 
             # Compare fragments between CSV and DB
             csv_fragments = set()
-            all_ids = set(df[0])
+            all_ids = set(df[0].dropna().astype(str))
             for _, row in df.iterrows():
                 for col in df.columns:
-                    if col != 0:  # Skip the first column
+                    if col != 0:
                         fragment = row[col]
-                        if fragment not in all_ids:
-                            csv_fragments.add(fragment)
+                        if pd.notna(fragment):
+                            fragment_str = str(fragment)
+                            if fragment_str not in all_ids:
+                                csv_fragments.add(fragment_str)
 
             db_fragments = set(fragment_map.keys())
             missing_fragments = sorted(list(csv_fragments - db_fragments))
-
             if missing_fragments:
                 raise ValueError(
                     f" Missing fragments in DB: {', '.join(missing_fragments)}"
@@ -128,6 +129,8 @@
                 for col in df.columns:
                     if col != 0:
                         fragment = row[col]
+                        if fragment not in csv_fragments:
+                            continue
                         db_row = fragment_map.get(fragment)
 
                         if db_row:
b
diff -r ee28ec28140d -r 5b16f2911491 output.html
--- a/output.html Fri May 23 12:45:20 2025 +0000
+++ b/output.html Fri May 23 13:47:21 2025 +0000
b
@@ -285,7 +285,7 @@
         var md = window.markdownit({
           html: true,
         });
-        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iMSIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iMSIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSIxIFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjEiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSIxIiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDEgfAp8IFBhc3NlZCAgICAgfCAxIHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBnZXRfREJfZGF0YSAoVGVzdCAjIDEpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2dldF9kYl9kYXRhL2dldF9kYl9pbmZvLnB5JyAtLWlucHV0ICcvdG1wL3RtcDIwYWJtaW84L2ZpbGVzLzAvMC81L2RhdGFzZXRfMDA1NjdiMmYtNTAzMi00M2I4LWE2MTItYzE2ZThhYzA5N2NhLmRhdCcgLS1zZXF1ZW5jZV9jb2x1bW4gJ3NlcXVlbmNlJyAtLWFubm90YXRpb25fY29sdW1ucyAnYW5ub3RhdGlvbicgLS1kYl91cmkgJ3Bvc3RncmVzcWw6Ly9wb3N0Z3JlczpSSzE3X19hdF9fbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGInIC0tdGFibGUgJ3NhbXBsZScgLS1mcmFnbWVudF9jb2x1bW4gJ2ZyYWdtZW50JyAtLW91dHB1dCAnb3V0ZGlyJwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBDb250YWluZXIgJ3Rlc3RfZnJhZ21lbnRzX2RiJyBpcyBhbHJlYWR5IHJ1bm5pbmcuCiAgICAgIENvbm5lY3RlZCB0byBkYXRhYmFzZS4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IHRhYmxlIHwgYCAic2FtcGxlIiBgIHwKICAgICAgIHwgc2VxdWVuY2VcX2NvbHVtbiB8IGAgInNlcXVlbmNlIiBgIHwKICAgICAgIHwgYW5ub3RhdGlvblxfY29sdW1ucyB8IGAgImFubm90YXRpb24iIGAgfAogICAgICAgfCBmcmFnbWVudFxfY29sdW1uIHwgYCAiZnJhZ21lbnQiIGAgfAogICAgICAgfCBkYlxfdXJpIHwgYCAicG9zdGdyZXNxbDovL3Bvc3RncmVzOlJLMTdAbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGIiIGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcDIwYWJtaW84L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKPC9kZXRhaWxzPgo='));
+        target.innerHTML = md.render(atob('IyMgVGVzdCBTdW1tYXJ5Cgo8ZGl2IGNsYXNzPSJwcm9ncmVzcyI+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci1zdWNjZXNzIiBzdHlsZT0id2lkdGg6IDEwMC4wJSIgYXJpYS12YWx1ZW5vdz0iMSIgYXJpYS12YWx1ZW1pbj0iMCIgYXJpYS12YWx1ZW1heD0iMSIgZGF0YS10b2dnbGU9InRvb2x0aXAiIHRpdGxlPSIxIFBhc3NlZCI+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0icHJvZ3Jlc3MtYmFyIHByb2dyZXNzLWJhci13YXJuaW5nIiBzdHlsZT0id2lkdGg6IDAuMCUiIGFyaWEtdmFsdWVub3c9IjAiIGFyaWEtdmFsdWVtaW49IjAiIGFyaWEtdmFsdWVtYXg9IjEiIGRhdGEtdG9nZ2xlPSJ0b29sdGlwIiB0aXRsZT0iMCBTa2lwcGVkIj4KICA8L2Rpdj4KICA8ZGl2IGNsYXNzPSJwcm9ncmVzcy1iYXIgcHJvZ3Jlc3MtYmFyLWRhbmdlciIgc3R5bGU9IndpZHRoOiAwLjAlIiBhcmlhLXZhbHVlbm93PSIwIiBhcmlhLXZhbHVlbWluPSIwIiBhcmlhLXZhbHVlbWF4PSIxIiB0aXRsZT0iMCBGYWlsZWQgb3IgRXJyb3JlZCI+CiAgPC9kaXY+CjwvZGl2PgoKfCBUZXN0IFN0YXRlIHwgQ291bnQgfAp8IC0tLS0tLS0tLS0gfCAtLS0tLSB8CnwgVG90YWwgICAgICB8IDEgfAp8IFBhc3NlZCAgICAgfCAxIHwKfCBFcnJvciAgICAgIHwgMCB8CnwgRmFpbHVyZSAgICB8IDAgfAp8IFNraXBwZWQgICAgfCAwIHwKCgo8ZGV0YWlscyA+PHN1bW1hcnk+UGFzc2VkIFRlc3RzPC9zdW1tYXJ5PgoKKiA8ZGV0YWlscyBjbGFzcz0icmNvcm5lcnMgbGlnaHQtZ3JlZW4iPjxzdW1tYXJ5IGNsYXNzPSJsaWdodC1ncmVlbiI+JiM5OTg5OyBnZXRfREJfZGF0YSAoVGVzdCAjIDEpPC9zdW1tYXJ5PjxkaXYgY2xhc3M9InBhZGRlZCI+CgogICAgKipDb21tYW5kIExpbmU6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgbWtkaXIgJ291dGRpcicgJiYgcHl0aG9uICcvaG9tZS9ya2hhbGVkL2dhbGF4eXRvb2xzL3Rvb2xzL2dldF9kYl9kYXRhL2dldF9kYl9pbmZvLnB5JyAtLWlucHV0ICcvdG1wL3RtcGt4OWVnMWF4L2ZpbGVzL2IvNy81L2RhdGFzZXRfYjc1ODRmMmMtNTQzOC00OGQ0LTgyM2MtYjJjM2Y0Mjc0ZGYzLmRhdCcgLS1zZXF1ZW5jZV9jb2x1bW4gJ3NlcXVlbmNlJyAtLWFubm90YXRpb25fY29sdW1ucyAnYW5ub3RhdGlvbicgLS1kYl91cmkgJ3Bvc3RncmVzcWw6Ly9wb3N0Z3JlczpSSzE3X19hdF9fbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGInIC0tdGFibGUgJ3NhbXBsZScgLS1mcmFnbWVudF9jb2x1bW4gJ2ZyYWdtZW50JyAtLW91dHB1dCAnb3V0ZGlyJwogICAgICBgYGAKICAgICoqRXhpdCBDb2RlOioqCgogICAgKiBgYGBjb25zb2xlCiAgICAgIDAKICAgICAgYGBgCiAgICAqKlN0YW5kYXJkIE91dHB1dDoqKgoKICAgICogYGBgY29uc29sZQogICAgICBDb250YWluZXIgJ3Rlc3RfZnJhZ21lbnRzX2RiJyBpcyBhbHJlYWR5IHJ1bm5pbmcuCiAgICAgIENvbm5lY3RlZCB0byBkYXRhYmFzZS4KCiAgICAgIGBgYAogICAgKipUcmFjZWJhY2s6KioKCiAgICAqIGBgYGNvbnNvbGUKICAgICAgCiAgICAgIGBgYAogICAqKkpvYiBQYXJhbWV0ZXJzOioqCgogICAqICAgfCBKb2IgcGFyYW1ldGVyIHwgUGFyYW1ldGVyIHZhbHVlIHwKICAgICAgIHwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8CiAgICAgICB8IHRhYmxlIHwgYCAic2FtcGxlIiBgIHwKICAgICAgIHwgc2VxdWVuY2VcX2NvbHVtbiB8IGAgInNlcXVlbmNlIiBgIHwKICAgICAgIHwgYW5ub3RhdGlvblxfY29sdW1ucyB8IGAgImFubm90YXRpb24iIGAgfAogICAgICAgfCBmcmFnbWVudFxfY29sdW1uIHwgYCAiZnJhZ21lbnQiIGAgfAogICAgICAgfCBkYlxfdXJpIHwgYCAicG9zdGdyZXNxbDovL3Bvc3RncmVzOlJLMTdAbG9jYWxob3N0OjU0MzIvdGVzdF9mcmFnbWVudHNfZGIiIGAgfAogICAgICAgfCBjaHJvbUluZm8gfCBgICIvdG1wL3RtcGt4OWVnMWF4L2dhbGF4eS1kZXYvdG9vbC1kYXRhL3NoYXJlZC91Y3NjL2Nocm9tLz8ubGVuIiBgIHwKICAgICAgIHwgZGJrZXkgfCBgICI/IiBgIHwKICAgICAgIHwgXF9cX2lucHV0XF9leHQgfCBgICJpbnB1dCIgYCB8CgoKCiAgICA8L2Rpdj48L2RldGFpbHM+CgoKPC9kZXRhaWxzPgo='));
     </script>
   </body>
 </html>
\ No newline at end of file
b
diff -r ee28ec28140d -r 5b16f2911491 output.json
--- a/output.json Fri May 23 12:45:20 2025 +0000
+++ b/output.json Fri May 23 13:47:21 2025 +0000
[
b'@@ -13,29 +13,29 @@\n                     "db_uri": "postgresql://postgres:RK17@localhost:5432/test_fragments_db",\n                     "fragment_column": "fragment",\n                     "input": {\n-                        "id": "21ac64467e79a23d",\n+                        "id": "3e55d5e4bd660a72",\n                         "src": "hda"\n                     },\n                     "sequence_column": "sequence",\n                     "table": "sample"\n                 },\n                 "job": {\n-                    "command_line": "mkdir \'outdir\' && python \'/home/rkhaled/galaxytools/tools/get_db_data/get_db_info.py\' --input \'/tmp/tmp20abmio8/files/0/0/5/dataset_00567b2f-5032-43b8-a612-c16e8ac097ca.dat\' --sequence_column \'sequence\' --annotation_columns \'annotation\' --db_uri \'postgresql://postgres:RK17__at__localhost:5432/test_fragments_db\' --table \'sample\' --fragment_column \'fragment\' --output \'outdir\'",\n+                    "command_line": "mkdir \'outdir\' && python \'/home/rkhaled/galaxytools/tools/get_db_data/get_db_info.py\' --input \'/tmp/tmpkx9eg1ax/files/b/7/5/dataset_b7584f2c-5438-48d4-823c-b2c3f4274df3.dat\' --sequence_column \'sequence\' --annotation_columns \'annotation\' --db_uri \'postgresql://postgres:RK17__at__localhost:5432/test_fragments_db\' --table \'sample\' --fragment_column \'fragment\' --output \'outdir\'",\n                     "command_version": null,\n                     "copied_from_job_id": null,\n-                    "create_time": "2025-05-23T12:44:22.666476",\n+                    "create_time": "2025-05-23T13:46:12.315974",\n                     "dependencies": [],\n                     "exit_code": 0,\n-                    "external_id": "196443",\n+                    "external_id": "224853",\n                     "galaxy_version": "24.2",\n                     "handler": null,\n-                    "history_id": "21ac64467e79a23d",\n-                    "id": "16392a867bb52b96",\n+                    "history_id": "3e55d5e4bd660a72",\n+                    "id": "024baef40a002eb4",\n                     "inputs": {\n                         "input": {\n-                            "id": "21ac64467e79a23d",\n+                            "id": "3e55d5e4bd660a72",\n                             "src": "hda",\n-                            "uuid": "00567b2f-5032-43b8-a612-c16e8ac097ca"\n+                            "uuid": "b7584f2c-5438-48d4-823c-b2c3f4274df3"\n                         }\n                     },\n                     "job_messages": [],\n@@ -46,36 +46,76 @@\n                     "model_class": "Job",\n                     "output_collections": {\n                         "output_gb": {\n-                            "id": "21ac64467e79a23d",\n+                            "id": "3e55d5e4bd660a72",\n                             "src": "hdca"\n                         }\n                     },\n                     "outputs": {\n-                        "__new_primary_file_output_gb|ACP10001AaCbbBS__": {\n-                            "id": "16392a867bb52b96",\n+                        "__new_primary_file_output_gb|part_A__": {\n+                            "id": "024baef40a002eb4",\n                             "src": "hda",\n-                            "uuid": "f6166465-8329-42d3-8b8d-634164cb00d1"\n+                            "uuid": "93fbeb5d-074d-48e6-9eec-fd7445ec81dd"\n+                        },\n+                        "__new_primary_file_output_gb|part_B__": {\n+                            "id": "26cae1ed3aa61beb",\n+                            "src": "hda",\n+                            "uuid": "d9595d0c-e479-4529-8c8f-92910ba304e2"\n+                        },\n+                        "__new_primary_file_output_gb|part_C__": {\n+                            "id": "63a16c870de58b5c",\n+                            "src": "hda",\n+                            "uuid": "f7f751b7-bc0a-496e-999f-a1eaded9db2c"\n                         },\n-                        "__new_primary_file_output_gb|CFP10002AaCbbBS__": {\n-                            "id"'..b' },\n+                        "__new_primary_file_output_gb|part_E__": {\n+                            "id": "a522ff593fd68eb0",\n+                            "src": "hda",\n+                            "uuid": "42671fc1-73de-4a25-b090-242c9c233349"\n+                        },\n+                        "__new_primary_file_output_gb|part_F__": {\n+                            "id": "4790cce11de15e49",\n+                            "src": "hda",\n+                            "uuid": "28fa25eb-6a6f-422b-b18f-cc27335d0057"\n                         },\n-                        "__new_primary_file_output_gb|QWE10004AaCbbBS__": {\n-                            "id": "c5caf62a8c51ce22",\n+                        "__new_primary_file_output_gb|part_G__": {\n+                            "id": "fd0d5f6f6b618b2e",\n                             "src": "hda",\n-                            "uuid": "79161280-74b3-4786-9d94-d5e616a85047"\n+                            "uuid": "2f9a4438-cc15-4157-8d4e-76e265f001e5"\n+                        },\n+                        "__new_primary_file_output_gb|part_H__": {\n+                            "id": "55923ec0abca33c6",\n+                            "src": "hda",\n+                            "uuid": "ec95f6c6-83ce-4908-a438-4b75b70f300b"\n+                        },\n+                        "__new_primary_file_output_gb|part_I__": {\n+                            "id": "a7c1ac8dd0e0cd88",\n+                            "src": "hda",\n+                            "uuid": "ae511dd8-952c-4402-9520-d158966dd7f2"\n                         },\n-                        "__new_primary_file_output_gb|XYZ10003AaCbbBS__": {\n-                            "id": "33cdc5f5dcf09503",\n+                        "__new_primary_file_output_gb|part_J__": {\n+                            "id": "03ce4e2872cac014",\n                             "src": "hda",\n-                            "uuid": "3cc67d62-a001-42bf-9628-c508daf0934c"\n+                            "uuid": "143078c2-aa8d-4f30-858a-dcc96d854582"\n+                        },\n+                        "__new_primary_file_output_gb|part_K__": {\n+                            "id": "7036040c587c5933",\n+                            "src": "hda",\n+                            "uuid": "6287af7a-a2ad-4348-a4d8-9bc78969a188"\n+                        },\n+                        "__new_primary_file_output_gb|part_L__": {\n+                            "id": "bf44ed04fc51b238",\n+                            "src": "hda",\n+                            "uuid": "a32e4a55-fb89-434c-a222-506576b7fc34"\n                         }\n                     },\n                     "params": {\n                         "__input_ext": "\\"input\\"",\n                         "annotation_columns": "\\"annotation\\"",\n-                        "chromInfo": "\\"/tmp/tmp20abmio8/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\\"",\n+                        "chromInfo": "\\"/tmp/tmpkx9eg1ax/galaxy-dev/tool-data/shared/ucsc/chrom/?.len\\"",\n                         "db_uri": "\\"postgresql://postgres:RK17@localhost:5432/test_fragments_db\\"",\n                         "dbkey": "\\"?\\"",\n                         "fragment_column": "\\"fragment\\"",\n@@ -88,13 +128,13 @@\n                     "tool_id": "get_DB_data",\n                     "tool_stderr": "",\n                     "tool_stdout": "Container \'test_fragments_db\' is already running.\\nConnected to database.\\n",\n-                    "update_time": "2025-05-23T12:44:29.552502",\n+                    "update_time": "2025-05-23T13:46:18.962770",\n                     "user_email": "planemo@galaxyproject.org",\n-                    "user_id": "21ac64467e79a23d"\n+                    "user_id": "3e55d5e4bd660a72"\n                 },\n                 "status": "success",\n                 "test_index": 0,\n-                "time_seconds": 17.09453797340393,\n+                "time_seconds": 16.930965185165405,\n                 "tool_id": "get_DB_data",\n                 "tool_version": "0.1.0+galaxy0"\n             },\n'
b
diff -r ee28ec28140d -r 5b16f2911491 test-data/2-step-golden_gate_plan.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2-step-golden_gate_plan.csv Fri May 23 13:47:21 2025 +0000
b
@@ -0,0 +1,4 @@
+construct_3,construct_1,part_L,part_J,part_K,,
+construct_4,construct_2,part_L,part_J,part_K,,
+construct_1,part_A,part_B,part_C,part_D,part_E,part_F
+construct_2,part_A,part_G,part_H,part_I,part_F,
b
diff -r ee28ec28140d -r 5b16f2911491 test-data/test_missing_input.csv
--- a/test-data/test_missing_input.csv Fri May 23 12:45:20 2025 +0000
+++ b/test-data/test_missing_input.csv Fri May 23 13:47:21 2025 +0000
b
@@ -1,5 +1,4 @@
-ID,Frag1,Frag2,Frag3
 Sample-1,ACP10001AaCbbBS,NEW20001BbDccKT,XYZ10003AaCbbBS
 Sample-2,CFP10002AaCbbBS,ACP10001AaCbbBS,ALT30005CcEddLM
 Sample-3,XYZ10003AaCbbBS,ALT30005CcEddLM,ACP10001AaCbbBS
-Sample-4,QWE10004AaCbbBS,NEW20001BbDccKT,CFP10002AaCbbBS
\ No newline at end of file
+Sample-4,QWE10004AaCbbBS,NEW20001BbDccKT,CFP10002AaCbbBS
b
diff -r ee28ec28140d -r 5b16f2911491 testMock.py
--- a/testMock.py Fri May 23 12:45:20 2025 +0000
+++ b/testMock.py Fri May 23 13:47:21 2025 +0000
[
b"@@ -58,74 +58,1289 @@\n     VALUES (%s, %s, %s, %s, %s);\n ''', [\n     (\n-        'ACP10001AaCbbBS',\n+        'part_A',\n         '''ORIGIN\n-1 atggccattg taatgggccg ctgaaagggt gcccggatca ctttcgctgt ttcgacgttg\n-61 gcttggtccc agcggcggca ccgagctggg tagcggtcag gagctgcttc gcgtgagcgg\n-121 ctgccagggc agctgacgcc gctgcgcgca gctgcgcatg\n+        1 tcacaggatg gtccaacgaa actaggcttt agacgaggga tgaatgaccg acccccactc\n+       61 gtggcactaa cggacagact tccctgacgg ttattcgacc attaaagtca gacatgcggg\n+      121 ggtgaataaa ttagccaaat tgtgtcgaag aaaagacgtg cggctggcac ataaggcagt\n+      181 cttgatccta gtcttgcagg gatgcacgta agtcgcctca attaactgca gccgagctcc\n+      241 aggttaccaa agaccctagt atgccagggc ctaacggttg gagtatatta tgggtacgca\n+      301 atagtgcgga agttaacctg ggcaacatcc aggtgagagg ttggacggaa gcgacagtaa\n+      361 gtggccatag actgccgagt cgtgttaatg aatcgctata cgcccatgga gttgtggggt\n+      421 cgttttatcc gagtaggggc ccgctgacta cttcgtccag acaatatgcc gtcttcaata\n+      481 gtctacctga gagtcatgcc ggcatttccg acgctgagtg aaacccgcgt agccaggcga\n+      541 aatttgcatc ttgaaatacc actgcagatc agccagtaag gcccatataa gggcgctggt\n+      601 gttctggcga cagataaagt gttatctaat gtaacccgcg gacttttaga ggatacttga\n+      661 atgcgggcat atcgtcccac cagcgtcacg tggtcgggct agcggcagac aaactctgcc\n+      721 gatgtttttc tttgccgcga tagcgggcta gtcaattcac tatccggcga tgaagcatag\n+      781 attgttatcg cgcttatgcg gaggataatc aagtcttggc agaacctgct cgctcatgca\n+      841 ctggtgaggc gtggttatcc taacaaccgc ctaggacgaa gaatgggctc ggtagggaca\n+      901 gttcgtgcgt ttagcttcgt cccatcttaa tgctgtctgg agggaggcta catgcgaaca\n+      961 gaagccgtgg gcgaaagttg ttgatccggg tctaacacgg ataagggcca tggtgaacgc\n+     1021 atcatgcgat acttcttggt agttcttcta acatgaccgt gccatagccc ttaccctttg\n+     1081 aagaagttaa cctatctgcc gtctcctgca cgaatagcga ctggactcgg gtattttgga\n+     1141 tacctcacga aagcacttcg atcggccgaa gcatggatat ttcgccggac gggcccgaat\n+     1201 agagagcctt gtatgtcggt tagtacaacg cagtcctgga gacatctacg cggatgggcc\n+     1261 taggggctgg acttaacatt gggtaacgta cctggtccaa agtgaatgca aagcactttt\n+     1321 acaaagcgcg ggtccccgtg ggtgtttagg gtagaagatt ggcggatgct acgaacgatc\n+     1381 ccgctttgaa actatcatta catcgtgtaa aagagacact taacaaaggc caataaactg\n+     1441 ccagtaagaa tcgctcagtg cggtgctggg gacgctaagt aggggcaaca gccagtgaag\n+     1501 gacgtgaccg acctttctca gataagatat gctggcgtct atctaataag catagtgaaa\n+     1561 aaccaaccat ttcacttaca cgaagtacat ttgcattgct agtaaagacg cctaaacaga\n+     1621 agtgcccttg catgctgtat gtctatagtc cttagggaag catcagccct tctacttatt\n+     1681 cgaggtctga gaaaccctgg acaagctccg aattattcaa tgtgcctgtc tccgaggtta\n+     1741 gatagcgcta tgctcttaag agttgcacag aatgaccatc ctggaatgtc cctggagggg\n+     1801 tctaggtatg ctgatcgaag ggtgctctaa ggacttgacg tgcgtccgag gagggtgctg\n+     1861 cctccttcgc ctttagatcc aacgcggatc acatgcgcgt gagctaatag gatcaccttc\n+     1921 tgctccgatt tttaccctcc tgggtcactt ccgaatgagg tagcgggcga aatataatgt\n+     1981 ctccactcgt aggtgttccc tgtatgtgaa gctctatagt ggacaaaggt ttgatgaact\n+     2041 agcccccgta tacgctctca ccgacggacg cgggggtctg ttatttgaag catcatacat\n+     2101 gcgaaggtgc cttctcagca acgaaaggta gtgggagtgt acaagttcaa tgcgccgcca\n+     2161 taggtctgag tatacaaggg gatgccccca tccacaacgg gattggctac ccggagagct\n+     2221 ggctccgctc caacaaataa ttatattaac ctattggaat tccacctgca tatcagagga\n+     2281 gagagacctt tacggctatt ctgtttaccg gatccatcgg taccaaggat cagaaagtga\n+     2341 cacggtttga acgggttgtt gtaatacttt gagtatacct ctgacgctga gcgtgtcgtc\n+     2401 ctgagcgcag actcaataac atagcagtcc gacatcgccg tgatatgtaa atgcaacgaa\n+     2461 tttaggtctt gactcggtct accatgtcaa aagggtagcc agatttcagc gcgaaattga\n+     2521 actttgtgtt tagtgtgggg tcctcggtta caaaatagga tcagacatgt gtgattttgg\n+     2581 taacctagtc tggcagtccg acagacttcg ctatgatttg atggggccgg cctataattg\n+     2641 gcttgcgcaa cccgctcatc tcgggcgtgt tttacttcct gcggtcccca cgccctattt\n+     2701 tcgggccagc tgtaggtgct agagtgaatg ctggcgaata agattccccg ctatttggcg\n+     2761 cctcgccaca gctctggcac tatgggggga gtttctctgt tccttaaaca gcacccgttt\n+     2821 ttgaggtgta ttggtttcgg ttctgcatta ggcaattcgt "..b'tgcaga ccgtagagaa ataccggcta\n+      481 aggcagtcgc tcaatgcaca ccagcatcgc cgagacatat aaagccataa acattaattg\n+      541 gaatgctagt cacagcgtgt tgactggacg cttaaaagtt tctacaaaag gtatagtttt\n+      601 aacatttctc tgagttagcg ctatcgggtc gactgacatc tagaattgac acgttactca\n+      661 cctggatcct agtcacactc cgggaaccgc tcgcttagtg gcagtagcgg ggggcgtccc\n+      721 taggatagct gcgcaaagcg tggtttatct aatcgtggct tgtgtggaca tgatgctgtt\n+      781 caggcgcatc tgtggccgcc acagcattac caagctaatc agaaaccgcg gcatgtcccc\n+      841 gcgatgcgag aggcatctgt tagagccaaa gagtggaggt ctgtaatatc gctagcggag\n+      901 attttctaag gggcgtggga ctttatcccg atatggctga acgatccaac ggcaaatggt\n+      961 tctgccattg aactttaacc atgaatagac tccaggcgag ggataatgga aataatagca\n+     1021 ggaaatgaca atctactagg tgcgcactat caagattgta tgtttgcgta tcgtagttct\n+     1081 aatggtcttg tgtcccgtat tgggtcggac ggtgctgttc ctgatcgtag caatgcccgg\n+     1141 ttagaatcac gcatcggagc gatcatttcg ggcgatacgc gttcgttctg tccactcttg\n+     1201 tgggagtccg acgtatgcct gctcggtatt gttttattca ggcgacagta cctcccattc\n+     1261 aaatatacag ggttatacta cacaccacga gtaataaaga cttgtgttgt gccaattcct\n+     1321 cgtgggactg ccacgctcgt gagcttcgcg gttacatacc cctatgtccc caactgttgg\n+     1381 tggcaaatcc ctaatctaat ctattgtatc acagtcggtc aacgactgaa attggggcaa\n+     1441 caccaacagt gctcttacga tattcgtctg tgtctaacaa tccaacaaaa agctgttatt\n+     1501 atgatggagg atcttggatt gcgtcagtac tacggtgttg tacgagaatt gcatgatgat\n+     1561 tcctcgatgt cgagtccttg caagatcgtg atctatagcc aagctgctgc tgtagatcaa\n+     1621 cctcaccggg gcgggggtcc cattactatg ggcggcatta gagtaccata gatgaacgcg\n+     1681 agcagagaca tgtcaatgta tcccagtcct gcagtactac gtcagtctct gctcctgggg\n+     1741 ccaatgcacg cctgtagaat agggccgtgt tcccatgaga aatttgaggg acttacgatt\n+     1801 agatggcctt ggcaggggac tccgcgtacg tgtggggatg aaccggcacc ggccttggcc\n+     1861 ctgagtaaat gtaagcgata tcaacttcgc tattcatgat cagtggtatt cgtgtaggca\n+     1921 ccgaaagtcc cttggcgaaa gtagagacat acgatacgga ccgcaagcga gcagaatttc\n+     1981 agcacatgac agttattagc ttttttctaa tggtgctccc attatgattg tcaagtcccg\n+     2041 actgctagct gtaggatgaa acacatccac acacgtgtta ccatactgat tttgacacta\n+     2101 cttcctaacc gggccgaatg gtatctgctg cgatgcttag ttacgtaaca gccgaatgtc\n+     2161 acgccactgc atattgtggt tctggaattc cacctgcata tgtcacgcta gagaccgtat\n+     2221 gaggtgggcg gatagtggtg acttcaaacc catatgcagg tgctgca\n+\'\'\',\n+        \'\'\'LOCUS       part_L                  2267 bp    ds-DNA  circular UNK 28-OCT-2019\n+DEFINITION  .\n+ACCESSION   part_L\n+VERSION     part_L\n+KEYWORDS    "creator:SynthSys Center" "marker:KanR".\n+SOURCE      .\n+  ORGANISM  .\n+            .\n+FEATURES             Location/Qualifiers\n+     misc_feature    join(2263..2267,1)\n+                     /label="feature"\n+                     /ApEinfo_fwdcolor="#84b0dc"\n+     terminator      2..59\n+                     /label="another feature"\n+                     /ApEinfo_fwdcolor="#c6c9d1"\n+     CDS             complement(1140..1955)\n+                     /label="yet another feature"\n+                     /ApEinfo_fwdcolor="#b7e6d7"\n+     misc_feature    2206..2209\n+                     /label="feature"\n+                     /ApEinfo_fwdcolor="#ff0000"\n+     misc_feature    2202..2205\n+                     /label="another feature"\n+                     /ApEinfo_fwdcolor="#faac61"\n+     terminator      2139..2182\n+                     /label="yet another feature"\n+                     /ApEinfo_fwdcolor="#c6c9d1"\n+     rep_origin      complement(254..842)\n+                     /label="feature"\n+                     /ApEinfo_fwdcolor="#ffef86"\n+     misc_feature    2248..2251\n+                     /label="another feature"\n+                     /ApEinfo_fwdcolor="#ff0000"\n+     misc_feature    2185..2190\n+                     /label="yet another feature"\n+                     /ApEinfo_fwdcolor="#84b0dc"\n+     terminator      1025..1119\n+                     /label="feature"\n+                     /ApEinfo_fwdcolor="#c6c9d1"\n+\'\'\',\n+        \'Metadata1 for part_L\', \'Metadata2 for part_L\'\n     )\n ])\n \n'