              The size of each face image to be displayed in the viewer
          mocker: :class:`pytest_mock.MockerFixture`
              Mocker for checking _build_faces_image method called
          """
          # TODO find out how we can test this on a headless system
          # Launching tk.Tk() will result in an error because a display is not found
          f_display = self.get_faces_display_instance(columns, face_size)
          f_display._build_faces_image = cast(MagicMock, mocker.MagicMock())  # type:ignore
          f_display._get_scale_size = cast(MagicMock,  # type:ignore
                                           mocker.MagicMock(return_value=(128, 128)))
          f_display._faces_source = np.zeros((face_size, face_size, 3), dtype=np.uint8)
 
</s> remove     @pytest.mark.skip(reason="Headless tkinter will error")
 </s> add  </s> remove           pip install flake8 pylint mypy pytest pytest-mock wheel
 </s> add           pip install flake8 pylint mypy pytest pytest-mock pytest-xvfb wheel
              The size of each face image to be displayed in the viewer
          mocker: :class:`pytest_mock.MockerFixture`
              Mocker for checking _build_faces_image method called
          """


          f_display = self.get_faces_display_instance(columns, face_size)
          f_display._build_faces_image = cast(MagicMock, mocker.MagicMock())  # type:ignore
          f_display._get_scale_size = cast(MagicMock,  # type:ignore
                                           mocker.MagicMock(return_value=(128, 128)))
          f_display._faces_source = np.zeros((face_size, face_size, 3), dtype=np.uint8)
keep keep keep keep replace replace keep keep keep keep keep
 unit test updates
  - Add XVFB (virtual display)
  - Re-activate viewer gui test 
tests/tools/preview/viewer_test.py