Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-35876

Install Packages for the Unit Tests with PySide2

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: ts_main_telescope
    • Labels:

      Description

      Please help to install the packages (xorg-x11-server-Xvfb and pytest-xvfb) in the docker image of lsstts/develop-env:develop. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the dnf to install and the latter can be installed by conda -c conda-forge.

      The installation can be tested by ts_m2gui. Assume the host machine is using the CentOS, you can do the following to enter the container:

      docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
      

      Note that you SHOULD NOT use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (ts_m2gui), you can do setup -kr ${path_of_package} if the eups is used. Or you can export the PYTHONPATH directly for ts_m2gui/python.

      After this, if you do pytest tests/ under ts_m2gui directory, you should see all tests pass without prompting any window as the following:

      [saluser@ba2452d2ef09 ts_m2gui]$ pytest tests/
      ============================= test session starts ==============================
      platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
      PySide2 5.13.2 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
      rootdir: /home/saluser/ts_m2gui, configfile: setup.cfg
      plugins: cov-3.0.0, remotedata-0.3.3, astropy-header-0.1.2, openfiles-0.5.0, forked-1.4.0, session2file-0.1.11, hypothesis-6.47.1, mock-3.8.2, subtests-0.8.0, doctestplus-0.12.0, arraydiff-0.3, xdist-2.5.0, asdf-2.10.1, astropy-0.10.0, flake8-1.1.1, filter-subpackage-0.1.1, xvfb-2.0.0, qt-4.1.0, anyio-3.6.1, asyncio-0.18.3, black-0.3.12, tornasync-0.6.0.post2, mypy-0.8.0
      asyncio: mode=legacy
      collected 172 items                                                            
       
      tests/test_control_tabs.py s.....                                        [  3%]
      tests/test_fault_manager.py .............                                [ 11%]
      tests/test_main_window.py s..                                            [ 12%]
      tests/test_model.py .......................                              [ 26%]
      tests/test_utility_monitor.py ....................                       [ 37%]
      tests/test_utils.py ......                                               [ 41%]
      tests/controltab/test_tab_actuator_control.py s...........               [ 48%]
      tests/controltab/test_tab_alarm_warn.py s.......                         [ 52%]
      tests/controltab/test_tab_cell_status.py s....                           [ 55%]
      tests/controltab/test_tab_config_view.py s.                              [ 56%]
      tests/controltab/test_tab_default.py s..                                 [ 58%]
      tests/controltab/test_tab_detailed_force.py s..                          [ 60%]
      tests/controltab/test_tab_diagnostics.py s........                       [ 65%]
      tests/controltab/test_tab_overview.py s......                            [ 69%]
      tests/controltab/test_tab_rigid_body_pos.py s....                        [ 72%]
      tests/controltab/test_tab_settings.py s..                                [ 74%]
      tests/controltab/test_tab_utility_view.py s.......                       [ 79%]
      tests/display/test_figure_constant_realtime.py s...                      [ 81%]
      tests/display/test_figure_constant_static.py s.........                  [ 87%]
      tests/display/test_gauge.py s....                                        [ 90%]
      tests/display/test_view_mirror.py s....                                  [ 93%]
      tests/layout/test_layout_control.py s...                                 [ 95%]
      tests/layout/test_layout_control_mode.py s...                            [ 97%]
      tests/layout/test_layout_local_mode.py s...                              [100%]
       
      =============================== warnings summary ===============================
      ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191
        /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
          config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)
       
      tests/test_fault_manager.py::flake-8::FLAKE8
      tests/test_fault_manager.py::flake-8::FLAKE8
      tests/test_model.py::flake-8::FLAKE8
      tests/test_model.py::flake-8::FLAKE8
      tests/test_utility_monitor.py::flake-8::FLAKE8
      tests/test_utility_monitor.py::flake-8::FLAKE8
      tests/test_utils.py::flake-8::FLAKE8
      tests/test_utils.py::flake-8::FLAKE8
        /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/flake8/plugins/manager.py:261: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
          eps = importlib_metadata.entry_points().get(self.namespace, ())
       
      ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433
        /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/nodeids
          config.cache.set("cache/nodeids", sorted(self.cached_nodeids))
       
      ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52
        /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/stepwise
          session.config.cache.set(STEPWISE_CACHE_DIR, [])
       
      -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
      ================ 152 passed, 20 skipped, 11 warnings in 15.90s =================
      /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_flake8.py:84: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/flake8/mtimes
        config.cache.set(HISTKEY, config._flake8mtimes)
      

        Attachments

          Issue Links

            Activity

            ttsai Te-Wei Tsai created issue -
            ttsai Te-Wei Tsai made changes -
            Field Original Value New Value
            Link This issue is triggered by DM-35779 [ DM-35779 ]
            ttsai Te-Wei Tsai made changes -
            Link This issue is triggered by DM-35756 [ DM-35756 ]
            ttsai Te-Wei Tsai made changes -
            Labels M2
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be by *conda -c conda-forge*.
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be by *conda -c conda-forge*. Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*. Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            xhost local:root
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            xhost local:root
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}
            Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you should not use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests passed without prompting any window as the following:
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you should not use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests passed without prompting any window as the following:
            Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you should not use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests passed without prompting any window as the following:

            {code:text}
            [saluser@ba2452d2ef09 ts_m2gui]$ pytest tests/
            ============================= test session starts ==============================
            platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
            PySide2 5.13.2 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
            rootdir: /home/saluser/ts_m2gui, configfile: setup.cfg
            plugins: cov-3.0.0, remotedata-0.3.3, astropy-header-0.1.2, openfiles-0.5.0, forked-1.4.0, session2file-0.1.11, hypothesis-6.47.1, mock-3.8.2, subtests-0.8.0, doctestplus-0.12.0, arraydiff-0.3, xdist-2.5.0, asdf-2.10.1, astropy-0.10.0, flake8-1.1.1, filter-subpackage-0.1.1, xvfb-2.0.0, qt-4.1.0, anyio-3.6.1, asyncio-0.18.3, black-0.3.12, tornasync-0.6.0.post2, mypy-0.8.0
            asyncio: mode=legacy
            collected 172 items

            tests/test_control_tabs.py s..... [ 3%]
            tests/test_fault_manager.py ............. [ 11%]
            tests/test_main_window.py s.. [ 12%]
            tests/test_model.py ....................... [ 26%]
            tests/test_utility_monitor.py .................... [ 37%]
            tests/test_utils.py ...... [ 41%]
            tests/controltab/test_tab_actuator_control.py s........... [ 48%]
            tests/controltab/test_tab_alarm_warn.py s....... [ 52%]
            tests/controltab/test_tab_cell_status.py s.... [ 55%]
            tests/controltab/test_tab_config_view.py s. [ 56%]
            tests/controltab/test_tab_default.py s.. [ 58%]
            tests/controltab/test_tab_detailed_force.py s.. [ 60%]
            tests/controltab/test_tab_diagnostics.py s........ [ 65%]
            tests/controltab/test_tab_overview.py s...... [ 69%]
            tests/controltab/test_tab_rigid_body_pos.py s.... [ 72%]
            tests/controltab/test_tab_settings.py s.. [ 74%]
            tests/controltab/test_tab_utility_view.py s....... [ 79%]
            tests/display/test_figure_constant_realtime.py s... [ 81%]
            tests/display/test_figure_constant_static.py s......... [ 87%]
            tests/display/test_gauge.py s.... [ 90%]
            tests/display/test_view_mirror.py s.... [ 93%]
            tests/layout/test_layout_control.py s... [ 95%]
            tests/layout/test_layout_control_mode.py s... [ 97%]
            tests/layout/test_layout_local_mode.py s... [100%]

            =============================== warnings summary ===============================
            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
                config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)

            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/flake8/plugins/manager.py:261: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
                eps = importlib_metadata.entry_points().get(self.namespace, ())

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/nodeids
                config.cache.set("cache/nodeids", sorted(self.cached_nodeids))

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/stepwise
                session.config.cache.set(STEPWISE_CACHE_DIR, [])

            -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
            ================ 152 passed, 20 skipped, 11 warnings in 15.90s =================
            /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_flake8.py:84: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/flake8/mtimes
              config.cache.set(HISTKEY, config._flake8mtimes)
            {code}
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you should not use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests passed without prompting any window as the following:

            {code:text}
            [saluser@ba2452d2ef09 ts_m2gui]$ pytest tests/
            ============================= test session starts ==============================
            platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
            PySide2 5.13.2 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
            rootdir: /home/saluser/ts_m2gui, configfile: setup.cfg
            plugins: cov-3.0.0, remotedata-0.3.3, astropy-header-0.1.2, openfiles-0.5.0, forked-1.4.0, session2file-0.1.11, hypothesis-6.47.1, mock-3.8.2, subtests-0.8.0, doctestplus-0.12.0, arraydiff-0.3, xdist-2.5.0, asdf-2.10.1, astropy-0.10.0, flake8-1.1.1, filter-subpackage-0.1.1, xvfb-2.0.0, qt-4.1.0, anyio-3.6.1, asyncio-0.18.3, black-0.3.12, tornasync-0.6.0.post2, mypy-0.8.0
            asyncio: mode=legacy
            collected 172 items

            tests/test_control_tabs.py s..... [ 3%]
            tests/test_fault_manager.py ............. [ 11%]
            tests/test_main_window.py s.. [ 12%]
            tests/test_model.py ....................... [ 26%]
            tests/test_utility_monitor.py .................... [ 37%]
            tests/test_utils.py ...... [ 41%]
            tests/controltab/test_tab_actuator_control.py s........... [ 48%]
            tests/controltab/test_tab_alarm_warn.py s....... [ 52%]
            tests/controltab/test_tab_cell_status.py s.... [ 55%]
            tests/controltab/test_tab_config_view.py s. [ 56%]
            tests/controltab/test_tab_default.py s.. [ 58%]
            tests/controltab/test_tab_detailed_force.py s.. [ 60%]
            tests/controltab/test_tab_diagnostics.py s........ [ 65%]
            tests/controltab/test_tab_overview.py s...... [ 69%]
            tests/controltab/test_tab_rigid_body_pos.py s.... [ 72%]
            tests/controltab/test_tab_settings.py s.. [ 74%]
            tests/controltab/test_tab_utility_view.py s....... [ 79%]
            tests/display/test_figure_constant_realtime.py s... [ 81%]
            tests/display/test_figure_constant_static.py s......... [ 87%]
            tests/display/test_gauge.py s.... [ 90%]
            tests/display/test_view_mirror.py s.... [ 93%]
            tests/layout/test_layout_control.py s... [ 95%]
            tests/layout/test_layout_control_mode.py s... [ 97%]
            tests/layout/test_layout_local_mode.py s... [100%]

            =============================== warnings summary ===============================
            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
                config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)

            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/flake8/plugins/manager.py:261: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
                eps = importlib_metadata.entry_points().get(self.namespace, ())

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/nodeids
                config.cache.set("cache/nodeids", sorted(self.cached_nodeids))

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/stepwise
                session.config.cache.set(STEPWISE_CACHE_DIR, [])

            -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
            ================ 152 passed, 20 skipped, 11 warnings in 15.90s =================
            /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_flake8.py:84: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/flake8/mtimes
              config.cache.set(HISTKEY, config._flake8mtimes)
            {code}
            Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you *SHOULD NOT* use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests passed without prompting any window as the following:

            {code:text}
            [saluser@ba2452d2ef09 ts_m2gui]$ pytest tests/
            ============================= test session starts ==============================
            platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
            PySide2 5.13.2 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
            rootdir: /home/saluser/ts_m2gui, configfile: setup.cfg
            plugins: cov-3.0.0, remotedata-0.3.3, astropy-header-0.1.2, openfiles-0.5.0, forked-1.4.0, session2file-0.1.11, hypothesis-6.47.1, mock-3.8.2, subtests-0.8.0, doctestplus-0.12.0, arraydiff-0.3, xdist-2.5.0, asdf-2.10.1, astropy-0.10.0, flake8-1.1.1, filter-subpackage-0.1.1, xvfb-2.0.0, qt-4.1.0, anyio-3.6.1, asyncio-0.18.3, black-0.3.12, tornasync-0.6.0.post2, mypy-0.8.0
            asyncio: mode=legacy
            collected 172 items

            tests/test_control_tabs.py s..... [ 3%]
            tests/test_fault_manager.py ............. [ 11%]
            tests/test_main_window.py s.. [ 12%]
            tests/test_model.py ....................... [ 26%]
            tests/test_utility_monitor.py .................... [ 37%]
            tests/test_utils.py ...... [ 41%]
            tests/controltab/test_tab_actuator_control.py s........... [ 48%]
            tests/controltab/test_tab_alarm_warn.py s....... [ 52%]
            tests/controltab/test_tab_cell_status.py s.... [ 55%]
            tests/controltab/test_tab_config_view.py s. [ 56%]
            tests/controltab/test_tab_default.py s.. [ 58%]
            tests/controltab/test_tab_detailed_force.py s.. [ 60%]
            tests/controltab/test_tab_diagnostics.py s........ [ 65%]
            tests/controltab/test_tab_overview.py s...... [ 69%]
            tests/controltab/test_tab_rigid_body_pos.py s.... [ 72%]
            tests/controltab/test_tab_settings.py s.. [ 74%]
            tests/controltab/test_tab_utility_view.py s....... [ 79%]
            tests/display/test_figure_constant_realtime.py s... [ 81%]
            tests/display/test_figure_constant_static.py s......... [ 87%]
            tests/display/test_gauge.py s.... [ 90%]
            tests/display/test_view_mirror.py s.... [ 93%]
            tests/layout/test_layout_control.py s... [ 95%]
            tests/layout/test_layout_control_mode.py s... [ 97%]
            tests/layout/test_layout_local_mode.py s... [100%]

            =============================== warnings summary ===============================
            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
                config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)

            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/flake8/plugins/manager.py:261: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
                eps = importlib_metadata.entry_points().get(self.namespace, ())

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/nodeids
                config.cache.set("cache/nodeids", sorted(self.cached_nodeids))

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/stepwise
                session.config.cache.set(STEPWISE_CACHE_DIR, [])

            -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
            ================ 152 passed, 20 skipped, 11 warnings in 15.90s =================
            /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_flake8.py:84: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/flake8/mtimes
              config.cache.set(HISTKEY, config._flake8mtimes)
            {code}
            ttsai Te-Wei Tsai made changes -
            Description Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you *SHOULD NOT* use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests passed without prompting any window as the following:

            {code:text}
            [saluser@ba2452d2ef09 ts_m2gui]$ pytest tests/
            ============================= test session starts ==============================
            platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
            PySide2 5.13.2 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
            rootdir: /home/saluser/ts_m2gui, configfile: setup.cfg
            plugins: cov-3.0.0, remotedata-0.3.3, astropy-header-0.1.2, openfiles-0.5.0, forked-1.4.0, session2file-0.1.11, hypothesis-6.47.1, mock-3.8.2, subtests-0.8.0, doctestplus-0.12.0, arraydiff-0.3, xdist-2.5.0, asdf-2.10.1, astropy-0.10.0, flake8-1.1.1, filter-subpackage-0.1.1, xvfb-2.0.0, qt-4.1.0, anyio-3.6.1, asyncio-0.18.3, black-0.3.12, tornasync-0.6.0.post2, mypy-0.8.0
            asyncio: mode=legacy
            collected 172 items

            tests/test_control_tabs.py s..... [ 3%]
            tests/test_fault_manager.py ............. [ 11%]
            tests/test_main_window.py s.. [ 12%]
            tests/test_model.py ....................... [ 26%]
            tests/test_utility_monitor.py .................... [ 37%]
            tests/test_utils.py ...... [ 41%]
            tests/controltab/test_tab_actuator_control.py s........... [ 48%]
            tests/controltab/test_tab_alarm_warn.py s....... [ 52%]
            tests/controltab/test_tab_cell_status.py s.... [ 55%]
            tests/controltab/test_tab_config_view.py s. [ 56%]
            tests/controltab/test_tab_default.py s.. [ 58%]
            tests/controltab/test_tab_detailed_force.py s.. [ 60%]
            tests/controltab/test_tab_diagnostics.py s........ [ 65%]
            tests/controltab/test_tab_overview.py s...... [ 69%]
            tests/controltab/test_tab_rigid_body_pos.py s.... [ 72%]
            tests/controltab/test_tab_settings.py s.. [ 74%]
            tests/controltab/test_tab_utility_view.py s....... [ 79%]
            tests/display/test_figure_constant_realtime.py s... [ 81%]
            tests/display/test_figure_constant_static.py s......... [ 87%]
            tests/display/test_gauge.py s.... [ 90%]
            tests/display/test_view_mirror.py s.... [ 93%]
            tests/layout/test_layout_control.py s... [ 95%]
            tests/layout/test_layout_control_mode.py s... [ 97%]
            tests/layout/test_layout_local_mode.py s... [100%]

            =============================== warnings summary ===============================
            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
                config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)

            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/flake8/plugins/manager.py:261: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
                eps = importlib_metadata.entry_points().get(self.namespace, ())

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/nodeids
                config.cache.set("cache/nodeids", sorted(self.cached_nodeids))

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/stepwise
                session.config.cache.set(STEPWISE_CACHE_DIR, [])

            -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
            ================ 152 passed, 20 skipped, 11 warnings in 15.90s =================
            /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_flake8.py:84: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/flake8/mtimes
              config.cache.set(HISTKEY, config._flake8mtimes)
            {code}
            Please help to install the packages (*xorg-x11-server-Xvfb* and *pytest-xvfb*) in the docker image of *lsstts/develop-env:develop*. By doing this, the unit tests with PySide2 can be executed without prompting the windows, which is important when using the Jenkins to do the CI job. The former can use the *dnf* to install and the latter can be installed by *conda -c conda-forge*.

            The installation can be tested by [ts_m2gui|https://github.com/lsst-ts/ts_m2gui/]. Assume the host machine is using the CentOS, you can do the following to enter the container:

            {code:bash}
            docker run -it --rm -v ${path_to_ts_m2gui}:${path_of_package_in_container} ${docker_image}:${image_tag}
            {code}

            Note that you *SHOULD NOT* use the image forward to enter the container, which simulates the condition to run the CI on Jenkins instance. To setup this package (*ts_m2gui*), you can do *setup -kr ${path_of_package}* if the *eups* is used. Or you can export the *PYTHONPATH* directly for *ts_m2gui/python*.

            After this, if you do *pytest tests/* under *ts_m2gui* directory, you should see all tests pass without prompting any window as the following:

            {code:text}
            [saluser@ba2452d2ef09 ts_m2gui]$ pytest tests/
            ============================= test session starts ==============================
            platform linux -- Python 3.10.5, pytest-7.1.2, pluggy-1.0.0
            PySide2 5.13.2 -- Qt runtime 5.12.9 -- Qt compiled 5.12.9
            rootdir: /home/saluser/ts_m2gui, configfile: setup.cfg
            plugins: cov-3.0.0, remotedata-0.3.3, astropy-header-0.1.2, openfiles-0.5.0, forked-1.4.0, session2file-0.1.11, hypothesis-6.47.1, mock-3.8.2, subtests-0.8.0, doctestplus-0.12.0, arraydiff-0.3, xdist-2.5.0, asdf-2.10.1, astropy-0.10.0, flake8-1.1.1, filter-subpackage-0.1.1, xvfb-2.0.0, qt-4.1.0, anyio-3.6.1, asyncio-0.18.3, black-0.3.12, tornasync-0.6.0.post2, mypy-0.8.0
            asyncio: mode=legacy
            collected 172 items

            tests/test_control_tabs.py s..... [ 3%]
            tests/test_fault_manager.py ............. [ 11%]
            tests/test_main_window.py s.. [ 12%]
            tests/test_model.py ....................... [ 26%]
            tests/test_utility_monitor.py .................... [ 37%]
            tests/test_utils.py ...... [ 41%]
            tests/controltab/test_tab_actuator_control.py s........... [ 48%]
            tests/controltab/test_tab_alarm_warn.py s....... [ 52%]
            tests/controltab/test_tab_cell_status.py s.... [ 55%]
            tests/controltab/test_tab_config_view.py s. [ 56%]
            tests/controltab/test_tab_default.py s.. [ 58%]
            tests/controltab/test_tab_detailed_force.py s.. [ 60%]
            tests/controltab/test_tab_diagnostics.py s........ [ 65%]
            tests/controltab/test_tab_overview.py s...... [ 69%]
            tests/controltab/test_tab_rigid_body_pos.py s.... [ 72%]
            tests/controltab/test_tab_settings.py s.. [ 74%]
            tests/controltab/test_tab_utility_view.py s....... [ 79%]
            tests/display/test_figure_constant_realtime.py s... [ 81%]
            tests/display/test_figure_constant_static.py s......... [ 87%]
            tests/display/test_gauge.py s.... [ 90%]
            tests/display/test_view_mirror.py s.... [ 93%]
            tests/layout/test_layout_control.py s... [ 95%]
            tests/layout/test_layout_control_mode.py s... [ 97%]
            tests/layout/test_layout_local_mode.py s... [100%]

            =============================== warnings summary ===============================
            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_asyncio/plugin.py:191: DeprecationWarning: The 'asyncio_mode' default value will change to 'strict' in future, please explicitly use 'asyncio_mode=strict' or 'asyncio_mode=auto' in pytest configuration file.
                config.issue_config_time_warning(LEGACY_MODE, stacklevel=2)

            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_fault_manager.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_model.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utility_monitor.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
            tests/test_utils.py::flake-8::FLAKE8
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/flake8/plugins/manager.py:261: DeprecationWarning: SelectableGroups dict interface is deprecated. Use select.
                eps = importlib_metadata.entry_points().get(self.namespace, ())

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/cacheprovider.py:433: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/nodeids
                config.cache.set("cache/nodeids", sorted(self.cached_nodeids))

            ../../../opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52
              /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/_pytest/stepwise.py:52: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/cache/stepwise
                session.config.cache.set(STEPWISE_CACHE_DIR, [])

            -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
            ================ 152 passed, 20 skipped, 11 warnings in 15.90s =================
            /opt/lsst/software/stack/conda/envs/lsst-scipipe-4.1.0/lib/python3.10/site-packages/pytest_flake8.py:84: PytestCacheWarning: cache could not write path /home/saluser/ts_m2gui/.pytest_cache/v/flake8/mtimes
              config.cache.set(HISTKEY, config._flake8mtimes)
            {code}
            ttsai Te-Wei Tsai made changes -
            Assignee Te-Wei Tsai [ ttsai ] Wouter van Reeven [ wvreeven ]
            wvreeven Wouter van Reeven made changes -
            Sprint TSSW Sprint - Aug 15 - Aug 29 [ 1183 ]
            wvreeven Wouter van Reeven made changes -
            Status To Do [ 10001 ] In Progress [ 3 ]
            wvreeven Wouter van Reeven made changes -
            Story Points 1
            wvreeven Wouter van Reeven made changes -
            Link This issue relates to DM-35374 [ DM-35374 ]
            wvreeven Wouter van Reeven made changes -
            Reviewers Michael Reuter [ mareuter ]
            Status In Progress [ 3 ] In Review [ 10004 ]
            mareuter Michael Reuter made changes -
            Status In Review [ 10004 ] Reviewed [ 10101 ]
            wvreeven Wouter van Reeven made changes -
            Resolution Done [ 10000 ]
            Status Reviewed [ 10101 ] Done [ 10002 ]
            aclements Andy Clements made changes -
            Epic Link DM-27720 [ 442125 ] DM-27721 [ 442128 ]
            ttsai Te-Wei Tsai made changes -
            Link This issue relates to DM-37453 [ DM-37453 ]

              People

              Assignee:
              wvreeven Wouter van Reeven
              Reporter:
              ttsai Te-Wei Tsai
              Reviewers:
              Michael Reuter
              Watchers:
              Michael Reuter, Te-Wei Tsai, Wouter van Reeven
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Jenkins

                  No builds found.