Build: #1 failed

Job: Pipeline PR Test 6.6.6 failed

Stages & jobs

  1. Default Stage

Build log

The build generated 28,150 lines of output.   The output is too long and has been truncated to the last 1,000 lines. Download or view full build log.

02-Feb-2026 14:17:51 Requirement already satisfied: logutils~=0.3 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from Pipeline==2026.0.0.25+2.g2648439a1) (0.3.5)
02-Feb-2026 14:17:51 Requirement already satisfied: intervaltree~=3.1 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from Pipeline==2026.0.0.25+2.g2648439a1) (3.2.1)
02-Feb-2026 14:17:51 Requirement already satisfied: docstring-inheritance~=2.2 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from Pipeline==2026.0.0.25+2.g2648439a1) (2.3.0)
02-Feb-2026 14:17:51 Requirement already satisfied: bdsf~=1.13 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from Pipeline==2026.0.0.25+2.g2648439a1) (1.13.0.post2)
02-Feb-2026 14:17:51 Requirement already satisfied: ps_mem~=3.14 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from Pipeline==2026.0.0.25+2.g2648439a1) (3.14)
02-Feb-2026 14:17:51 Requirement already satisfied: mako~=1.3 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from Pipeline==2026.0.0.25+2.g2648439a1) (1.3.10)
02-Feb-2026 14:17:51 Requirement already satisfied: PyYAML>=3.13 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from astropy~=6.1->Pipeline==2026.0.0.25+2.g2648439a1) (6.0.3)
02-Feb-2026 14:17:51 Requirement already satisfied: pyerfa>=2.0.1.1 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from astropy~=6.1->Pipeline==2026.0.0.25+2.g2648439a1) (2.0.1.4)
02-Feb-2026 14:17:51 Requirement already satisfied: packaging>=19.0 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from astropy~=6.1->Pipeline==2026.0.0.25+2.g2648439a1) (24.1)
02-Feb-2026 14:17:51 Requirement already satisfied: astropy-iers-data>=0.2024.10.28.0.34.7 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from astropy~=6.1->Pipeline==2026.0.0.25+2.g2648439a1) (0.2026.2.2.0.48.1)
02-Feb-2026 14:17:51 Requirement already satisfied: backports.shutil-get-terminal-size in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from bdsf~=1.13->Pipeline==2026.0.0.25+2.g2648439a1) (1.0.0)
02-Feb-2026 14:17:51 Requirement already satisfied: scipy in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from bdsf~=1.13->Pipeline==2026.0.0.25+2.g2648439a1) (1.14.1)
02-Feb-2026 14:17:51 Requirement already satisfied: typing-extensions<5,>=4 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from docstring-inheritance~=2.2->Pipeline==2026.0.0.25+2.g2648439a1) (4.12.2)
02-Feb-2026 14:17:51 Requirement already satisfied: sortedcontainers in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from intervaltree~=3.1->Pipeline==2026.0.0.25+2.g2648439a1) (2.4.0)
02-Feb-2026 14:17:51 Requirement already satisfied: MarkupSafe>=0.9.2 in /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages (from mako~=1.3->Pipeline==2026.0.0.25+2.g2648439a1) (3.0.3)
02-Feb-2026 14:17:51 Building wheels for collected packages: Pipeline
02-Feb-2026 14:17:51   Building wheel for Pipeline (pyproject.toml): started
02-Feb-2026 14:17:51   Building wheel for Pipeline (pyproject.toml): finished with status 'done'
02-Feb-2026 14:17:51   Created wheel for Pipeline: filename=pipeline-2026.0.0.25+2.g2648439a1-py3-none-any.whl size=4344488 sha256=0e8019ef662e9ee14b1eec436654ddf97f39a6801835b44fcce7fdb4879b4446
02-Feb-2026 14:17:51   Stored in directory: /tmp/pip-ephem-wheel-cache-f5_3nl83/wheels/7e/4c/71/bd7963ad57705c5c4c611d608b708d19a5fa10d4d8417e129b
02-Feb-2026 14:17:51 Successfully built Pipeline
02-Feb-2026 14:17:51 Installing collected packages: Pipeline
02-Feb-2026 14:17:51 Successfully installed Pipeline-2026.0.0.25+2.g2648439a1
02-Feb-2026 14:17:51 stderr:
02-Feb-2026 14:17:51 stderr: [notice] A new release of pip available: 22.3.1 -> 26.0
02-Feb-2026 14:17:51 stderr: [notice] To update, run: pip install --upgrade pip
02-Feb-2026 14:17:51 0
02-Feb-2026 14:17:51 Executing: ['/home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/bin/python3', '-m', 'pytest', '/home/casatest/casa-build-utils/pipeline/workdir/pipeline/pipeline', '--junitxml=/home/casatest/casa-build-utils/pipeline/workdir/pipeline_test_result.xml']
02-Feb-2026 14:17:51 ============================= test session starts ==============================
02-Feb-2026 14:17:51 platform linux -- Python 3.10.12, pytest-8.3.2, pluggy-1.5.0 -- /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/bin/python3
02-Feb-2026 14:17:51 cachedir: .pytest_cache
02-Feb-2026 14:17:51 rootdir: /home/casatest/casa-build-utils/pipeline/workdir/pipeline
02-Feb-2026 14:17:51 configfile: pyproject.toml
02-Feb-2026 14:17:51 collecting ... collected 691 items
02-Feb-2026 14:17:51
02-Feb-2026 14:17:51 h/heuristics/importdata_test.py::test_get_ms_data_types_with_valid_history[msgs0-expected_dt_per_col0-expected_dt_per_src_spw0] PASSED [  0%]
02-Feb-2026 14:17:51 h/heuristics/importdata_test.py::test_get_ms_data_types_with_valid_history[msgs1-expected_dt_per_col1-expected_dt_per_src_spw1] PASSED [  0%]
02-Feb-2026 14:17:51 h/heuristics/linefinder_test.py::test_linefinder[spectrum0-7.0-False-mask0-None-expected0] PASSED [  0%]
02-Feb-2026 14:17:51 h/heuristics/linefinder_test.py::test_linefinder[spectrum1-7.0-False-mask1-None-expected1] PASSED [  0%]
02-Feb-2026 14:17:51 h/heuristics/linefinder_test.py::test_linefinder[spectrum2-7.0-True-mask2-None-expected2] PASSED [  0%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_linefinder[spectrum3-7.0-False-mask3-edge3-expected3] PASSED [  0%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_linefinder[spectrum4-7.0-False-mask4-None-expected4] PASSED [  1%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_tweak_lines[spectrum0-ranges0-edge0-1-expected0] PASSED [  1%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_tweak_lines[spectrum1-ranges1-edge1-1-expected1] PASSED [  1%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_tweak_lines[spectrum2-ranges2-edge2-1-expected2] PASSED [  1%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_tweak_lines[spectrum3-ranges3-edge3-1-expected3] PASSED [  1%]
02-Feb-2026 14:28:52 h/heuristics/linefinder_test.py::test_tweak_lines[spectrum4-ranges4-edge4-1-expected4] PASSED [  1%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param0] PASSED           [  1%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param1] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param2] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param3] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param4] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param5] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param6] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param7] PASSED           [  2%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param8] PASSED           [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_init_at[in_param9] PASSED           [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[1.0-57.29868849855063] PASSED [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[15.0-3.8637033051562737] PASSED [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[30.0-2.0] PASSED       [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[45.0-1.4142135623730951] PASSED [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[60.0-1.1547005383792515] PASSED [  3%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[75.0-1.035276180410083] PASSED [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_airmass[90.0-1.0] PASSED       [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_transmission[in_param0-0.7788007830714049] PASSED [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_transmission[in_param1-0.6065306597126334] PASSED [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_calc_transmission[in_param2-expected2] PASSED [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param0-47.97799117173652] PASSED [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param1-47.97692204026754] PASSED [  4%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param2-52.83346335445199] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param3-47.699469623464736] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param4-48.47759847965915] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param5-47.177987716625275] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param6-47.97799117173652] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param7-97.4814491261267] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param8-1.3969374062965147] PASSED [  5%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_dry_opacity[in_param9-44.69951867516774] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param0-45.69641110432566] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param1-22.863805083506872] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param2-48.14782023258896] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param3-45.69813369056101] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param4-45.70706972843769] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param5-45.694188468935124] PASSED [  6%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param6-45.69641110432566] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param7-1046.3702374546874] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param8-1.4276360828433052] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_wet_opacity[in_param9-45.68434620611521] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_test[in_param0-0.9813874324999965] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_test[in_param1-0.9631266292255092] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_test[in_param2-0.9779208925243648] PASSED [  7%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_spw_spec[15-expected0] SKIPPED  [  8%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_spw_spec[17-expected1] SKIPPED  [  8%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_median_elevation[0-51.137000119425466] SKIPPED [  8%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_median_elevation[1-51.13678069960953] SKIPPED [  8%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_median_elevation[2-51.13635643503322] SKIPPED [  8%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_transmission[0-15-0.8427800044848566] SKIPPED [  8%]
02-Feb-2026 14:28:52 h/tasks/common/atmutil_test.py::test_get_transmission[1-17-0.9685033492155325] SKIPPED [  8%]
02-Feb-2026 14:28:52 hifa/tasks/applycal/ampphase_vs_freq_qa_test.py::test_score_all_scans PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/applycal/mswrapper_test.py::test_create_averages_from_ms_fail_as_expected PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/applycal/mswrapper_test.py::test_create_averages_from_ms_works PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_spws_gets_correct_spw_list PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_science_spw_included_in_get_partialpol_spws PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_spws_gets_correct_datadescids_list PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_load_partialpols_alma_no_data PASSED [  9%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_flag_cmd_params[flags0-expected0] PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_flag_cmd_params[flags1-expected1] PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_flag_cmd_params[flags2-expected2] PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_flag_cmd_params[flags3-expected3] PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_get_partialpol_flag_cmd_params[flags4-expected4] PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_params_amd_commands_for_real_data PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_convert_params_to_commands[input_dict0-expected0] PASSED [ 10%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_convert_params_to_commands[input_dict1-expected1] PASSED [ 11%]
02-Feb-2026 14:28:52 hifa/tasks/flagging/flagdeteralma_test.py::test_convert_params_to_commands[input_dict2-expected2] PASSED [ 11%]
02-Feb-2026 14:28:52 hifa/tasks/importdata/almaimportdata_test.py::test_get_fluxes_primary_success PASSED [ 11%]
02-Feb-2026 14:28:52 hifa/tasks/importdata/almaimportdata_test.py::test_get_fluxes_backup_success PASSED [ 11%]
02-Feb-2026 14:28:52 hifa/tasks/importdata/almaimportdata_test.py::test_get_fluxes_both_fail_fallbacks PASSED [ 11%]
02-Feb-2026 14:28:52 hifa/tasks/importdata/almaimportdata_test.py::test_get_fluxes_dbservice_false PASSED [ 11%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Mars-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Jupiter-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Uranus-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Neptune-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Pluto-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Io-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Europa-Butler-JPL-Horizons 2012] PASSED [ 12%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Ganymede-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Callisto-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Titan-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Triton-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Ceres-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Pallas-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Vesta-Butler-JPL-Horizons 2012] PASSED [ 13%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Juno-Butler-JPL-Horizons 2012] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Victoria-Butler-JPL-Horizons 2012] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[Davida-Butler-JPL-Horizons 2012] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[3C286-Perley-Butler 2017] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[3C48-Perley-Butler 2017] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[3C138-Perley-Butler 2017] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/standard_test.py::test_standard[3C147-Perley-Butler 2017] PASSED [ 14%]
02-Feb-2026 14:28:52 hifv/heuristics/uvrange_test.py::test_uvrange[result0-] PASSED           [ 15%]
02-Feb-2026 14:28:52 hifv/heuristics/uvrange_test.py::test_uvrange[result1->100.0lambda] PASSED [ 15%]
02-Feb-2026 14:28:52 hifv/heuristics/uvrange_test.py::test_uvrange[result2-10.0~100.0lambda] PASSED [ 15%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_psw[0.4-0.05] PASSED [ 15%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_psw[combine_radius1-0.05] PASSED [ 15%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_psw[0.4-allowance_radius2] PASSED [ 15%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_psw[combine_radius3-allowance_radius3] PASSED [ 15%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_psw[combine_radius4-0.05] PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_psw[combine_radius5-0.05] PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_raster[0.249-0.01] PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_raster[combine_radius1-0.01] PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_raster[0.249-allowance_radius2] PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_raster[combine_radius3-allowance_radius3] PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_too_large_allowance_radius PASSED [ 16%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_moderate_allowance_radius PASSED [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_too_small_combine_radius PASSED [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_position_too_large_combine_radius PASSED [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_posiition_error PASSED   [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_threshold_for_time[time_list0-expected_gaps0] PASSED [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_threshold_for_time[time_list1-expected_gaps1] PASSED [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_time_psw[time_list0] PASSED [ 17%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_time_psw[time_list1] PASSED [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_time_raster[time_list0] PASSED [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_group_by_time_raster[time_list1] PASSED [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_merge_gap_tables_psw PASSED       [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/grouping2_test.py::test_merge_gap_tables_raster PASSED    [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-59625.npz] PASSED [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-60303.npz] PASSED [ 18%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-64636.npz] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-70674.npz] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-77519.npz] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-77933.npz] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-79274.npz] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/pointing_outlier_test.py::test_pointing_outlier_heuristics[/opt/pipeline-testdata/pl-unittest/sd-pointing-outlier/pointing_outlier_testcase_PRTSPR-80202.npz] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-True-0.0-1.0-0.1] PASSED [ 19%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-True-30.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-True-90.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-True-0.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-True-30.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-True-90.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-False-0.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-False-30.0-1.0-0.1] PASSED [ 20%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-False-90.0-1.0-0.1] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-False-0.0-1.0-0.1] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-False-30.0-1.0-0.1] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-False-90.0-1.0-0.1] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[True-True-0.0-0.5-0.1] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-True-0.0-0.5-0.1] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic[False-True-0.0-1.0-0.5] PASSED [ 21%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_rasterscan_heuristic_fail_psw PASSED [ 22%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_distance[x0-y0] PASSED           [ 22%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_distance[x1-y1] PASSED           [ 22%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_generate_histogram PASSED        [ 22%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_detect_peak PASSED               [ 22%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_histogram_peak PASSED       [ 22%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_shift_angle PASSED               [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_most_frequent PASSED        [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_refine_gaps PASSED               [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_create_range[peaks0-45-expected0] PASSED [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_create_range[peaks1-45-expected1] PASSED [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_create_range[peaks2-45-expected2] PASSED [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_angle_gap_by_range PASSED   [ 23%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[False-True-0.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[False-True-30.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[False-True-90.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[True-True-0.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[True-True-30.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[True-True-90.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[True-False-0.0-1.0-0.1] PASSED [ 24%]
02-Feb-2026 14:28:52 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[True-False-30.0-1.0-0.1] PASSED [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[True-False-90.0-1.0-0.1] PASSED [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[False-False-0.0-1.0-0.1] PASSED [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[False-False-30.0-1.0-0.1] PASSED [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_distance_gap[False-False-90.0-1.0-0.1] PASSED [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_angle_gap PASSED            [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-True-0.0-1.0-0.1] PASSED [ 25%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-True-30.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-True-90.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-True-0.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-True-30.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-True-90.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-False-0.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-False-30.0-1.0-0.1] PASSED [ 26%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-False-90.0-1.0-0.1] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-False-0.0-1.0-0.1] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-False-30.0-1.0-0.1] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-False-90.0-1.0-0.1] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[True-True-0.0-0.5-0.1] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-True-0.0-0.5-0.1] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_row[False-True-0.0-1.0-0.5] PASSED [ 27%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-True-0.0-1.0_0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-True-30.0-1.0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-True-90.0-1.0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-True-0.0-1.0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-True-30.0-1.0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-True-90.0-1.0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-False-0.0-1.0] PASSED [ 28%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-False-30.0-1.0] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-False-90.0-1.0] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-False-0.0-1.0] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-False-30.0-1.0] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-False-90.0-1.0] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[True-True-0.0-0.5] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-True-0.0-0.5] PASSED [ 29%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_get_raster_distance[False-True-0.0-1.0_1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-True-0.0-1.0-0.1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-True-30.0-1.0-0.1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-True-90.0-1.0-0.1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-True-0.0-1.0-0.1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-True-30.0-1.0-0.1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-True-90.0-1.0-0.1] PASSED [ 30%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-False-0.0-1.0-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-False-30.0-1.0-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-False-90.0-1.0-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-False-0.0-1.0-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-False-30.0-1.0-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-False-90.0-1.0-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[True-True-0.0-0.5-0.1] PASSED [ 31%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-True-0.0-0.5-0.1] PASSED [ 32%]
02-Feb-2026 14:28:53 hsd/heuristics/rasterscan_test.py::test_find_raster_gap[False-True-0.0-1.0-0.5] PASSED [ 32%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_atmcor[auto-auto] PASSED    [ 32%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_atmcor[0-0] PASSED          [ 32%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_atmcor[value2-expected2] PASSED [ 32%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_h0[2-2.0] PASSED            [ 32%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_h0[2000.0m-2.0] PASSED      [ 32%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_h0[2.0-2.0] PASSED          [ 33%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_h0[value3-expected3] PASSED [ 33%]
02-Feb-2026 14:28:53 hsd/tasks/atmcor/atmcor_test.py::test_inputs_h0[value4-2.0] PASSED       [ 33%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window0-expected0] PASSED [ 33%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window1-expected1] PASSED [ 33%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window2-expected2] PASSED [ 33%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window3-expected3] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window4-expected4] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window5-expected5] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[window6-expected6] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[{0: [0, 100]}-expected7] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[{0: [0, 100], 1: [[20, 70], [80, 90]]}-expected8] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[{0: None, 1: [20, 70]}-expected9] PASSED [ 34%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[{0: [0, 100], 1: None}-expected10] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/detection_test.py::test_channel_mode[{0: None, 1: None}-expected11] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[None-expected0-False] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[inp1-expected1-False] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[spline-expected2-False] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[inp3-expected3-False] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[poly-expected4-False] PASSED [ 35%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[inp5-expected5-False] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[inp6-expected6-False] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[inp7-expected7-False] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[badfunc-ValueError-True] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_func_dict[inp9-ValueError-True] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[None-expected0-False] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[2-expected1-False] PASSED [ 36%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[-1-expected2-False] PASSED [ 37%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[inp3-expected3-False] PASSED [ 37%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[automatic-expected4-False] PASSED [ 37%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[inp5-expected5-False] PASSED [ 37%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[inp6-expected6-False] PASSED [ 37%]
02-Feb-2026 14:28:53 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[inp7-expected7-False] PASSED [ 37%]
02-Feb-2026 14:28:54 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[bad-ValueError-True] PASSED [ 37%]
02-Feb-2026 14:28:54 hsd/tasks/baseline/worker_test.py::test_get_fit_order_dict[1.5-TypeError-True] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_shift[direction0-reference0-origin0-expected0] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_shift[direction1-reference1-origin1-expected1] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_shift[direction2-reference2-origin2-expected2] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_shift[direction3-reference3-origin3-expected3] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_shift_raise[direction0-reference0-origin0] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_shift_raise[direction1-reference1-origin1] PASSED [ 38%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_offset[direction0-reference0-expected0] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_offset[direction1-reference1-expected1] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_offset[direction2-reference2-expected2] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_offset[direction3-reference3-expected3] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_offset_raise[direction0-reference0] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_recover[30.0-20.0-org_direction0-37.34114334622996-28.563899711023446] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_recover[30.0-20.0-org_direction1-40.9388073847553-57.48507992443964] PASSED [ 39%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_convert[direction0-mepoch0-mposition0-B1950-expected_ra0-expected_dec0] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/direction_utils_test.py::test_direction_convert[direction1-mepoch1-mposition1-J2000-expected_ra1-expected_dec1] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/display_test.py::test_ch_to_freq[frequencies0-0.5-100.5] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/display_test.py::test_ch_to_freq[frequencies1-channels1-expected1] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/display_test.py::test_ch_to_freq[frequencies2-channels2-expected2] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/display_test.py::test_ch_to_freq[frequencies3--1-99.0] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/display_test.py::test_ch_to_freq[frequencies4-channels4-expected4] PASSED [ 40%]
02-Feb-2026 14:28:54 hsd/tasks/common/flagcmd_util_test.py::test_mjdsec2str[56839.91646527777-2014/07/01/21:59:42.599999] PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/flagcmd_util_test.py::test_mjdsec2str[56839.91647013888-2014/07/01/21:59:43.019999] PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/flagcmd_util_test.py::test_mjdsec2str[60414-2024/04/14/00:00:00.0000000] PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/flagcmd_util_test.py::test_mjdsec2str[60414.9999999999-2024/04/14/23:59:59.9999912] PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/flagcmd_util_test.py::test_mjdsec2str[60414.999999999985-2024/04/14/23:59:59.9999987] PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/observatory_policy_test.py::test_call_abstract_methods PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/observatory_policy_test.py::test_alma_imaging_policy PASSED [ 41%]
02-Feb-2026 14:28:54 hsd/tasks/common/observatory_policy_test.py::test_nro_imaging_policy PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datetime[56839.91646527777-expected0] PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datetime[56839.91647013888-expected1] PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datetime[60414-expected2] PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datetime[60414.9999999999-expected3] PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datetime[60414.999999999985-expected4] PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datestring[56839.91646527777-Tue Jul  1 21:59:42 2014 UTC] PASSED [ 42%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datestring[56839.91647013888-Tue Jul  1 21:59:43 2014 UTC] PASSED [ 43%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datestring[60414-Sun Apr 14 00:00:00 2024 UTC] PASSED [ 43%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datestring[60414.9999999999-Sun Apr 14 23:59:59 2024 UTC] PASSED [ 43%]
02-Feb-2026 14:28:54 hsd/tasks/common/utils_test.py::test_mjd_to_datestring[60414.999999999985-Sun Apr 14 23:59:59 2024 UTC] PASSED [ 43%]
02-Feb-2026 14:28:54 infrastructure/contfilehandler_test.py::test_cont_ranges[result0] PASSED [ 43%]
02-Feb-2026 14:28:54 infrastructure/contfilehandler_test.py::test_to_topo[214.5.0~215.5GHz;215.6~216.1GHz LSRK-msnames0-fields0-0-observing_run0-result0] PASSED [ 43%]
02-Feb-2026 14:28:54 infrastructure/contfilehandler_test.py::test_to_topo[230.4~230.7GHz;231.5~231.6GHz;232.3~232.4GHz SOURCE-msnames1-fields1-18-observing_run1-result1] PASSED [ 43%]
02-Feb-2026 14:28:54 infrastructure/daskhelpers_test.py::test_parallel_processing SKIPPED     [ 44%]
02-Feb-2026 14:28:54 infrastructure/daskhelpers_test.py::test_parallel_map SKIPPED (dask ...) [ 44%]
02-Feb-2026 14:28:54 infrastructure/daskhelpers_test.py::test_parallel_task_performance SKIPPED [ 44%]
02-Feb-2026 14:28:54 infrastructure/displays/plotpointings_test.py::test_select_tsys_field[same-id] PASSED [ 44%]
02-Feb-2026 14:28:54 infrastructure/displays/plotpointings_test.py::test_select_tsys_field[same-name] PASSED [ 44%]
02-Feb-2026 14:28:54 infrastructure/displays/plotpointings_test.py::test_select_tsys_field[partial-name] PASSED [ 44%]
02-Feb-2026 14:28:54 infrastructure/displays/plotpointings_test.py::test_select_tsys_field[no-valid-tsys-field] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/displays/plotpointings_test.py::test_select_tsys_field[double-quote-name] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_sanitize_ms[uid__A002_target.msXd3e89f_Xc53e-uid__A002_target.msXd3e89f_Xc53e] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_sanitize_ms[uid__A002_target.msXd3e89f_Xc53e.ms-uid__A002_target.msXd3e89f_Xc53e] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_sanitize_ms[uid__A002_target.msXd3e89f_Xc53e_target.ms-uid__A002_target.msXd3e89f_Xc53e] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_sanitize_ms[uid__A002_target.msXd3e89f_Xc53e_target.ms_target.ms-uid__A002_target.msXd3e89f_Xc53e] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_sanitize_ms[uid__A002_target.msXd3e89f_Xc53e_target.ms_target.ms.ms.ms.ms-uid__A002_target.msXd3e89f_Xc53e] PASSED [ 45%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[1,2,3-1,2,3] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[(1,2,3)-expected_value1] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[[1,2,3]-expected_value2] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[true-True] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[False-False] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[['','table1.cal']-expected_value5] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[['test1.ms','test2.ms']-expected_value6] PASSED [ 46%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[test1.ms,test2.ms-test1.ms,test2.ms] PASSED [ 47%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[&lt;12km-<12km] PASSED [ 47%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[None-None] PASSED [ 47%]
02-Feb-2026 14:28:54 infrastructure/executeppr_test.py::test_xmlobjectifier_casttype[[[0,0,1,1],[0,1,0,1]]-expected_value10] PASSED [ 47%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestTimestamps::test_duration_calculation PASSED [ 47%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestTimestamps::test_timestamps_serialization FAILED [ 47%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestResultMetadata::test_metadata_from_failed_result PASSED [ 47%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestResultMetadata::test_metadata_from_result FAILED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestResultMetadata::test_metadata_json_roundtrip FAILED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestResultMetadata::test_metadata_repr FAILED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestResultMetadata::test_metadata_to_dict FAILED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestContextMetadata::test_context_metadata_creation PASSED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestContextMetadata::test_context_metadata_json_roundtrip FAILED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestContextMetadata::test_context_metadata_to_dict PASSED [ 48%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestJSONMetadataSerializer::test_deserialize_result_metadata FAILED [ 49%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestJSONMetadataSerializer::test_serialize_context_metadata FAILED [ 49%]
02-Feb-2026 14:28:54 infrastructure/serializers_test.py::TestJSONMetadataSerializer::test_serialize_result_metadata FAILED [ 49%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_md5_hash_string_solar_system_models PASSED [ 49%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_get_iso_mtime PASSED        [ 49%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_retrieve_corresponding_solar_system_models_with_one_file PASSED [ 49%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_retrieve_corresponding_solar_system_models_with_two_files PASSED [ 49%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_get_filename_info PASSED    [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_info_string_solar_system_models_with_one_file PASSED [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_info_string_solar_system_models_with_two_files PASSED [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_IERSInfo_class_creation PASSED [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_IERSInfo_class_loads_data PASSED [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_IERSInfo_get_IERS_version_method PASSED [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_IERSInfo_get_IERSeop2000_last_entry_method PASSED [ 50%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_get_IERS_info PASSED        [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_validate_date_method PASSED [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_string_representation_for_IERS_info PASSED [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_date_message_type PASSED    [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_date_message_type_when_data_is_not_found PASSED [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_from_mjd_to_datetime PASSED [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_IERSInfo_when_data_is_not_found PASSED [ 51%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_get_IERS_info_when_data_is_not_found PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_validate_date_method_when_data_is_not_found PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/casa_data_test.py::test_string_representation_for_IERS_info_when_data_is_not_found PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp0-kwargs0-] PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp1-kwargs1-'a'] PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp2-kwargs2-'a' and 'b'] PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp3-kwargs3-'a', 'b' and 'c'] PASSED [ 52%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp4-kwargs4-'a', 'b' and 'c'] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp5-kwargs5-a and b] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp6-kwargs6-s '25', '27' and '29'] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp7-kwargs7-'a'; 'b' and 'c'] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_commafy[inp8-kwargs8-'a', 'b' & 'c'] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_dequote[Field '1'-Field 1] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_dequote[Field "1"-Field 1] PASSED [ 53%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_dequote["Field 1", "Field 2"-Field 1, Field 2] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_dequote['Field 1', 'Field 2'-Field 1, Field 2] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_flatten[inp0-expected0] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_flatten[inp1-expected1] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_flatten[inp2-expected2] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_flatten[abcd-expected3] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_flatten[inp4-expected4] PASSED [ 54%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_flatten_empty PASSED       [ 55%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_datetime[inp0-kwargs0-2020-01-01 12:34:56] PASSED [ 55%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_datetime[inp1-kwargs1-2020-01-01 12:34:56.00001] PASSED [ 55%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_datetime[inp2-kwargs2-2020-01-01 12:34:56.000007] PASSED [ 55%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_datetime_raises_exception_too_high_precision PASSED [ 55%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_timedelta[inp0-kwargs0-1 day, 0:00:00] PASSED [ 55%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_timedelta[inp1-kwargs1-9 days, 0:00:08.00601] PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_timedelta[inp2-kwargs2-9 days, 0:00:08.006007] PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_format_timedelta_raises_exception_too_high_precision PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_mjd_seconds_to_datetime[inp0-expected0] PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_mjd_seconds_to_datetime[inp1-expected1] PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_range_to_list[-expected0] PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_range_to_list[1-expected1] PASSED [ 56%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_range_to_list[1,2-expected2] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_range_to_list[1~3,5,7~9-expected3] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_safe_split[-expected0] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_safe_split[Field 1-expected1] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_safe_split[Field 1, 'Field 2,3'-expected2] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_safe_split["Field 1,2" , Field 3-expected3] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test_unix_seconds_to_datetime[inp0-expected0] PASSED [ 57%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp0-TypeError] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp1-expected1] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp2-expected2] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp3-expected3] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp4-expected4] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp5-expected5] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp6-expected6] PASSED [ 58%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp7-expected7] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp8-expected8] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp9-expected9] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp10-expected10] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp11-expected11] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp12-expected12] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp13-expected13] PASSED [ 59%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp14-expected14] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp15-expected15] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_antenna[inp16-expected16] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp0-TypeError] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp1-expected1] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp2-expected2] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp3-expected3] PASSED [ 60%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp4-expected4] PASSED [ 61%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp5-expected5] PASSED [ 61%]
02-Feb-2026 14:28:54 infrastructure/utils/conversion_test.py::test__parse_field[inp6-expected6] PASSED [ 61%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp7-expected7] PASSED [ 61%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp8-expected8] PASSED [ 61%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp9-expected9] PASSED [ 61%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp10-expected10] PASSED [ 61%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp11-expected11] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp12-expected12] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp13-expected13] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp14-expected14] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp15-expected15] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_field[inp16-expected16] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp0-None] PASSED [ 62%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp1-expected1] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp2-expected2] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp3-expected3] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp4-expected4] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp5-expected5] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp6-Exception] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp7-expected7] PASSED [ 63%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp8-expected8] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp9-expected9] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp10-expected10] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test__parse_spw[inp11-expected11] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_convert_paths[task(vis='/lustre/data/my_file.ms',field='NGC7771,"NGC7752/3",J2355+4950,,"5795"')-task(vis='my_file.ms',field='NGC7771,"NGC7752/3",J2355+4950,,"5795"')] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_convert_paths[task(vis="../working/output.ms")-task(vis="output.ms")] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_convert_paths[task(vis='/full/path/to/my_file.ms', gaintable=['../some/caltable1.tbl', 'caltable2.tbl'])-task(vis='my_file.ms', gaintable=['caltable1.tbl', 'caltable2.tbl'])] PASSED [ 64%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_convert_paths[\n# This is a comment and should be preserved.\ntask(\n    vis = '/path/to/data.ms', # Another comment\n    output = "output_dir/final.ms",\n    param = 'some_text'\n)\n# A final comment.\n-\n# This is a comment and should be preserved.\ntask(\n    vis = 'data.ms', # Another comment\n    output = "final.ms",\n    param = 'some_text'\n)\n# A final comment.\n] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_convert_paths[task(param='my_value with "nested" quotes')-task(param='my_value with "nested" quotes')] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_phasecenter_to_skycoord[J2000 302.999666667deg -0.71deg-302.999666667--0.71] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_phasecenter_to_skycoord[J2000 20:11:59.992 -000.42.36.0000-302.9999666333333--0.71] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_phasecenter_to_skycoord[J2000 20h11m59.992s -0.71deg-302.9999666333333--0.71] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_phasecenter_to_skycoord[J2000 18179.998arcmin -42.6arcmin-302.9999666333333--0.71] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_phasecenter_to_skycoord[J2000 5.288347rad -0.012394rad-302.9999666333333--0.71] PASSED [ 65%]
02-Feb-2026 14:28:55 infrastructure/utils/conversion_test.py::test_phasecenter_to_skycoord[20:11:59.992 -000.42.36.0000-302.9999666333333--0.71] PASSED [ 66%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test__get_cube_freq_axis[/opt/pipeline-testdata/pl-unittest/helms30_sci.spw16.cube-freq_axis0] PASSED [ 66%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_chan_selection_to_frequencies[/opt/pipeline-testdata/pl-unittest/helms30_sci.spw16.cube-10~20-GHz-frequency_ranges0] PASSED [ 66%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_chan_selection_to_frequencies[/opt/pipeline-testdata/pl-unittest/helms30_sci.spw16.cube-40~50;60~80-GHz-frequency_ranges1] PASSED [ 66%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_freq_selection_to_channels[/opt/pipeline-testdata/pl-unittest/helms30_sci.spw16.cube-214.5~214.9GHz-channel_ranges0] PASSED [ 66%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_freq_selection_to_channels[/opt/pipeline-testdata/pl-unittest/helms30_sci.spw16.cube-214.5~214.9GHz;215123.4~215567.8MHz-channel_ranges1] PASSED [ 66%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_spw_intersect[spw_range0-line_regions0-expected0] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_spw_intersect[spw_range1-line_regions1-expected1] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_spw_intersect[spw_range2-line_regions2-expected2] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_spw_intersect[spw_range3-line_regions3-expected3] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_spw_intersect[spw_range4-line_regions4-expected4] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_spw_intersect[spw_range5-line_regions5-expected5] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_update_sens_dict[dct0-udct0-rdct0] PASSED [ 67%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_update_beams_dict[dct0-udct0-rdct0] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_set_nested_dict[dct0-keys0-1-rdct0] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges[ranges0-intersect_range0] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges[ranges1-intersect_range1] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges[ranges2-intersect_range2] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges[ranges3-intersect_range3] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges_by_weight[ranges0-0.01-0.5-intersect_range0] PASSED [ 68%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges_by_weight[ranges1-0.01-1.0-intersect_range1] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges_by_weight[ranges2-0.0001-0.7-intersect_range2] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges_by_weight[ranges3-0.001-1.0-intersect_range3] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_intersect_ranges_by_weight[ranges4-0.01-1.0-intersect_range4] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_merge_ranges[ranges0-merged_ranges0] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_merge_ranges[ranges1-merged_ranges1] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_merge_ranges[ranges2-merged_ranges2] PASSED [ 69%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_equal_to_n_digits[1.234-1.235-3-True] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_equal_to_n_digits[1.234-1.235-4-False] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_velocity_to_frequency[29.976248175km/s-100.01GHz-100.0GHz] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_frequency_to_velocity[100.0GHz-100.01GHz-29.976248175km/s] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_predict_kernel[beam0-target_beam0-1e-06-0.001-kn0-2] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_predict_kernel[beam1-target_beam1-1e-06-0.001-kn1-1] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/imaging_test.py::test_predict_kernel[beam2-target_beam2-1e-06-0.001-kn2-0] PASSED [ 70%]
02-Feb-2026 14:28:55 infrastructure/utils/math_test.py::test_simple PASSED                    [ 71%]
02-Feb-2026 14:28:55 infrastructure/utils/math_test.py::test_round_half_up[-2.1-0--2.0] PASSED [ 71%]
02-Feb-2026 14:28:55 infrastructure/utils/math_test.py::test_round_half_up[-2.5-0--3.0] PASSED [ 71%]
02-Feb-2026 14:28:55 infrastructure/utils/math_test.py::test_round_half_up[-3.5-0--4.0] PASSED [ 71%]
02-Feb-2026 14:28:55 infrastructure/utils/math_test.py::test_round_half_up[4.2-0-4.0] PASSED  [ 71%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_half_up[4.5-0-5.0] PASSED  [ 71%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_half_up[-6.034543-4--6.0345] PASSED [ 71%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_half_up[-7.034443-4--7.0344] PASSED [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[-2.1-0--3.0] PASSED     [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[-2.5-0--3.0] PASSED     [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[-3.5-0--4.0] PASSED     [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[4.2-0-5.0] PASSED       [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[4.5-0-5.0] PASSED       [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[-6.034543-4--6.0346] PASSED [ 72%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_up[-7.034443-4--7.0345] PASSED [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[-2.1-0--2.0] PASSED   [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[-2.5-0--2.0] PASSED   [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[-3.5-0--3.0] PASSED   [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[4.2-0-4.0] PASSED     [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[4.5-0-4.0] PASSED     [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[-6.034543-4--6.0345] PASSED [ 73%]
02-Feb-2026 14:28:59 infrastructure/utils/math_test.py::test_round_down[-7.034443-4--7.0344] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/positioncorrection_test.py::test_do_wide_field_corr[/opt/pipeline-testdata/pl-unittest/VLASS1.1.ql.T19t20.J155950+333000.fits-obs_long0-obs_lat0-expected0] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/positioncorrection_test.py::test_do_wide_field_corr[/opt/pipeline-testdata/pl-unittest/VLASS1.2.ql.T17t06.J041750+243000.fits-obs_long1-obs_lat1-expected1] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/positioncorrection_test.py::test_calc_zd_pa[ra0-dec0-obs_long0-obs_lat0-date_time0-expected0] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/positioncorrection_test.py::test_calc_zd_pa[ra1-dec1-obs_long1-obs_lat1-date_time1-expected1] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort[input_list0-expected0] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort[input_list1-expected1] PASSED [ 74%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort[input_list2-expected2] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort[input_list3-expected3] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort[input_list0-expected0] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort[input_list1-expected1] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort[input_list2-expected2] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[session9-expected0] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[session10-expected1] PASSED [ 75%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[session10a-expected2] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[spw10-expected3] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[spw100-expected4] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[spw1-expected5] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_natural_sort_key[Spw10-expected6] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort_key[9,11,13-expected0] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort_key[9,11-expected1] PASSED [ 76%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort_key[V1.2-expected2] PASSED [ 77%]
02-Feb-2026 14:28:59 infrastructure/utils/sorting_test.py::test_numeric_sort_key[v1.2-expected3] PASSED [ 77%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[-] PASSED           [ 77%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[data1-] PASSED      [ 77%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[1:2-1:2] PASSED     [ 77%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[data3-1~3] PASSED   [ 77%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[data4-5~12,14,16:17] PASSED [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[data5-1~3,6~7] PASSED [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_find_ranges[data6-1~3,6~7] PASSED [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a0-b0-expected0] PASSED [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a1-1-1] PASSED       [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a2-b2-expected2] PASSED [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a3-b3-expected3] PASSED [ 78%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a4-b4-expected4] PASSED [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a5-b5-expected5] PASSED [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_dict_merge[a6-b6-expected6] PASSED [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_are_equal[a0-b0-True] PASSED    [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_are_equal[a1-b1-False] PASSED   [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_are_equal[a2-b2-False] PASSED   [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_are_equal[a3-b3-True] PASSED    [ 79%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_are_equal[a4-b4-False] PASSED   [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_approx_equal[0.01-0.012-0.01-True] PASSED [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_approx_equal[0.01-0.012-0.001-False] PASSED [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_approx_equal[1.0-2.0-0.1-False] PASSED [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_approx_equal[1-2-10-True] PASSED [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_num_caltable_polarizations[uid___A002_Xc46ab2_X15ae_repSPW_spw16_17_small.ms.hifa_timegaincal.s17_7.spw0.solintinf.gacal.tbl-1] PASSED [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_num_caltable_polarizations[uid___A002_Xc46ab2_X15ae_repSPW_spw16_17_small.ms.hifa_timegaincal.s17_2.spw0.solintinf.gpcal.tbl-2] PASSED [ 80%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_flagged_intervals[vec0-expected0] PASSED [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_flagged_intervals[vec1-expected1] PASSED [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_flagged_intervals[vec2-expected2] PASSED [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_flagged_intervals[vec3-expected3] PASSED [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_for_casa[-] PASSED    [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_for_casa[helm30-helm30] PASSED [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_for_casa[helm=30-"helm=30"] PASSED [ 81%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_for_casa[1-"1"] PASSED [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_clean[-] PASSED       [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_clean[helm30-helm30] PASSED [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_clean[helm=30-helm_30] PASSED [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_fieldname_clean[1-1] PASSED     [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_field_accessor[ms0-field0-Jupiter] PASSED [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_field_accessor[ms1-field1-3] PASSED [ 82%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_field_identifiers[ms0-expected0] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_field_identifiers[ms1-expected1] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_receiver_type_for_spws[ms0-spwids0-expected0] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_casa_quantity[None-expected0] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_casa_quantity[10klambda-expected1] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_casa_quantity[10.0-expected2] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_place_repr_source_first[itemlist0-f2-expected0] PASSED [ 83%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_place_repr_source_first[itemlist1-f2-expected1] PASSED [ 84%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_get_taskhistory_fromimage PASSED [ 84%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_list_to_str[value0-[1, 2, 3]] PASSED [ 84%]
02-Feb-2026 14:28:59 infrastructure/utils/utils_test.py::test_list_to_str[value1-[1, 2, 3]] PASSED [ 84%]
02-Feb-2026 14:29:00 infrastructure/utils/utils_test.py::test_list_to_str[value2-[1, 2, 3]] PASSED [ 84%]
02-Feb-2026 14:29:00 infrastructure/utils/utils_test.py::test_list_to_str[1-1] PASSED         [ 84%]
02-Feb-2026 14:29:00 infrastructure/utils/utils_test.py::test_list_to_str[value4-<lambda>] PASSED [ 84%]
02-Feb-2026 14:29:00 infrastructure/utils/utils_test.py::test_list_to_str[value5-<lambda>] PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/utils_test.py::test_list_to_str_py310[value0-[[np.int64(1)], [np.int64(2), np.int64(3)]]] PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_OrderedDefaultdict_insertion PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_OrderedDefaultdict_typical_use_case PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns[params0-expected0] PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns[params1-expected1] PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns[params2-expected2] PASSED [ 85%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_num_to_merge[0-params0-expected0] PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_num_to_merge[1-params1-expected1] PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_num_to_merge[2-params2-expected2] PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_num_to_merge[3-params3-expected3] PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_num_to_merge[20-params4-expected4] PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_num_to_merge[-1-params5-expected5] PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_merge_td_columns_vertical_align PASSED [ 86%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_total_time_on_target_on_source PASSED [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils/weblog_test.py::test_total_time_on_source PASSED    [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[True-True] PASSED       [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[false-false] PASSED     [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[1,2,3-1,2,3] PASSED     [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[(1,2,3)-expected_value3] PASSED [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[[1,2,3]-expected_value4] PASSED [ 87%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[None-None] PASSED       [ 88%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[none-none] PASSED       [ 88%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val['none'-none] PASSED     [ 88%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[>12klambda->12klambda] PASSED [ 88%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[&lt;12km-&lt;12km] PASSED [ 88%]
02-Feb-2026 14:29:00 infrastructure/utils_test.py::test_string_to_val[[[0,0,1,1],[0,1,0,1]]-expected_value10] PASSED [ 88%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_get_line_ranges[lines0-expected0] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_get_line_ranges[lines1-expected1] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_get_line_ranges[lines2-expected2] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_get_line_ranges[lines3-expected3] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_get_line_ranges[lines4-expected4] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines0-2048-edge0-False] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines1-1024-edge1-False] PASSED [ 89%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines2-1024-edge2-False] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines3-1024-edge3-True] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines4-1024-edge4-True] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines5-1024-edge5-True] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines6-1024-edge6-True] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines7-1024-edge7-True] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines8-1024-edge8-True] PASSED [ 90%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines9-1024-edge9-True] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines10-1024-edge10-True] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines11-1024-edge11-True] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines12-1024-edge12-True] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines13-1024-edge13-True] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines14-1024-edge14-True] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines15-1024-edge15-False] PASSED [ 91%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines16-1024-edge16-True] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_edge_lines[lines17-1024-edge17-False] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines0-2048-edge0-False] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines1-1024-edge1-False] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines2-2048-edge2-False] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines3-1024-edge3-True] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines4-1024-edge4-True] PASSED [ 92%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines5-1024-edge5-True] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines6-2048-edge6-True] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines7-1024-edge7-False] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines8-1024-edge8-True] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines9-1024-edge9-True] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines10-1024-edge10-True] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_examine_sd_wide_lines[lines11-1024-edge11-True] PASSED [ 93%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_channel_ranges_for_image[edge0-16-1-ranges0-expected0] PASSED [ 94%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_channel_ranges_for_image[edge1-16--1-ranges1-expected1] PASSED [ 94%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_channel_ranges_for_image[edge2-16-1-ranges2-expected2] PASSED [ 94%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_channel_ranges_for_image[edge3-16-1-ranges3-expected3] PASSED [ 94%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_channel_ranges_for_image[edge4-16--1-ranges4-expected4] PASSED [ 94%]
02-Feb-2026 14:29:00 qa/scorecalculator_test.py::test_channel_ranges_for_image[edge5-16--1-ranges5-expected5] PASSED [ 94%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_recipe_dir PASSED             [ 94%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_cli_dir[hsd] PASSED           [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_cli_dir[hif] PASSED           [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_cli_dir[blah] PASSED          [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_element[<root><a><b>data</b></a></root>-b-1] PASSED [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_element[<root><a><b>data</b></a></root>-a-1] PASSED [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_element[<root><a><b>data</b></a></root>-c-0] PASSED [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_element[<root><a><b>data</b><b>data</b></a></root>-b-2] PASSED [ 95%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_data[<a>data</a>-data] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_data[<a><b>data</b></a>-AttributeError] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_parameter[<root><Keyword>spw</Keyword><Value>0</Value></root>-expected0] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_command[<ProcessingCommand><Command>h_save</Command><ParameterSet></ParameterSet></ProcessingCommand>-expected0] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_command[<ProcessingCommand><Command>h_save</Command><ParameterSet><Parameter><Keyword>filename</Keyword><Value>output.context</Value></Parameter></ParameterSet></ProcessingCommand>-expected1] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_command[<ProcessingCommand><Command>breakpoint</Command><ParameterSet></ParameterSet></ProcessingCommand>-expected2] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_command[<ProcessingCommand><task><shortdescription>do something</shortdescription></task></ProcessingCommand>-AssertionError] PASSED [ 96%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_command[<ProcessingCommand><Command>h_init</Command><ParameterSet></ParameterSet><Command>h_save</Command><ParameterSet></ParameterSet></ProcessingCommand>-AssertionError] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse_command[<ProcessingCommand><Command>h_save</Command></ProcessingCommand>-AssertionError] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse[<ProcessingProcedure></ProcessingProcedure>-AssertionError] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_parse[<ProcessingProcedure><ProcedureTitle>h_test</ProcedureTitle><ProcessingCommand><Command>h_save</Command><ParameterSet></ParameterSet></ProcessingCommand></ProcessingProcedure>-expected1] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[breakpoint-config0-        #  ---- breakpoint ----] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[breakpoint-config1-        #  ---- breakpoint ----] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[hsd_baseline-config2-] PASSED [ 97%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[hsd_baseline-config3-        # This is comment\n] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[hsd_baseline-config4-        # This is comment\n] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[hsd_baseline-config5-        # This is \n        # multi-line comment\n] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_comment[hsd_baseline-config6-        # This is \n        # multi-line comment\n] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_execution_command[breakpoint-config0-] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_execution_command[hsd_baseline-config1-        hsd_baseline()] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_execution_command[hsd_baseline-config2-        hsd_baseline(pstr='strval', pint=3)] PASSED [ 98%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_get_execution_command[hsd_importdata-config3-        hsd_importdata(vis=vislist)\n\n        if importonly:\n            raise Exception(IMPORT_ONLY)] PASSED [ 99%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_c2p PASSED                        [ 99%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_to_procedure PASSED               [ 99%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_export[False-] PASSED             [ 99%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_export[True-plotlevel='summary'] PASSED [ 99%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_main SKIPPED (Skip testing ma...) [ 99%]
02-Feb-2026 14:29:00 recipes/recipe_converter_test.py::test_generate_all SKIPPED (Skip te...) [100%]
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 =================================== FAILURES ===================================
02-Feb-2026 14:29:00 _________________ TestTimestamps.test_timestamps_serialization _________________
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <pipeline.infrastructure.serializers_test.TestTimestamps testMethod=test_timestamps_serialization>
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     def test_timestamps_serialization(self):
02-Feb-2026 14:29:00         """Test serialization to and from dict."""
02-Feb-2026 14:29:00         start = datetime(2026, 1, 30, 14, 0, 0)
02-Feb-2026 14:29:00         end = datetime(2026, 1, 30, 14, 5, 0)
02-Feb-2026 14:29:00    
02-Feb-2026 14:29:00         ts = Timestamps(start=start, end=end)
02-Feb-2026 14:29:00         data = ts.to_dict()
02-Feb-2026 14:29:00    
02-Feb-2026 14:29:00         assert isinstance(data['start'], str)
02-Feb-2026 14:29:00         assert isinstance(data['end'], str)
02-Feb-2026 14:29:00         assert data['duration_seconds'] == 300.0
02-Feb-2026 14:29:00    
02-Feb-2026 14:29:00         ts2 = Timestamps.from_dict(data)
02-Feb-2026 14:29:00 >       assert ts2.start == start
02-Feb-2026 14:29:00 E       assert datetime.datetime(2026, 1, 30, 14, 0, tzinfo=datetime.timezone.utc) == datetime.datetime(2026, 1, 30, 14, 0)
02-Feb-2026 14:29:00 E        +  where datetime.datetime(2026, 1, 30, 14, 0, tzinfo=datetime.timezone.utc) = Timestamps(start=datetime.datetime(2026, 1, 30, 14, 0, tzinfo=datetime.timezone.utc), end=datetime.datetime(2026, 1, 30, 14, 5, tzinfo=datetime.timezone.utc)).start
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 infrastructure/serializers_test.py:70: AssertionError
02-Feb-2026 14:29:00 _________________ TestResultMetadata.test_metadata_from_result _________________
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <pipeline.infrastructure.serializers_test.TestResultMetadata testMethod=test_metadata_from_result>
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     def test_metadata_from_result(self):
02-Feb-2026 14:29:00         """Test extracting metadata from a result object."""
02-Feb-2026 14:29:00         result = self._create_mock_result(task_name='hifa_importdata')
02-Feb-2026 14:29:00         metadata = ResultMetadata.from_result(result)
02-Feb-2026 14:29:00    
02-Feb-2026 14:29:00         assert metadata.task_name == 'hifa_importdata'
02-Feb-2026 14:29:00         assert metadata.stage_number == 0
02-Feb-2026 14:29:00 >       assert metadata.status == 'completed'
02-Feb-2026 14:29:00 E       AssertionError: assert 'failed' == 'completed'
02-Feb-2026 14:29:00 E         
02-Feb-2026 14:29:00 E         - completed
02-Feb-2026 14:29:00 E         + failed
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 infrastructure/serializers_test.py:110: AssertionError
02-Feb-2026 14:29:00 _______________ TestResultMetadata.test_metadata_json_roundtrip ________________
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <unittest.case._Outcome object at 0x7fa494ebcc70>
02-Feb-2026 14:29:00 test_case = <pipeline.infrastructure.serializers_test.TestResultMetadata testMethod=test_metadata_json_roundtrip>
02-Feb-2026 14:29:00 isTest = True
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     @contextlib.contextmanager
02-Feb-2026 14:29:00     def testPartExecutor(self, test_case, isTest=False):
02-Feb-2026 14:29:00         old_success = self.success
02-Feb-2026 14:29:00         self.success = True
02-Feb-2026 14:29:00         try:
02-Feb-2026 14:29:00 >           yield
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:59:
02-Feb-2026 14:29:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:00 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:591: in run
02-Feb-2026 14:29:00     self._callTestMethod(testMethod)
02-Feb-2026 14:29:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <pipeline.infrastructure.serializers_test.TestResultMetadata testMethod=test_metadata_json_roundtrip>
02-Feb-2026 14:29:00 method = <bound method TestResultMetadata.test_metadata_json_roundtrip of <pipeline.infrastructure.serializers_test.TestResultMetadata testMethod=test_metadata_json_roundtrip>>
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     def _callTestMethod(self, method):
02-Feb-2026 14:29:00 >       method()
02-Feb-2026 14:29:00 E       TypeError: TestResultMetadata.test_metadata_json_roundtrip() missing 1 required positional argument: 'tmp_path'
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:549: TypeError
02-Feb-2026 14:29:00 ____________________ TestResultMetadata.test_metadata_repr _____________________
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <pipeline.infrastructure.serializers_test.TestResultMetadata testMethod=test_metadata_repr>
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     def test_metadata_repr(self):
02-Feb-2026 14:29:00         """Test string representation of metadata."""
02-Feb-2026 14:29:00         result = self._create_mock_result(task_name='hifa_flagdata')
02-Feb-2026 14:29:00         metadata = ResultMetadata.from_result(result)
02-Feb-2026 14:29:00         repr_str = repr(metadata)
02-Feb-2026 14:29:00    
02-Feb-2026 14:29:00         assert 'hifa_flagdata' in repr_str
02-Feb-2026 14:29:00 >       assert 'completed' in repr_str
02-Feb-2026 14:29:00 E       AssertionError: assert 'completed' in 'ResultMetadata(stage=0, task=hifa_flagdata, status=failed, duration=300.0s)'
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 infrastructure/serializers_test.py:142: AssertionError
02-Feb-2026 14:29:00 ___________________ TestResultMetadata.test_metadata_to_dict ___________________
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <pipeline.infrastructure.serializers_test.TestResultMetadata testMethod=test_metadata_to_dict>
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     def test_metadata_to_dict(self):
02-Feb-2026 14:29:00         """Test converting metadata to dictionary."""
02-Feb-2026 14:29:00         result = self._create_mock_result()
02-Feb-2026 14:29:00         metadata = ResultMetadata.from_result(result)
02-Feb-2026 14:29:00         data = metadata.to_dict()
02-Feb-2026 14:29:00    
02-Feb-2026 14:29:00         assert data['task_name'] == 'test_task'
02-Feb-2026 14:29:00 >       assert data['status'] == 'completed'
02-Feb-2026 14:29:00 E       AssertionError: assert 'failed' == 'completed'
02-Feb-2026 14:29:00 E         
02-Feb-2026 14:29:00 E         - completed
02-Feb-2026 14:29:00 E         + failed
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 infrastructure/serializers_test.py:130: AssertionError
02-Feb-2026 14:29:00 ___________ TestContextMetadata.test_context_metadata_json_roundtrip ___________
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 self = <unittest.case._Outcome object at 0x7fa494eccf70>
02-Feb-2026 14:29:00 test_case = <pipeline.infrastructure.serializers_test.TestContextMetadata testMethod=test_context_metadata_json_roundtrip>
02-Feb-2026 14:29:00 isTest = True
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00     @contextlib.contextmanager
02-Feb-2026 14:29:00     def testPartExecutor(self, test_case, isTest=False):
02-Feb-2026 14:29:00         old_success = self.success
02-Feb-2026 14:29:00         self.success = True
02-Feb-2026 14:29:00         try:
02-Feb-2026 14:29:00 >           yield
02-Feb-2026 14:29:00
02-Feb-2026 14:29:00 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:59:
02-Feb-2026 14:29:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:00 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:591: in run
02-Feb-2026 14:29:00     self._callTestMethod(testMethod)
02-Feb-2026 14:29:00 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:00
02-Feb-2026 14:29:01 self = <pipeline.infrastructure.serializers_test.TestContextMetadata testMethod=test_context_metadata_json_roundtrip>
02-Feb-2026 14:29:01 method = <bound method TestContextMetadata.test_context_metadata_json_roundtrip of <pipeline.infrastructure.serializers_test.TestContextMetadata testMethod=test_context_metadata_json_roundtrip>>
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     def _callTestMethod(self, method):
02-Feb-2026 14:29:01 >       method()
02-Feb-2026 14:29:01 E       TypeError: TestContextMetadata.test_context_metadata_json_roundtrip() missing 1 required positional argument: 'tmp_path'
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:549: TypeError
02-Feb-2026 14:29:01 _________ TestJSONMetadataSerializer.test_deserialize_result_metadata __________
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 self = <unittest.case._Outcome object at 0x7fa494ec6fb0>
02-Feb-2026 14:29:01 test_case = <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_deserialize_result_metadata>
02-Feb-2026 14:29:01 isTest = True
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     @contextlib.contextmanager
02-Feb-2026 14:29:01     def testPartExecutor(self, test_case, isTest=False):
02-Feb-2026 14:29:01         old_success = self.success
02-Feb-2026 14:29:01         self.success = True
02-Feb-2026 14:29:01         try:
02-Feb-2026 14:29:01 >           yield
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:59:
02-Feb-2026 14:29:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:591: in run
02-Feb-2026 14:29:01     self._callTestMethod(testMethod)
02-Feb-2026 14:29:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 self = <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_deserialize_result_metadata>
02-Feb-2026 14:29:01 method = <bound method TestJSONMetadataSerializer.test_deserialize_result_metadata of <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_deserialize_result_metadata>>
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     def _callTestMethod(self, method):
02-Feb-2026 14:29:01 >       method()
02-Feb-2026 14:29:01 E       TypeError: TestJSONMetadataSerializer.test_deserialize_result_metadata() missing 1 required positional argument: 'tmp_path'
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:549: TypeError
02-Feb-2026 14:29:01 __________ TestJSONMetadataSerializer.test_serialize_context_metadata __________
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 self = <unittest.case._Outcome object at 0x7fa494eb91e0>
02-Feb-2026 14:29:01 test_case = <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_serialize_context_metadata>
02-Feb-2026 14:29:01 isTest = True
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     @contextlib.contextmanager
02-Feb-2026 14:29:01     def testPartExecutor(self, test_case, isTest=False):
02-Feb-2026 14:29:01         old_success = self.success
02-Feb-2026 14:29:01         self.success = True
02-Feb-2026 14:29:01         try:
02-Feb-2026 14:29:01 >           yield
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:59:
02-Feb-2026 14:29:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:591: in run
02-Feb-2026 14:29:01     self._callTestMethod(testMethod)
02-Feb-2026 14:29:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 self = <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_serialize_context_metadata>
02-Feb-2026 14:29:01 method = <bound method TestJSONMetadataSerializer.test_serialize_context_metadata of <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_serialize_context_metadata>>
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     def _callTestMethod(self, method):
02-Feb-2026 14:29:01 >       method()
02-Feb-2026 14:29:01 E       TypeError: TestJSONMetadataSerializer.test_serialize_context_metadata() missing 1 required positional argument: 'tmp_path'
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:549: TypeError
02-Feb-2026 14:29:01 __________ TestJSONMetadataSerializer.test_serialize_result_metadata ___________
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 self = <unittest.case._Outcome object at 0x7fa494eca350>
02-Feb-2026 14:29:01 test_case = <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_serialize_result_metadata>
02-Feb-2026 14:29:01 isTest = True
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     @contextlib.contextmanager
02-Feb-2026 14:29:01     def testPartExecutor(self, test_case, isTest=False):
02-Feb-2026 14:29:01         old_success = self.success
02-Feb-2026 14:29:01         self.success = True
02-Feb-2026 14:29:01         try:
02-Feb-2026 14:29:01 >           yield
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:59:
02-Feb-2026 14:29:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:591: in run
02-Feb-2026 14:29:01     self._callTestMethod(testMethod)
02-Feb-2026 14:29:01 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 self = <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_serialize_result_metadata>
02-Feb-2026 14:29:01 method = <bound method TestJSONMetadataSerializer.test_serialize_result_metadata of <pipeline.infrastructure.serializers_test.TestJSONMetadataSerializer testMethod=test_serialize_result_metadata>>
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01     def _callTestMethod(self, method):
02-Feb-2026 14:29:01 >       method()
02-Feb-2026 14:29:01 E       TypeError: TestJSONMetadataSerializer.test_serialize_result_metadata() missing 1 required positional argument: 'tmp_path'
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 ../../casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/unittest/case.py:549: TypeError
02-Feb-2026 14:29:01 =============================== warnings summary ===============================
02-Feb-2026 14:29:01 pipeline/hifa/tasks/applycal/ampphase_vs_freq_qa_test.py::test_score_all_scans
02-Feb-2026 14:29:01   /home/casatest/casa-build-utils/pipeline/workdir/casa-6.6.6-17-py3.10.el8/lib/py/lib/python3.10/site-packages/numpy/ma/core.py:489: ComplexWarning: Casting complex values to real discards the imaginary part
02-Feb-2026 14:29:01     fill_value = np.asarray(fill_value, dtype=ndtype)
02-Feb-2026 14:29:01
02-Feb-2026 14:29:01 -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
02-Feb-2026 14:29:01 - generated xml file: /home/casatest/casa-build-utils/pipeline/workdir/pipeline_test_result.xml -
02-Feb-2026 14:29:01 =========================== short test summary info ============================
02-Feb-2026 14:29:01 SKIPPED [2] h/tasks/common/atmutil_test.py:213: need_vis
02-Feb-2026 14:29:01 SKIPPED [3] h/tasks/common/atmutil_test.py:233: need_vis
02-Feb-2026 14:29:01 SKIPPED [2] h/tasks/common/atmutil_test.py:251: need_vis
02-Feb-2026 14:29:01 SKIPPED [1] infrastructure/daskhelpers_test.py:80: dask not installed
02-Feb-2026 14:29:01 SKIPPED [1] infrastructure/daskhelpers_test.py:146: dask not installed
02-Feb-2026 14:29:01 SKIPPED [1] infrastructure/daskhelpers_test.py:195: dask not installed
02-Feb-2026 14:29:01 SKIPPED [1] recipes/recipe_converter_test.py:375: Skip testing main. Its output must be carefully examined by developer.
02-Feb-2026 14:29:01 SKIPPED [1] recipes/recipe_converter_test.py:380: Skip testing generate_all. Its output must be carefully examined by developer.
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestTimestamps::test_timestamps_serialization
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestResultMetadata::test_metadata_from_result
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestResultMetadata::test_metadata_json_roundtrip
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestResultMetadata::test_metadata_repr
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestResultMetadata::test_metadata_to_dict
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestContextMetadata::test_context_metadata_json_roundtrip
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestJSONMetadataSerializer::test_deserialize_result_metadata
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestJSONMetadataSerializer::test_serialize_context_metadata
02-Feb-2026 14:29:01 FAILED infrastructure/serializers_test.py::TestJSONMetadataSerializer::test_serialize_result_metadata
02-Feb-2026 14:29:01 ======= 9 failed, 670 passed, 12 skipped, 1 warning in 679.46s (0:11:19) =======
02-Feb-2026 14:29:01 1
02-Feb-2026 14:29:01 mkdir: cannot create directory 'workdir': File exists
02-Feb-2026 14:29:02 Finished task 'Test' with result: Success
02-Feb-2026 14:29:02 All conditions for task 'JUnit Parser' were met. Conditions: Variable bamboo.repository.pr.targetBranch matches pattern main
02-Feb-2026 14:29:02 Starting task 'JUnit Parser' of type 'com.atlassian.bamboo.plugins.testresultparser:task.testresultparser.junit'
02-Feb-2026 14:29:02 Parsing test results under /export/home/cbt-pipeline-test/ci-workspace/bamboohome/xml-data/build-dir/PIPE-PPRT1281-PPT666...
02-Feb-2026 14:29:02 Failing task since 9 failing test cases were found.
02-Feb-2026 14:29:02 Finished task 'JUnit Parser' with result: Failed
02-Feb-2026 14:29:02 Starting task 'Cleanup' of type 'com.atlassian.bamboo.plugins.scripttask:task.builder.script'
02-Feb-2026 14:29:02
Beginning to execute external process for build 'Pipeline - Pipeline Pull Request Test - context-serializer - Pipeline PR Test 6.6.6 #1 (PIPE-PPRT1281-PPT666-1)'
... running command line:
/export/home/cbt-pipeline-test/ci-workspace/bamboohome/temp/PIPE-PPRT1281-PPT666-1-ScriptBuildTask-16009488379224123700.sh
... in: /export/home/cbt-pipeline-test/ci-workspace/bamboohome/xml-data/build-dir/PIPE-PPRT1281-PPT666
02-Feb-2026 14:29:02 Starting cleanup
02-Feb-2026 14:29:02 Error response from daemon: No such container: pipeline-test
02-Feb-2026 14:29:02 Error response from daemon: No such container: pipeline-test
02-Feb-2026 14:29:02 Cleanup complete
02-Feb-2026 14:29:02 Finished task 'Cleanup' with result: Success
02-Feb-2026 14:29:02 Running post build plugin 'Docker Container Cleanup'
02-Feb-2026 14:29:02
Beginning to execute external process for build 'Pipeline - Pipeline Pull Request Test - context-serializer - Pipeline PR Test 6.6.6 #1 (PIPE-PPRT1281-PPT666-1)'
... running command line:
/usr/bin/docker rm -f pipelinetest
... in: /export/home/cbt-pipeline-test/ci-workspace/bamboohome/xml-data/build-dir/PIPE-PPRT1281-PPT666
02-Feb-2026 14:29:07 pipelinetest
02-Feb-2026 14:29:07 Running post build plugin 'NCover Results Collector'
02-Feb-2026 14:29:07 Running post build plugin 'Build Results Label Collector'
02-Feb-2026 14:29:07 Running post build plugin 'Clover Results Collector'
02-Feb-2026 14:29:07 Running post build plugin 'npm Cache Cleanup'
02-Feb-2026 14:29:07 Running post build plugin 'Artifact Copier'
02-Feb-2026 14:29:07 Publishing an artifact: Result xml
02-Feb-2026 14:29:07 Finished publishing of artifact Non required job artifact Http Compression On : [Result xml], patterns: [pipeline_test_result.xml] anchored at: [pkgout] in 110.6 ms
02-Feb-2026 14:29:07 Finalising the build...
02-Feb-2026 14:29:07 Stopping timer.
02-Feb-2026 14:29:07 Build PIPE-PPRT1281-PPT666-1 completed.
02-Feb-2026 14:29:07 Running on server: post build plugin 'Build Hanging Detection Configuration'
02-Feb-2026 14:29:07 Running on server: post build plugin 'NCover Results Collector'
02-Feb-2026 14:29:07 Running on server: post build plugin 'Build Labeller'
02-Feb-2026 14:29:07 Running on server: post build plugin 'Clover Delta Calculator'
02-Feb-2026 14:29:07 Running on server: post build plugin 'Maven Dependencies Postprocessor'
02-Feb-2026 14:29:07 All post build plugins have finished
02-Feb-2026 14:29:07 Generating build results summary...
02-Feb-2026 14:29:07 Saving build results to disk...
02-Feb-2026 14:29:07 Store variable context...
02-Feb-2026 14:29:07 Finished building PIPE-PPRT1281-PPT666-1.