Coverage report: 90%

Files Functions Classes

coverage.py v7.14.3, created at 2026-07-09 02:10 -0700

      Statements   Branches   Total
File function   coverage statements missing excluded   coverage branches partial   coverage
python/lsst/__init__.py (no function)   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/__init__.py (no function)   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/__init__.py (no function)   100% 11 0 0   100% 0 0   100%
python/lsst/ctrl/bps/_exceptions.py BpsSubprocessError.__init__   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/_exceptions.py (no function)   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_config.py BpsFormatter.get_field   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_config.py BpsFormatter.get_value   0% 2 2 0   100% 0 0   0%
python/lsst/ctrl/bps/bps_config.py BpsConfig.__init__   100% 29 0 0   100% 12 0   100%
python/lsst/ctrl/bps/bps_config.py BpsConfig.copy   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/bps_config.py BpsConfig.get   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_config.py BpsConfig.__getitem__   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_config.py BpsConfig.__contains__   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_config.py BpsConfig.search   97% 76 2 0   96% 48 2   97%
python/lsst/ctrl/bps/bps_config.py BpsConfig.replace_vars   100% 14 0 0   100% 6 0   100%
python/lsst/ctrl/bps/bps_config.py BpsConfig.generate_config   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_config.py BpsConfig._recursive_generate_config   100% 19 0 0   100% 10 0   100%
python/lsst/ctrl/bps/bps_config.py (no function)   100% 29 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_draw.py draw_networkx_dot   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/bps_draw.py (no function)   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.__init__   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.__eq__   67% 3 1 0   50% 2 1   60%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.__len__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.__str__   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.message   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.clear   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.sort   100% 6 0 0   75% 4 1   90%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.from_table   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py BaseRunReport.add   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_reports.py SummaryRunReport.add   100% 17 0 0   90% 10 1   96%
python/lsst/ctrl/bps/bps_reports.py DetailedRunReport.add   90% 31 3 0   93% 14 1   91%
python/lsst/ctrl/bps/bps_reports.py DetailedRunReport.__str__   0% 4 4 0   100% 0 0   0%
python/lsst/ctrl/bps/bps_reports.py ExitCodesReport.add   91% 33 3 0   93% 14 1   91%
python/lsst/ctrl/bps/bps_reports.py ExitCodesReport.__str__   0% 3 3 0   100% 0 0   0%
python/lsst/ctrl/bps/bps_reports.py compile_job_summary   100% 14 0 0   100% 6 0   100%
python/lsst/ctrl/bps/bps_reports.py compile_code_summary   100% 19 0 0   92% 12 1   97%
python/lsst/ctrl/bps/bps_reports.py group_jobs_by_state   100% 5 0 0   100% 2 0   100%
python/lsst/ctrl/bps/bps_reports.py group_jobs_by_label   100% 5 0 0   100% 2 0   100%
python/lsst/ctrl/bps/bps_reports.py (no function)   100% 31 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_utils.py chdir   100% 5 0 0   100% 0 0   100%
python/lsst/ctrl/bps/bps_utils.py mkdir   100% 9 0 0   100% 2 0   100%
python/lsst/ctrl/bps/bps_utils.py create_job_quantum_graph_filename   0% 10 10 0   0% 6 0   0%
python/lsst/ctrl/bps/bps_utils.py save_qg_subgraph   0% 6 6 0   0% 4 0   0%
python/lsst/ctrl/bps/bps_utils.py create_count_summary   0% 4 4 0   0% 2 0   0%
python/lsst/ctrl/bps/bps_utils.py parse_count_summary   0% 5 5 0   0% 2 0   0%
python/lsst/ctrl/bps/bps_utils.py _dump_pkg_info   80% 5 1 0   50% 2 1   71%
python/lsst/ctrl/bps/bps_utils.py _dump_env_info   80% 5 1 0   50% 2 1   71%
python/lsst/ctrl/bps/bps_utils.py _make_id_link   100% 22 0 0   100% 8 0   100%
python/lsst/ctrl/bps/bps_utils.py subset_dimension_values   80% 20 4 0   86% 14 2   82%
python/lsst/ctrl/bps/bps_utils.py bps_eval   100% 8 0 0   100% 2 0   100%
python/lsst/ctrl/bps/bps_utils.py (no function)   100% 32 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cancel.py cancel   0% 13 13 0   0% 8 0   0%
python/lsst/ctrl/bps/cancel.py (no function)   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/__init__.py (no function)   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/bps.py cli   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/bps.py main   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/bps.py (no function)   100% 15 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/cmd/__init__.py (no function)   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/cmd/commands.py catch_errors   100% 7 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/cmd/commands.py acquire   0% 2 2 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py cluster   0% 2 2 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py transform   0% 2 2 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py prepare   0% 2 2 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py submit   0% 2 2 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py restart   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py report   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py status   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/cmd/commands.py cancel   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py ping   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/cmd/commands.py submitcmd   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/cli/cmd/commands.py (no function)   100% 71 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/opt/__init__.py (no function)   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/opt/arguments.py (no function)   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/opt/option_groups.py submission_options.__init__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/opt/option_groups.py (no function)   100% 6 0 0   100% 0 0   100%
python/lsst/ctrl/bps/cli/opt/options.py (no function)   100% 10 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.__init__   89% 9 1 0   75% 4 1   85%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.from_quantum_info   82% 17 3 0   100% 0 0   82%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.qgraph_node_ids   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.quanta_counts   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.add_quantum   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.__str__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.__eq__   80% 5 1 0   75% 4 1   78%
python/lsst/ctrl/bps/clustered_quantum_graph.py QuantaCluster.__hash__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.__init__   86% 7 1 0   50% 2 1   78%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.__str__   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.__len__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.__eq__   60% 5 2 0   50% 4 2   56%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.name   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.qgraph   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.qxgraph   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.add_cluster   67% 6 2 0   67% 6 2   67%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.get_cluster   100% 5 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.get_quantum_info   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.__iter__   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.clusters   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.successors   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.predecessors   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.add_dependency   83% 12 2 0   75% 8 2   80%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.__contains__   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.save   91% 11 1 0   50% 6 3   76%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.draw   0% 7 7 0   0% 4 0   0%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.load   92% 13 1 0   50% 6 3   79%
python/lsst/ctrl/bps/clustered_quantum_graph.py ClusteredQuantumGraph.validate   100% 14 0 0   100% 12 0   100%
python/lsst/ctrl/bps/clustered_quantum_graph.py (no function)   100% 51 0 0   100% 0 0   100%
python/lsst/ctrl/bps/constants.py (no function)   100% 8 0 0   100% 0 0   100%
python/lsst/ctrl/bps/construct.py construct   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/construct.py create_custom_workflow   100% 13 0 0   100% 4 0   100%
python/lsst/ctrl/bps/construct.py create_custom_job   100% 30 0 0   93% 14 1   98%
python/lsst/ctrl/bps/construct.py create_job_files   100% 7 0 0   100% 2 0   100%
python/lsst/ctrl/bps/construct.py create_input_path   100% 7 0 0   100% 4 0   100%
python/lsst/ctrl/bps/construct.py create_output_path   100% 5 0 0   100% 2 0   100%
python/lsst/ctrl/bps/construct.py (no function)   100% 14 0 0   100% 0 0   100%
python/lsst/ctrl/bps/drivers.py _init_submission_driver   50% 8 4 0   100% 0 0   50%
python/lsst/ctrl/bps/drivers.py acquire_qgraph_driver   0% 8 8 0   100% 0 0   0%
python/lsst/ctrl/bps/drivers.py cluster_qgraph_driver   0% 14 14 0   0% 4 0   0%
python/lsst/ctrl/bps/drivers.py transform_driver   0% 18 18 0   0% 4 0   0%
python/lsst/ctrl/bps/drivers.py prepare_driver   0% 9 9 0   100% 0 0   0%
python/lsst/ctrl/bps/drivers.py submit_driver   0% 33 33 0   0% 10 0   0%
python/lsst/ctrl/bps/drivers.py restart_driver   0% 16 16 0   0% 8 0   0%
python/lsst/ctrl/bps/drivers.py report_driver   100% 14 0 0   100% 10 0   100%
python/lsst/ctrl/bps/drivers.py status_driver   100% 8 0 0   100% 4 0   100%
python/lsst/ctrl/bps/drivers.py cancel_driver   0% 4 4 0   0% 2 0   0%
python/lsst/ctrl/bps/drivers.py ping_driver   100% 12 0 0   100% 8 0   100%
python/lsst/ctrl/bps/drivers.py submitcmd_driver   0% 32 32 0   0% 6 0   0%
python/lsst/ctrl/bps/drivers.py _log_mem_usage   0% 2 2 0   0% 2 0   0%
python/lsst/ctrl/bps/drivers.py (no function)   100% 35 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowFile.__hash__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowExec.__hash__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowNode.__hash__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowNode.node_type   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowNoopJob.node_type   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowJob.node_type   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.__init__   100% 10 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.__new__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.name   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.quanta_counts   100% 6 0 0   100% 4 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.labels   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.regenerate_labels   100% 16 0 0   100% 12 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.job_counts   86% 7 1 0   75% 4 1   82%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.__iter__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_files   100% 1 0 0   50% 2 1   67%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_files   100% 1 0 0   50% 2 1   67%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_files   100% 7 0 0   100% 6 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_job   100% 14 0 0   100% 6 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_node   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_job_relationships   100% 3 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_edges_from   100% 2 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_edge   100% 5 0 0   100% 4 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.del_job   100% 7 0 0   50% 2 1   89%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_job_inputs   100% 5 0 0   100% 4 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_file   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_file   100% 3 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job_inputs   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job_inputs   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job_inputs   100% 8 0 0   100% 8 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_job_outputs   100% 5 0 0   75% 4 1   89%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job_outputs   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job_outputs   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_job_outputs   82% 11 2 0   70% 10 3   76%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.draw   75% 4 1 0   50% 2 1   67%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.save   100% 4 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.load   100% 6 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.validate   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_workflow_source   100% 16 0 0   88% 8 1   96%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_final   80% 5 1 0   50% 4 2   67%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_final   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_executable   100% 3 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_executables   100% 1 0 0   50% 2 1   67%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_executables   100% 0 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_executables   100% 10 0 0   88% 8 1   94%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.get_jobs_by_label   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._check_job_ordering_config   100% 26 0 0   100% 16 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._group_jobs_by_values   100% 11 0 0   100% 6 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._group_jobs_by_dependencies   100% 37 0 0   100% 20 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._update_by_group_sort   100% 9 0 0   100% 4 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._replace_subgraph_with_job_group   100% 26 0 0   100% 12 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow.add_special_job_ordering   89% 18 2 0   88% 8 1   88%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._update_by_noop_sort   100% 11 0 0   100% 4 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflow._update_single_noop   100% 13 0 0   88% 8 1   95%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowGroup.node_type   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowGroup.__init__   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.__init__   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.labels   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.job_counts   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.get_jobs_by_label   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.add_job   100% 9 0 0   100% 4 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.add_job_relationships   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.del_job   100% 7 0 0   100% 2 0   100%
python/lsst/ctrl/bps/generic_workflow.py GenericWorkflowLabels.subgraph   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/generic_workflow.py (no function)   100% 200 0 0   50% 10 5   98%
python/lsst/ctrl/bps/initialize.py init_submission   100% 35 0 0   100% 16 0   100%
python/lsst/ctrl/bps/initialize.py output_run_validator   100% 2 0 0   100% 2 0   100%
python/lsst/ctrl/bps/initialize.py submit_path_validator   100% 2 0 0   100% 2 0   100%
python/lsst/ctrl/bps/initialize.py out_collection_validator   100% 2 0 0   100% 2 0   100%
python/lsst/ctrl/bps/initialize.py custom_job_validator   0% 2 2 0   0% 2 0   0%
python/lsst/ctrl/bps/initialize.py (no function)   100% 16 0 0   100% 0 0   100%
python/lsst/ctrl/bps/ping.py ping   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/ping.py (no function)   100% 5 0 0   100% 0 0   100%
python/lsst/ctrl/bps/pre_transform.py acquire_quantum_graph   0% 24 24 0   0% 10 0   0%
python/lsst/ctrl/bps/pre_transform.py execute   100% 15 0 0   100% 2 0   100%
python/lsst/ctrl/bps/pre_transform.py create_quantum_graph   100% 11 0 0   100% 4 0   100%
python/lsst/ctrl/bps/pre_transform.py update_quantum_graph   100% 16 0 0   100% 6 0   100%
python/lsst/ctrl/bps/pre_transform.py cluster_quanta   100% 6 0 0   100% 2 0   100%
python/lsst/ctrl/bps/pre_transform.py (no function)   100% 21 0 0   100% 0 0   100%
python/lsst/ctrl/bps/prepare.py prepare   0% 12 12 0   0% 6 0   0%
python/lsst/ctrl/bps/prepare.py (no function)   100% 9 0 0   100% 0 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py single_quantum_clustering   100% 22 0 0   92% 12 1   97%
python/lsst/ctrl/bps/quantum_clustering_funcs.py check_clustering_config   100% 40 0 0   95% 22 1   98%
python/lsst/ctrl/bps/quantum_clustering_funcs.py dimension_clustering   100% 13 0 0   100% 6 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py add_clusters_per_quantum   100% 13 0 0   100% 6 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py _get_dim_config_settings   100% 13 0 0   100% 6 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py partition_cluster_values   100% 36 0 0   100% 16 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py add_dim_clusters   100% 16 0 0   100% 10 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py add_cluster_dependencies   100% 7 0 5   100% 6 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py add_dim_clusters_dependency   98% 47 1 0   96% 26 1   97%
python/lsst/ctrl/bps/quantum_clustering_funcs.py make_and_add_clusters   100% 17 0 0   100% 12 0   100%
python/lsst/ctrl/bps/quantum_clustering_funcs.py get_cluster_name_from_info   100% 30 0 0   94% 16 1   98%
python/lsst/ctrl/bps/quantum_clustering_funcs.py (no function)   100% 22 0 0   100% 0 0   100%
python/lsst/ctrl/bps/report.py display_report   19% 36 29 0   25% 16 2   21%
python/lsst/ctrl/bps/report.py retrieve_report   93% 15 1 0   93% 14 1   93%
python/lsst/ctrl/bps/report.py (no function)   100% 11 0 0   100% 0 0   100%
python/lsst/ctrl/bps/restart.py restart   0% 5 5 0   0% 2 0   0%
python/lsst/ctrl/bps/restart.py (no function)   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/status.py status   100% 6 0 0   100% 0 0   100%
python/lsst/ctrl/bps/status.py (no function)   100% 8 0 0   100% 0 0   100%
python/lsst/ctrl/bps/submit.py submit   0% 8 8 0   0% 2 0   0%
python/lsst/ctrl/bps/submit.py (no function)   100% 8 0 0   100% 0 0   100%
python/lsst/ctrl/bps/tests/config_test_utils.py generate_config_1   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/tests/config_test_utils.py generate_config_2   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/tests/config_test_utils.py generate_config_all   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/tests/config_test_utils.py generate_value_1   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/tests/config_test_utils.py (no function)   100% 6 0 0   100% 0 0   100%
python/lsst/ctrl/bps/tests/gw_test_utils.py make_3_label_workflow   100% 17 0 0   100% 8 0   100%
python/lsst/ctrl/bps/tests/gw_test_utils.py make_3_label_workflow_noop_sort   100% 26 0 0   93% 14 1   98%
python/lsst/ctrl/bps/tests/gw_test_utils.py make_3_label_workflow_groups_sort   100% 31 0 0   94% 18 1   98%
python/lsst/ctrl/bps/tests/gw_test_utils.py make_5_label_workflow   100% 34 0 0   94% 18 1   98%
python/lsst/ctrl/bps/tests/gw_test_utils.py make_5_label_workflow_2_groups   98% 52 1 0   89% 28 3   95%
python/lsst/ctrl/bps/tests/gw_test_utils.py make_5_label_workflow_middle_groups   98% 50 1 0   88% 32 4   94%
python/lsst/ctrl/bps/tests/gw_test_utils.py compare_generic_workflows   63% 38 14 0   61% 18 7   62%
python/lsst/ctrl/bps/tests/gw_test_utils.py (no function)   100% 17 0 0   100% 0 0   100%
python/lsst/ctrl/bps/transform.py transform   0% 6 6 0   0% 2 0   0%
python/lsst/ctrl/bps/transform.py add_workflow_init_nodes   100% 3 0 0   100% 0 0   100%
python/lsst/ctrl/bps/transform.py create_init_workflow   100% 20 0 0   75% 4 1   96%
python/lsst/ctrl/bps/transform.py _enhance_command   79% 38 8 0   77% 22 3   78%
python/lsst/ctrl/bps/transform.py _fill_arguments   0% 14 14 0   0% 8 0   0%
python/lsst/ctrl/bps/transform.py _get_qgraph_gwfile   80% 5 1 0   50% 2 1   71%
python/lsst/ctrl/bps/transform.py _get_job_values   100% 37 0 0   88% 24 3   95%
python/lsst/ctrl/bps/transform.py _handle_job_values   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/transform.py _handle_job_values_universal   67% 12 4 0   83% 6 1   72%
python/lsst/ctrl/bps/transform.py _handle_job_values_max   44% 18 10 0   36% 14 3   41%
python/lsst/ctrl/bps/transform.py _handle_job_values_sum   80% 5 1 0   75% 4 1   78%
python/lsst/ctrl/bps/transform.py create_generic_workflow   95% 65 3 0   79% 24 5   91%
python/lsst/ctrl/bps/transform.py create_generic_workflow_config   100% 4 0 0   100% 0 0   100%
python/lsst/ctrl/bps/transform.py add_final_job   62% 8 3 0   33% 6 2   50%
python/lsst/ctrl/bps/transform.py create_final_job   100% 19 0 0   80% 10 2   93%
python/lsst/ctrl/bps/transform.py create_final_command   100% 24 0 0   100% 4 0   100%
python/lsst/ctrl/bps/transform.py add_final_job_as_sink   0% 4 4 0   100% 0 0   0%
python/lsst/ctrl/bps/transform.py (no function)   100% 36 0 0   100% 0 0   100%
python/lsst/ctrl/bps/version.py (no function)   100% 5 0 0   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py WmsSpecificInfo.__init__   100% 2 0 0   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py WmsSpecificInfo.__bool__   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/wms_service.py WmsSpecificInfo.__str__   100% 4 0 0   100% 2 0   100%
python/lsst/ctrl/bps/wms_service.py WmsSpecificInfo.context   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py WmsSpecificInfo.templates   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py WmsSpecificInfo.add_message   100% 14 0 0   100% 4 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.__init__   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.defaults   100% 1 0 0   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.defaults_uri   0% 1 1 0   100% 0 0   0%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.prepare   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.submit   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.restart   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.list_submitted_jobs   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.report   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.get_status   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.cancel   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.run_submission_checks   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsService.ping   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsWorkflow.__init__   0% 5 5 0   100% 0 0   0%
python/lsst/ctrl/bps/wms_service.py BaseWmsWorkflow.from_generic_workflow   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py BaseWmsWorkflow.write   100% 0 0 1   100% 0 0   100%
python/lsst/ctrl/bps/wms_service.py (no function)   100% 106 0 0   100% 0 0   100%
tests/cqg_test_utils.py check_cqg   100% 4 0 0   50% 2 1   83%
tests/cqg_test_utils.py replace_node_name   100% 9 0 0   100% 2 0   100%
tests/cqg_test_utils.py dump_cqg   100% 16 0 0   100% 10 0   100%
tests/cqg_test_utils.py compare_cqg_dicts   100% 10 0 0   100% 2 0   100%
tests/cqg_test_utils.py make_test_clustered_quantum_graph   100% 59 0 0   100% 4 0   100%
tests/cqg_test_utils.py make_test_clustered_quantum_graph.get_add_quantum_args   100% 2 0 0   100% 0 0   100%
tests/cqg_test_utils.py (no function)   100% 8 0 0   100% 0 0   100%
tests/qg_test_utils.py _make_quantum   0% 15 15 0   0% 4 0   0%
tests/qg_test_utils.py make_test_helper   100% 13 0 0   100% 0 0   100%
tests/qg_test_utils.py make_test_quantum_graph   100% 8 0 0   100% 2 0   100%
tests/qg_test_utils.py (no function)   100% 60 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReport.add   100% 2 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.setUp   100% 4 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.testEquality   100% 4 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.testInequality   100% 3 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.testLength   100% 1 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.testClear   100% 2 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.testSortWithKnownKey   100% 11 0 0   100% 0 0   100%
tests/test_bps_reports.py FakeRunReportTestCase.testSortWithUnknownKey   100% 2 0 0   100% 0 0   100%
tests/test_bps_reports.py SummaryRunReportTestCase.setUp   100% 7 0 0   100% 0 0   100%
tests/test_bps_reports.py SummaryRunReportTestCase.tearDown   100% 2 0 0   100% 0 0   100%
tests/test_bps_reports.py SummaryRunReportTestCase.testAddWithNoFlag   100% 4 0 0   100% 0 0   100%
tests/test_bps_reports.py SummaryRunReportTestCase.testAddWithFailedFlag   100% 6 0 0   100% 0 0   100%
tests/test_bps_reports.py SummaryRunReportTestCase.testAddWithHeldFlag   100% 6 0 0   100% 0 0   100%
tests/test_bps_reports.py SummaryRunReportTestCase.testAddWithDeletedFlag   100% 6 0 0   100% 0 0   100%
tests/test_bps_reports.py DetailedRunReportTestCase.setUp   100% 8 0 0   100% 0 0   100%
tests/test_bps_reports.py DetailedRunReportTestCase.testAddWithJobSummary   100% 3 0 0   100% 0 0   100%
tests/test_bps_reports.py DetailedRunReportTestCase.testAddWithoutJobSummary   100% 5 0 0   100% 0 0   100%
tests/test_bps_reports.py DetailedRunReportTestCase.testAddWithoutRunSummary   100% 9 0 0   100% 0 0   100%
tests/test_bps_reports.py ExitCodesReportTestCase.setUp   100% 7 0 0   100% 0 0   100%
tests/test_bps_reports.py ExitCodesReportTestCase.testAddSuccess   100% 3 0 0   100% 0 0   100%
tests/test_bps_reports.py ExitCodesReportTestCase.testAddFailure   100% 5 0 0   100% 0 0   100%
tests/test_bps_reports.py ExitCodesReportTestCase.testAddWithoutRunSummary   100% 3 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileJobSummaryTestCase.setUp   100% 1 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileJobSummaryTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileJobSummaryTestCase.testSummaryExists   100% 5 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileJobSummaryTestCase.testSummaryMissing   100% 4 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileJobSummaryTestCase.testCompilationError   100% 4 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.setUp   100% 1 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.testAddingMissingEntries   100% 4 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.testDetectingMismatches   100% 6 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.testDetectingOmissions   100% 6 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.testDetectingDiscrepancies   100% 7 0 0   100% 0 0   100%
tests/test_bps_reports.py CompileCodeSummaryTestCase.testHandlingNoJobSummary   100% 5 0 0   100% 0 0   100%
tests/test_bps_reports.py (no function)   100% 47 0 2   100% 0 0   100%
tests/test_bps_utils.py TestMkdir.setUp   100% 1 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMkdir.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMkdir.testSuccess   100% 3 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMkdir.testFailureDirectoryExists   100% 4 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMkdir.testFailureOther   100% 3 0 0   100% 0 0   100%
tests/test_bps_utils.py TestChdir.setUp   100% 1 0 0   100% 0 0   100%
tests/test_bps_utils.py TestChdir.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bps_utils.py TestChdir.testSuccessfulChdir   100% 5 0 0   100% 0 0   100%
tests/test_bps_utils.py TestChdir.testFailingChdir   75% 4 1 0   100% 0 0   75%
tests/test_bps_utils.py TestMakeIdLink.setUp   100% 1 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testMakeIdLinkFalse   100% 9 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testNoRunID   100% 9 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testSuccessfulLink   100% 12 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testSubmitDoesNotExist   100% 10 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testLinkAlreadyExists   100% 14 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testFileExistsError   100% 12 0 0   100% 0 0   100%
tests/test_bps_utils.py TestMakeIdLink.testPermissionError   100% 12 0 0   100% 0 0   100%
tests/test_bps_utils.py TestBpsEval.testBuiltIn   100% 4 0 0   100% 0 0   100%
tests/test_bps_utils.py (no function)   100% 30 0 2   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.setUp   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testFromFilename   100% 6 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testFromDict   100% 6 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testFromConfig   100% 7 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testFromBpsConfig   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testDefaultsInclusion   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testDefaultsOverride   100% 5 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testWmsFromCmdline   100% 5 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testWmsFromConfig   100% 6 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testWmsFromEnv   100% 5 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testWmsFromDefaults   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testDefaultsExclusion   100% 6 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigConstructor.testInvalidArg   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGet.setUp   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGet.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGet.testKeyExistsNoDefault   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGet.testKeyExistsDefaultProvided   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGet.testKeyMissingNoDefault   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGet.testKeyMissingDefaultProvided   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.setUp   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testSectionSearchOrder   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testCurrentValues   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testSearchobjValues   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testSubsectionSearch   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testDefault   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testReplaceVars   100% 5 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testReplaceVarsSkipNames   100% 5 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testVariables   100% 32 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testRequired   100% 2 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testS3Path   100% 7 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testSubDirTemplate   100% 21 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigSearch.testOtherTemplate   100% 6 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.setUp   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testUnparsableValue   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testMissingParen   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testBadFunctionName   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testBadModuleName   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testBadParamName   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testExtraParam   100% 3 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testWithSearchOrder   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testBpsEval   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testBpsEvalBuiltin   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py TestBpsConfigGenerateConfig.testBpsEvalInvalid   100% 4 0 0   100% 0 0   100%
tests/test_bpsconfig.py (no function)   100% 55 0 2   100% 0 0   100%
tests/test_cli_commands.py TestCatchErrors.testSuccess   100% 0 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCatchErrors.testSubprocessFailure   100% 7 0 0   100% 2 0   100%
tests/test_cli_commands.py TestCatchErrors.testSubprocessFailure.driver   100% 1 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCatchErrors.testFailure   100% 4 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCatchErrors.testFailure.driver   100% 1 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandPing.setUp   100% 1 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandPing.testPingNoArgs   100% 5 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandPing.testPingClass   100% 5 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandPing.testPingFailure   100% 5 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandPing.testPingPassthru   100% 5 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandStatus.setUp   100% 1 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandStatus.testStatusSuccess   100% 5 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandStatus.testStatusMissingIDCommandLine   100% 4 0 0   100% 0 0   100%
tests/test_cli_commands.py TestCommandStatus.testStatusNonZeroStatus   100% 5 0 0   100% 0 0   100%
tests/test_cli_commands.py (no function)   100% 21 0 2   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.setUp   100% 4 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testQgraphNodeIds   100% 2 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testQuantaCountsNone   100% 2 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testQuantaCounts   100% 2 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testAddQuantum   100% 3 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testStr   100% 4 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testEqual   100% 3 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testNotEqual   100% 3 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestQuantaCluster.testHash   100% 3 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.setUp   100% 2 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testName   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testQgraph   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testGetClusterExists   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testGetClusterMissing   100% 2 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testClusters   100% 6 0 0   100% 2 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testSuccessorsExisting   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testSuccessorsNone   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testPredecessorsExisting   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testPredecessorsNone   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testSaveAndLoad   100% 5 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testValidateOK   100% 1 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testValidateBadTagLabel   100% 4 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testValidateNotDAG   100% 5 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testValidateMissingQuanta   100% 4 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py TestClusteredQuantumGraph.testValidateDuplicateId   100% 9 0 0   100% 0 0   100%
tests/test_clustered_quantum_graph.py (no function)   100% 39 0 2   100% 0 0   100%
tests/test_construct.py ConstructTestCase.setUp   100% 3 0 0   100% 0 0   100%
tests/test_construct.py ConstructTestCase.tearDown   100% 2 0 0   100% 0 0   100%
tests/test_construct.py ConstructTestCase.testConstructSuccess   100% 5 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomWorkflowTestCase.setUp   100% 3 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomWorkflowTestCase.tearDown   100% 2 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomWorkflowTestCase.testSuccess   100% 14 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomWorkflowTestCase.testEmptyInputs   100% 8 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomWorkflowTestCase.testEmptyOutputs   100% 8 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomWorkflowTestCase.testEmptyInputsAndOutputs   100% 7 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomJobTestCase.setUp   100% 3 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomJobTestCase.tearDown   100% 2 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomJobTestCase.testJobCreationNoFilesSuccess   100% 14 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomJobTestCase.testJobCreationWithFilesSuccess   100% 15 0 0   100% 0 0   100%
tests/test_construct.py CreateCustomJobTestCase.testJobCreationMissingExecutable   100% 3 0 0   100% 0 0   100%
tests/test_construct.py CreateJobFilesTestCase.setUp   100% 2 0 0   100% 0 0   100%
tests/test_construct.py CreateJobFilesTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_construct.py CreateJobFilesTestCase.testJobFileCreationNoFiles   100% 4 0 0   100% 0 0   100%
tests/test_construct.py CreateJobFilesTestCase.testJobFileCreationWithFiles   100% 8 0 0   100% 0 0   100%
tests/test_construct.py CreateInputPathTestCase.setUp   100% 5 0 0   100% 0 0   100%
tests/test_construct.py CreateInputPathTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_construct.py CreateInputPathTestCase.testInputPathCreationSuccess   100% 8 0 0   100% 0 0   100%
tests/test_construct.py CreateInputPathTestCase.testInputPathCreationFileIsMissing   100% 3 0 0   100% 0 0   100%
tests/test_construct.py CreateInputPathTestCase.testInputPathCreationFileIsDirectory   100% 3 0 0   100% 0 0   100%
tests/test_construct.py CreateInputPathTestCase.testInputPathCreationPermissionError   100% 3 0 0   100% 0 0   100%
tests/test_construct.py CreateOutputPathTestCase.setUp   100% 2 0 0   100% 0 0   100%
tests/test_construct.py CreateOutputPathTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_construct.py CreateOutputPathTestCase.testOutputPathCreationRelativePathNew   100% 5 0 0   100% 0 0   100%
tests/test_construct.py CreateOutputPathTestCase.testOutputPathCreationRelativePathParentExits   100% 7 0 0   100% 0 0   100%
tests/test_construct.py CreateOutputPathTestCase.testOutputPathCreationAbsolutePath   100% 5 0 0   100% 0 0   100%
tests/test_construct.py (no function)   100% 42 0 0   100% 0 0   100%
tests/test_drivers.py TestInitSubmissionDriver.setUp   100% 2 0 0   100% 0 0   100%
tests/test_drivers.py TestInitSubmissionDriver.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_drivers.py TestInitSubmissionDriver.testDeprecatedOutCollection   100% 5 0 0   100% 0 0   100%
tests/test_drivers.py TestInitSubmissionDriver.testMissingOutputRun   100% 5 0 0   100% 0 0   100%
tests/test_drivers.py TestInitSubmissionDriver.testMissingSubmitPath   100% 5 0 0   100% 0 0   100%
tests/test_drivers.py TestPingDriver.testWmsServiceSuccess   100% 2 0 0   100% 0 0   100%
tests/test_drivers.py TestPingDriver.testWmsServiceFailure   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestPingDriver.testWmsServiceEnvVar   100% 3 0 0   100% 0 0   100%
tests/test_drivers.py TestPingDriver.testWmsServiceNone   100% 5 0 0   100% 0 0   100%
tests/test_drivers.py TestPingDriver.testWmsServicePassThru   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestStatusDriver.testWmsServiceSuccess   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestStatusDriver.testWmsServiceFailure   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestStatusDriver.testWmsServiceNone   100% 3 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testWmsServiceFromDefaults   100% 2 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testWmsServiceFromEnvVar   100% 2 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testHistDefault   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testHistCustom   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testPostprocessorsWithoutExitCodes   100% 5 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testPostprocessorsWithExitCodes   100% 6 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testPostprocessorsNoRunId   100% 4 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testDisplayCalledIfRuns   100% 6 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testDisplayCalledIfMessages   100% 6 0 0   100% 0 0   100%
tests/test_drivers.py TestReportDriver.testNoRecordsFoundMessage   100% 7 0 0   100% 0 0   100%
tests/test_drivers.py (no function)   100% 60 0 2   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowNode.testNoNodeType   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowNode.testHash   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowJob.testEquality   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.setUp   100% 7 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobDuplicate   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobValid   100% 6 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddNode   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobRelationshipsSingle   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobRelationshipsMultiChild   100% 9 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobRelationshipsMultiParents   100% 9 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobRelationshipsNone   100% 6 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetJobExists   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetJobError   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddEdgeBadParent   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddEdgeBadChild   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testQuantaCounts   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetExecutablesNames   100% 6 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetExecutablesData   100% 6 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddFileTwice   100% 6 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetFilesNames   100% 7 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetFilesData   100% 8 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testJobInputs   100% 10 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testSaveInvalidFormat   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testLoadInvalidFormat   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testValidate   100% 7 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testValidateGroups   100% 2 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testSavePickle   100% 9 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testDrawBadFormat   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testLabels   100% 7 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testRegenerateLabels   100% 11 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testJobCounts   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testJobCountsFinal   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testDelJob   100% 9 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddWorkflowSource   100% 25 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGetJobsByLabel   100% 7 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobInvalidType   100% 12 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobInvalidType.GenericWorkflowNodeNoInherit.__hash__   0% 1 1 0   100% 0 0   0%
tests/test_generic_workflow.py TestGenericWorkflow.testAddJobInvalidType.GenericWorkflowNodeNoInherit.node_type   0% 1 1 0   100% 0 0   0%
tests/test_generic_workflow.py TestGenericWorkflow.testGroupJobsByDependencies   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGroupJobsByDependenciesSource   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testGroupJobsByDependenciesBadMethod   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testCheckJobOrderingConfigBadImplementation   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testCheckJobOrderingConfigBadType   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testCheckJobOrderingConfigBadLabel   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testCheckJobOrderingConfigUnusedLabel   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testCheckJobOrderingConfigMissingDim   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testCheckJobOrderingConfigSort   100% 7 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddSpecialJobOrderingNoopSort   100% 10 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddSpecialJobOrderingGroupSort   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testAddSpecialJobOrderingGroupSortSink   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testMiddleGroupValues   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testMiddleGroupSink   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testMiddleGroupSource   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testMiddleGroupValuesUneven   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testMiddleGroupSinkUneven   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.testMiddleGroupSourceUneven   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.test2GroupsEven   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflow.test2GroupsUneven   100% 4 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testEmptyLabels   100% 2 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testEmptyJobCounts   100% 2 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testEmptyGetJobsByLabel   100% 2 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testAddJobFirst   100% 5 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testAddJobMult   100% 17 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testDelJobRemain   100% 14 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testDelJobLast   100% 16 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testAddSpecialJobOrderingBadType   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testAddSpecialJobOrderingBadLabel   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testAddSpecialJobOrderingBadDim   100% 3 0 0   100% 0 0   100%
tests/test_generic_workflow.py TestGenericWorkflowLabels.testAddSpecialJobOrderingSort   100% 11 0 0   100% 2 0   100%
tests/test_generic_workflow.py (no function)   100% 81 0 2   100% 0 0   100%
tests/test_initialize.py TestOutCollectionValidator.testSuccess   100% 2 0 0   100% 0 0   100%
tests/test_initialize.py TestOutCollectionValidator.testFailure   100% 3 0 0   100% 0 0   100%
tests/test_initialize.py TestOutputRunValidator.testSuccess   100% 2 0 0   100% 0 0   100%
tests/test_initialize.py TestOutputRunValidator.testFailure   100% 3 0 0   100% 0 0   100%
tests/test_initialize.py TestSubmitPathValidator.testSuccess   100% 2 0 0   100% 0 0   100%
tests/test_initialize.py TestSubmitPathValidator.testFailure   100% 3 0 0   100% 0 0   100%
tests/test_initialize.py TestInitSubmission.setUp   100% 1 0 0   100% 0 0   100%
tests/test_initialize.py TestInitSubmission.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_initialize.py TestInitSubmission.testBasicSuccess   100% 19 0 0   100% 0 0   100%
tests/test_initialize.py TestInitSubmission.testMissingWmsServiceClass   100% 3 0 0   100% 0 0   100%
tests/test_initialize.py TestInitSubmission.testSubmissionChecksNotImplemented   100% 13 0 0   100% 0 0   100%
tests/test_initialize.py TestInitSubmission.testAlreadySet   100% 6 0 0   100% 0 0   100%
tests/test_initialize.py (no function)   100% 27 0 0   100% 0 0   100%
tests/test_ping.py TestPing.setUp   100% 2 0 0   100% 0 0   100%
tests/test_ping.py TestPing.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_ping.py TestPing.testSuccess   100% 3 0 0   100% 0 0   100%
tests/test_ping.py TestPing.testFailed   100% 5 0 0   100% 0 0   100%
tests/test_ping.py TestPing.testPassThru   100% 6 0 0   100% 0 0   100%
tests/test_ping.py (no function)   100% 9 0 2   100% 0 0   100%
tests/test_pre_transform.py TestExecute.setUp   100% 2 0 0   100% 0 0   100%
tests/test_pre_transform.py TestExecute.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_pre_transform.py TestExecute.testSuccessfulExecution   100% 10 0 0   100% 0 0   100%
tests/test_pre_transform.py TestExecute.testFailingExecution   100% 3 0 0   100% 0 0   100%
tests/test_pre_transform.py TestCreatingQuantumGraph.setUp   100% 3 0 0   100% 0 0   100%
tests/test_pre_transform.py TestCreatingQuantumGraph.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_pre_transform.py TestCreatingQuantumGraph.testSuccess   100% 6 0 0   100% 0 0   100%
tests/test_pre_transform.py TestCreatingQuantumGraph.testCommandMissing   100% 4 0 0   100% 0 0   100%
tests/test_pre_transform.py TestCreatingQuantumGraph.testFailure   100% 6 0 0   100% 0 0   100%
tests/test_pre_transform.py TestUpdatingQuantumGraph.setUp   100% 6 0 0   100% 0 0   100%
tests/test_pre_transform.py TestUpdatingQuantumGraph.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_pre_transform.py TestUpdatingQuantumGraph.testSuccess   100% 10 0 0   100% 0 0   100%
tests/test_pre_transform.py TestUpdatingQuantumGraph.testSuccessInPlace   100% 7 0 0   100% 0 0   100%
tests/test_pre_transform.py TestUpdatingQuantumGraph.testCommandMissing   100% 4 0 0   100% 0 0   100%
tests/test_pre_transform.py TestUpdatingQuantumGraph.testFailure   100% 6 0 0   100% 0 0   100%
tests/test_pre_transform.py TestClusterQuanta.testValidate   100% 7 0 0   100% 0 0   100%
tests/test_pre_transform.py TestClusterQuanta.testNoValidate   100% 6 0 0   100% 0 0   100%
tests/test_pre_transform.py (no function)   100% 36 0 2   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestSingleQuantumClustering.setUp   100% 1 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestSingleQuantumClustering.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestSingleQuantumClustering.testClustering   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestSingleQuantumClustering.testClusteringNoTemplate   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.setUp   100% 1 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterAllInOne   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterTemplate   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterNoDims   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterTaskRepeat   100% 4 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterMissingDimValue   100% 3 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterEqualDim1   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterEqualDim2   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterMult   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterPart   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterPartNoTemplate   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterExtra   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterCycle   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterDepends   100% 3 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testClusterOrder   100% 7 0 0   100% 4 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testMissingMaxSize   100% 4 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testPartition   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSink   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSink2Clusters   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSinkMultDepends   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSource   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSource2Clusters   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSourceMultDepends   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesExtra   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSameCluster   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesBoth2Clusters   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesBadMethod   100% 4 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSinkUneven   100% 6 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSourceUneven   100% 6 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestDimensionClustering.testDependenciesSinkPartition   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testMissingSizing   100% 4 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testExtraSizing   100% 4 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testMaxSizeEven   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testMaxSizeUneven   100% 5 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testBadMaxClusters   100% 4 0 0   100% 0 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testMaxClustersEven   100% 8 0 0   100% 2 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testMaxClustersSomewhatUneven   100% 11 0 0   100% 4 0   100%
tests/test_quantum_clustering_funcs.py TestPartitionClusterValues.testMaxClustersUneven   100% 11 0 0   100% 4 0   100%
tests/test_quantum_clustering_funcs.py (no function)   100% 54 0 2   100% 0 0   100%
tests/test_report.py RetrieveReportTestCase.setUp   100% 1 0 0   100% 0 0   100%
tests/test_report.py RetrieveReportTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_report.py RetrieveReportTestCase.testRetrievalPostprocessingSuccessful   100% 4 0 0   100% 0 0   100%
tests/test_report.py RetrieveReportTestCase.testRetrievalPostprocessingFailed   100% 3 0 0   100% 0 0   100%
tests/test_report.py RetrieveReportTestCase.testRetrievalInvalidClass   100% 2 0 0   100% 0 0   100%
tests/test_report.py (no function)   100% 11 0 2   100% 0 0   100%
tests/test_status.py TestStatus.testSuccess   100% 3 0 0   100% 0 0   100%
tests/test_status.py TestStatus.testFailed   100% 3 0 0   100% 0 0   100%
tests/test_status.py (no function)   100% 6 0 2   100% 0 0   100%
tests/test_transform.py TestCreateGenericWorkflowConfig.testCreate   100% 7 0 0   100% 2 0   100%
tests/test_transform.py TestCreateGenericWorkflow.setUp   100% 3 0 0   100% 0 0   100%
tests/test_transform.py TestCreateGenericWorkflow.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_transform.py TestCreateGenericWorkflow.testCreatingGenericWorkflowGlobal   100% 17 0 0   100% 2 0   100%
tests/test_transform.py TestCreateGenericWorkflow.testCreatingQuantumGraphMixed   79% 28 6 0   75% 8 2   78%
tests/test_transform.py TestGetJobValues.setUp   100% 1 0 0   100% 0 0   100%
tests/test_transform.py TestGetJobValues.testGettingDefaults   100% 3 0 0   100% 0 0   100%
tests/test_transform.py TestGetJobValues.testEnablingMemoryScaling   100% 4 0 0   100% 0 0   100%
tests/test_transform.py TestGetJobValues.testDisablingMemoryScaling   100% 3 0 0   100% 0 0   100%
tests/test_transform.py TestGetJobValues.testRetrievingCmdLine   100% 6 0 0   100% 0 0   100%
tests/test_transform.py TestGetJobValues.testEnvironment   100% 4 0 0   100% 0 0   100%
tests/test_transform.py TestGetJobValues.testEnvironmentOptions   100% 9 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.setUp   100% 2 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.testSingleCommand   100% 9 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.testMultipleCommands   100% 9 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.testZeroCommands   100% 4 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.testWhiteSpaceOnlyCommand   100% 4 0 0   100% 0 0   100%
tests/test_transform.py TestCreateFinalCommand.testSkipCommandUsingWhiteSpace   100% 9 0 0   100% 0 0   100%
tests/test_transform.py TestEnhanceCommand.setUp   100% 3 0 0   100% 0 0   100%
tests/test_transform.py TestEnhanceCommand.testAttemptNum   100% 10 0 0   100% 0 0   100%
tests/test_transform.py TestEnhanceCommand.testKeyCachedCmdVal   100% 7 0 0   100% 0 0   100%
tests/test_transform.py TestEnhanceCommand.testS3Argument   100% 7 0 0   100% 0 0   100%
tests/test_transform.py (no function)   100% 37 0 2   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.setUp   100% 1 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.tearDown   100% 1 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testInitialization   100% 2 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testAddingValidMessageWithDictionary   100% 3 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testAddingValidMessageWithKeyVals   100% 3 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testAddingValidMessageMixed   100% 3 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testAddingInvalidMessageBadTemplate   100% 2 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testAddingInvalidMessageBadContext   100% 2 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testAddingInvalidMessageContextConflicts   100% 3 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testRenderingSingleMessage   100% 2 0 0   100% 0 0   100%
tests/test_wms_service.py WmsSpecificInfoTestCase.testRenderingMultipleMessages   100% 5 0 0   100% 0 0   100%
tests/test_wms_service.py (no function)   100% 14 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceSuccess.ping   100% 2 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceSuccess.report   100% 2 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceSuccess.get_status   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFailure.ping   100% 2 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFailure.report   100% 2 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFailure.get_status   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServicePassThru.ping   100% 2 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceDefault.ping   100% 2 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceDefault.get_status   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFromCmdline.defaults   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFromCmdline.defaults_path   0% 1 1 0   100% 0 0   0%
tests/wms_test_utils.py WmsServiceFromConfig.defaults   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFromConfig.defaults_path   0% 1 1 0   100% 0 0   0%
tests/wms_test_utils.py WmsServiceFromEnv.defaults   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFromEnv.defaults_path   0% 1 1 0   100% 0 0   0%
tests/wms_test_utils.py WmsServiceFromDefaults.defaults   100% 1 0 0   100% 0 0   100%
tests/wms_test_utils.py WmsServiceFromDefaults.defaults_path   0% 1 1 0   100% 0 0   0%
tests/wms_test_utils.py (no function)   100% 39 0 0   100% 0 0   100%
Total     92% 5636 437 43   80% 1088 98   90%

No items found using the specified filter.