Repository: pimutils/khal (branch: errors-and-warnings)
Commit date: 2024-01-11T15:35:56Z

Workflow file: .github/workflows/ci.yml (CI)
---
name: CI

on:
  push:
    branches: ["master"]
  pull_request:
    branches: ["master"]
  workflow_dispatch:

jobs:
  tests:
    name: "Python ${{ matrix.python-version }} ${{ matrix.tox-test }}"
    runs-on: "ubuntu-latest"
    services:
      pypi_wayback:
        image: ghcr.io/waleko/pypi-wayback
        ports:
          - 8629:8080

    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.8", "3.9", "3.10", "3.11"]
        tox-test: ["default"]

    steps:
      - uses: "actions/checkout@v3"
      - uses: "actions/setup-python@v4"
        with:
          python-version: "${{ matrix.python-version }}"
      - name: "Install test locales"
        run: |
          echo "de_DE.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
          echo "cs_CZ.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
          echo "el_GR.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
          echo "fr_FR.UTF-8 UTF-8" | sudo tee -a /etc/locale.gen
          sudo locale-gen
      - name: "Install dependencies"
        run: |
          set -xe
          python -VV
          python -m site
          python -m pip install --upgrade pip setuptools wheel
          python -m pip install --upgrade coverage[toml] virtualenv tox tox-gh-actions

      - name: "Run tox targets for ${{ matrix.python-version }}"
        if: ${{ matrix.tox-test == 'default' }}
        # Fake a TTY
        shell: 'script -q -e -c "bash --noprofile --norc -eo pipefail {0}"'
        run: "python -m tox"

env:
  PIP_INDEX_URL: http://localhost:8629/2024-01-11
  UV_INDEX_URL: http://localhost:8629/2024-01-11


Failed build logs:
step_name: Python 3.8 default/6_Run tox targets for 3.8.txt
log: ##[group]Run python -m tox
[36;1mpython -m tox[0m
shell: /usr/bin/script -q -e -c "bash --noprofile --norc -eo pipefail {0}"
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.8.18/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.8.18/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.18/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.18/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.8.18/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.8.18/x64/lib
##[endgroup]
[1m[35mpy38-tests:[0m[36m install_deps[22m[2m>[0m python -I -m pip install freezegun hypothesis pytest python-dateutil vdirsyncer[0m
[1m[35m.pkg:[0m[36m install_requires[22m[2m>[0m python -I -m pip install 'setuptools>=64' 'setuptools_scm>=8'[0m
[1m[35m.pkg:[0m[36m _optional_hooks[22m[2m>[0m python /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m get_requires_for_build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35m.pkg:[0m[36m packaging==23.2,pip==23.3.1,setuptools==69.0.2,setuptools-scm==8.0.4,tomli==2.0.1,typing_extensions==4.9.0,wheel==0.42.0[0m
[1m[35m.pkg:[0m[36m build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35mpy38-tests:[0m[36m install_package_deps[22m[2m>[0m python -I -m pip install 'atomicwrites>=0.1.7' 'click>=3.2' 'click_log>=0.2.0' configobj 'icalendar>=4.0.3' python-dateutil pytz pyxdg 'tzlocal>=1.0' 'urwid>=2.1.0'[0m
[1m[35mpy38-tests:[0m[36m install_package[22m[2m>[0m python -I -m pip install --force-reinstall --no-deps /home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1+gd110b50.tar.gz[0m
[1m[35mpy38-tests:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35mpy38-tests:[0m[36m aiohttp==3.9.1,aiosignal==1.3.1,aiostream==0.4.5,async-timeout==4.0.3,atomicwrites==1.4.1,attrs==23.2.0,backports.zoneinfo==0.2.1,certifi==2023.11.17,charset-normalizer==3.3.2,click==8.1.7,click-log==0.4.0,configobj==5.0.8,exceptiongroup==1.2.0,freezegun==1.4.0,frozenlist==1.4.1,hypothesis==6.92.8,icalendar==5.0.11,idna==3.6,iniconfig==2.0.0,khal @ file:///home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1%2Bgd110b50.tar.gz#sha256=2678941c127acfff27808409be49ecaa59a3a43af177267cc453749f118d927b,multidict==6.0.4,packaging==23.2,pip==23.3.1,pluggy==1.3.0,pytest==7.4.4,python-dateutil==2.8.2,pytz==2023.3.post1,pyxdg==0.28,requests==2.31.0,requests-toolbelt==1.0.0,setuptools==69.0.2,six==1.16.0,sortedcontainers==2.4.0,tomli==2.0.1,tzlocal==5.2,urllib3==2.1.0,urwid==2.4.2,vdirsyncer==0.19.2,wheel==0.42.0,yarl==1.9.4[0m
##[group]tox: py38-tests
[1m[35mpy38-tests:[0m[36m commands[0][22m[2m>[0m py.test[0m
[1m============================= test session starts ==============================[0m

platform linux -- Python 3.8.18, pytest-7.4.4, pluggy-1.3.0

cachedir: .tox/py38-tests/.pytest_cache

rootdir: /home/runner/work/khal/khal

plugins: hypothesis-6.92.8

[1mcollecting ... [0m[1m
collecting 161 items                                                           [0m[1m
collected 335 items                                                            [0m



tests/backend_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                     [  8%][0m

tests/cal_display_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 11%][0m

tests/cli_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33mX[0m[32m.[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m       [ 25%][0m

tests/configwizard_test.py [32m.[0m[32m.[0m[33m                                            [ 26%][0m

tests/controller_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 30%][0m

tests/event_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 45%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33m                                                                 [ 48%][0m

tests/icalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                          [ 50%][0m

tests/khalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                   [ 59%][0m

tests/khalendar_utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m  [ 71%][0m

tests/parse_datetime_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 84%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                                               [ 87%][0m

tests/settings_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 90%][0m

tests/terminal_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                               [ 91%][0m

tests/utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                            [ 94%][0m

tests/vdir_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                                   [ 95%][0m

tests/vtimezone_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                              [ 96%][0m

tests/ui/test_calendarwidget.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 97%][0m

tests/ui/test_editor.py [32m.[0m[32m.[0m[32m.[0m[31mF[0m[31m                                             [ 98%][0m

tests/ui/test_walker.py [32m.[0m[32m.[0m[32m.[0m[31m                                              [ 99%][0m

tests/ui/test_widgets.py [32m.[0m[31m                                               [100%][0m



=================================== FAILURES ===================================

[31m[1m_____________________________ test_convert_to_date _____________________________[0m



    def test_convert_to_date():

        """test for the issue in #666"""

        editor = StartEndEditor(

            BERLIN.localize(dt.datetime(2017, 10, 2, 13)),

            BERLIN.localize(dt.datetime(2017, 10, 4, 18)),

            conf=CONF

        )

>       canvas = editor.render((50, ), True)



[1m[31mtests/ui/test_editor.py[0m:106: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/pile.py[0m:794: in render

    canv = w.render(w_size, focus=focus and item_focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/columns.py[0m:903: in render

    w.render(w_size, focus=focus and self.focus_position == i),

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/attr_map.py[0m:150: in render

    canv = self._original_widget.render(size, focus=focus)

[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:113: in cached_render

    validate_size(self, size, canv)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 



widget = <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11>

size = (10,), canv = <urwid.canvas.CompositeCanvas object at 0x7f7ec64fb7c0>



    def validate_size(widget, size, canv):

        """

        Raise a WidgetError if a canv does not match size.

        """

        if (size and size[1:] != (0,) and size[0] != canv.cols()) or (len(size) > 1 and size[1] != canv.rows()):

>           raise WidgetError(

                f"Widget {widget!r} rendered ({canv.cols():d} x {canv.rows():d}) canvas when passed size {size!r}!"

            )

[1m[31mE           urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)![0m



[1m[31m.tox/py38-tests/lib/python3.8/site-packages/urwid/widget/widget.py[0m:92: WidgetError

[33m=============================== warnings summary ===============================[0m

tests/backend_test.py:5

  /home/runner/work/khal/khal/tests/backend_test.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

    import pkg_resources



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:745: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:746: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:657: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:658: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:745: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:746: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:657: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:658: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:745: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:746: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:657: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/inspect.py:658: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    return object.__file__



-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

[36m[1m=========================== short test summary info ============================[0m

[31mFAILED[0m tests/ui/test_editor.py::[1mtest_convert_to_date[0m - urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)!

[31m======= [31m[1m1 failed[0m, [32m330 passed[0m, [33m2 xfailed[0m, [33m2 xpassed[0m, [33m13 warnings[0m[31m in 6.29s[0m[31m =======[0m

[1m[35mpy38-tests:[0m[31m exit 1 (6.70 seconds) /home/runner/work/khal/khal> py.test pid=1957[0m
##[endgroup]
[1m[35m.pkg:[0m[36m _exit[22m[2m>[0m python /opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[31m  py38-tests: FAIL code 1 (22.73=setup[16.03]+cmd[6.70] seconds)[39m
[31m  evaluation failed :( (22.88 seconds)[39m
[0m
##[error]Process completed with exit code 1.

step_name: Python 3.9 default/6_Run tox targets for 3.9.txt
log: ##[group]Run python -m tox
[36;1mpython -m tox[0m
shell: /usr/bin/script -q -e -c "bash --noprofile --norc -eo pipefail {0}"
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.9.18/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.9.18/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.9.18/x64/lib
##[endgroup]
[1m[35mpy39-tests-pytz2018.7:[0m[36m install_deps[22m[2m>[0m python -I -m pip install freezegun hypothesis pytest python-dateutil vdirsyncer[0m
[1m[35m.pkg:[0m[36m install_requires[22m[2m>[0m python -I -m pip install 'setuptools>=64' 'setuptools_scm>=8'[0m
[1m[35m.pkg:[0m[36m _optional_hooks[22m[2m>[0m python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m get_requires_for_build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35m.pkg:[0m[36m packaging==23.2,pip==23.3.1,setuptools==69.0.2,setuptools-scm==8.0.4,tomli==2.0.1,typing_extensions==4.9.0,wheel==0.42.0[0m
[1m[35m.pkg:[0m[36m build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35mpy39-tests-pytz2018.7:[0m[36m install_package_deps[22m[2m>[0m python -I -m pip install 'atomicwrites>=0.1.7' 'click>=3.2' 'click_log>=0.2.0' configobj 'icalendar>=4.0.3' python-dateutil pytz pyxdg 'tzlocal>=1.0' 'urwid>=2.1.0'[0m
[1m[35mpy39-tests-pytz2018.7:[0m[36m install_package[22m[2m>[0m python -I -m pip install --force-reinstall --no-deps /home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1+gd110b50.tar.gz[0m
[1m[35mpy39-tests-pytz2018.7:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35mpy39-tests-pytz2018.7:[0m[36m aiohttp==3.9.1,aiosignal==1.3.1,aiostream==0.4.5,async-timeout==4.0.3,atomicwrites==1.4.1,attrs==23.2.0,certifi==2023.11.17,charset-normalizer==3.3.2,click==8.1.7,click-log==0.4.0,configobj==5.0.8,exceptiongroup==1.2.0,freezegun==1.4.0,frozenlist==1.4.1,hypothesis==6.92.8,icalendar==5.0.11,idna==3.6,iniconfig==2.0.0,khal @ file:///home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1%2Bgd110b50.tar.gz#sha256=c42d43f286ddfe0a4746e158d361e16474db9b9210e4f0a77d18c53e13a5a630,multidict==6.0.4,packaging==23.2,pip==23.3.1,pluggy==1.3.0,pytest==7.4.4,python-dateutil==2.8.2,pytz==2023.3.post1,pyxdg==0.28,requests==2.31.0,requests-toolbelt==1.0.0,setuptools==69.0.2,six==1.16.0,sortedcontainers==2.4.0,tomli==2.0.1,tzlocal==5.2,urllib3==2.1.0,urwid==2.4.2,vdirsyncer==0.19.2,wheel==0.42.0,yarl==1.9.4[0m
##[group]tox: py39-tests-pytz2018.7
[1m[35mpy39-tests-pytz2018.7:[0m[36m commands[0][22m[2m>[0m py.test[0m
[1m============================= test session starts ==============================[0m

platform linux -- Python 3.9.18, pytest-7.4.4, pluggy-1.3.0

cachedir: .tox/py39-tests-pytz2018.7/.pytest_cache

rootdir: /home/runner/work/khal/khal

plugins: hypothesis-6.92.8

[1mcollecting ... [0m[1m
collecting 87 items                                                            [0m[1m
collecting 161 items                                                           [0m[1m
collected 335 items                                                            [0m



tests/backend_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                     [  8%][0m

tests/cal_display_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 11%][0m

tests/cli_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33mX[0m[32m.[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m       [ 25%][0m

tests/configwizard_test.py [32m.[0m[32m.[0m[33m                                            [ 26%][0m

tests/controller_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 30%][0m

tests/event_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 45%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33m                                                                 [ 48%][0m

tests/icalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                          [ 50%][0m

tests/khalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                   [ 59%][0m

tests/khalendar_utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m  [ 71%][0m

tests/parse_datetime_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 84%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                                               [ 87%][0m

tests/settings_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 90%][0m

tests/terminal_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                               [ 91%][0m

tests/utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                            [ 94%][0m

tests/vdir_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                                   [ 95%][0m

tests/vtimezone_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                              [ 96%][0m

tests/ui/test_calendarwidget.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 97%][0m

tests/ui/test_editor.py [32m.[0m[32m.[0m[32m.[0m[31mF[0m[31m                                             [ 98%][0m

tests/ui/test_walker.py [32m.[0m[32m.[0m[32m.[0m[31m                                              [ 99%][0m

tests/ui/test_widgets.py [32m.[0m[31m                                               [100%][0m



=================================== FAILURES ===================================

[31m[1m_____________________________ test_convert_to_date _____________________________[0m



    def test_convert_to_date():

        """test for the issue in #666"""

        editor = StartEndEditor(

            BERLIN.localize(dt.datetime(2017, 10, 2, 13)),

            BERLIN.localize(dt.datetime(2017, 10, 4, 18)),

            conf=CONF

        )

>       canvas = editor.render((50, ), True)



[1m[31mtests/ui/test_editor.py[0m:106: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/pile.py[0m:794: in render

    canv = w.render(w_size, focus=focus and item_focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/columns.py[0m:903: in render

    w.render(w_size, focus=focus and self.focus_position == i),

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/attr_map.py[0m:150: in render

    canv = self._original_widget.render(size, focus=focus)

[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:113: in cached_render

    validate_size(self, size, canv)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 



widget = <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11>

size = (10,), canv = <urwid.canvas.CompositeCanvas object at 0x7f20765acdf0>



    def validate_size(widget, size, canv):

        """

        Raise a WidgetError if a canv does not match size.

        """

        if (size and size[1:] != (0,) and size[0] != canv.cols()) or (len(size) > 1 and size[1] != canv.rows()):

>           raise WidgetError(

                f"Widget {widget!r} rendered ({canv.cols():d} x {canv.rows():d}) canvas when passed size {size!r}!"

            )

[1m[31mE           urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)![0m



[1m[31m.tox/py39-tests-pytz2018.7/lib/python3.9/site-packages/urwid/widget/widget.py[0m:92: WidgetError

[33m=============================== warnings summary ===============================[0m

tests/backend_test.py:5

  /home/runner/work/khal/khal/tests/backend_test.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

    import pkg_resources



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:746: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:747: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:658: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:659: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:746: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:747: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:658: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:659: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:746: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:747: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:658: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:659: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    return object.__file__



-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

[36m[1m=========================== short test summary info ============================[0m

[31mFAILED[0m tests/ui/test_editor.py::[1mtest_convert_to_date[0m - urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)!

[31m======= [31m[1m1 failed[0m, [32m330 passed[0m, [33m2 xfailed[0m, [33m2 xpassed[0m, [33m13 warnings[0m[31m in 6.37s[0m[31m =======[0m

[1m[35mpy39-tests-pytz2018.7:[0m[31m exit 1 (7.21 seconds) /home/runner/work/khal/khal> py.test pid=1962[0m
##[endgroup]
[31mpy39-tests-pytz2018.7: FAIL ✖ in 23.39 seconds[39m
[1m[35mpy39-tests-pytz_latest:[0m[36m install_deps[22m[2m>[0m python -I -m pip install freezegun hypothesis pytest python-dateutil pytz vdirsyncer[0m
[1m[35mpy39-tests-pytz_latest:[0m[36m install_package_deps[22m[2m>[0m python -I -m pip install 'atomicwrites>=0.1.7' 'click>=3.2' 'click_log>=0.2.0' configobj 'icalendar>=4.0.3' python-dateutil pytz pyxdg 'tzlocal>=1.0' 'urwid>=2.1.0'[0m
[1m[35mpy39-tests-pytz_latest:[0m[36m install_package[22m[2m>[0m python -I -m pip install --force-reinstall --no-deps /home/runner/work/khal/khal/.tox/.tmp/package/2/khal-0.1.dev1+gd110b50.tar.gz[0m
[1m[35mpy39-tests-pytz_latest:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35mpy39-tests-pytz_latest:[0m[36m aiohttp==3.9.1,aiosignal==1.3.1,aiostream==0.4.5,async-timeout==4.0.3,atomicwrites==1.4.1,attrs==23.2.0,certifi==2023.11.17,charset-normalizer==3.3.2,click==8.1.7,click-log==0.4.0,configobj==5.0.8,exceptiongroup==1.2.0,freezegun==1.4.0,frozenlist==1.4.1,hypothesis==6.92.8,icalendar==5.0.11,idna==3.6,iniconfig==2.0.0,khal @ file:///home/runner/work/khal/khal/.tox/.tmp/package/2/khal-0.1.dev1%2Bgd110b50.tar.gz#sha256=c42d43f286ddfe0a4746e158d361e16474db9b9210e4f0a77d18c53e13a5a630,multidict==6.0.4,packaging==23.2,pip==23.3.1,pluggy==1.3.0,pytest==7.4.4,python-dateutil==2.8.2,pytz==2023.3.post1,pyxdg==0.28,requests==2.31.0,requests-toolbelt==1.0.0,setuptools==69.0.2,six==1.16.0,sortedcontainers==2.4.0,tomli==2.0.1,tzlocal==5.2,urllib3==2.1.0,urwid==2.4.2,vdirsyncer==0.19.2,wheel==0.42.0,yarl==1.9.4[0m
##[group]tox: py39-tests-pytz_latest
[1m[35mpy39-tests-pytz_latest:[0m[36m commands[0][22m[2m>[0m py.test[0m
[1m============================= test session starts ==============================[0m

platform linux -- Python 3.9.18, pytest-7.4.4, pluggy-1.3.0

cachedir: .tox/py39-tests-pytz_latest/.pytest_cache

rootdir: /home/runner/work/khal/khal

plugins: hypothesis-6.92.8

[1mcollecting ... [0m[1m
collecting 161 items                                                           [0m[1m
collected 335 items                                                            [0m



tests/backend_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                     [  8%][0m

tests/cal_display_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 11%][0m

tests/cli_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33mX[0m[32m.[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m       [ 25%][0m

tests/configwizard_test.py [32m.[0m[32m.[0m[33m                                            [ 26%][0m

tests/controller_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 30%][0m

tests/event_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 45%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33m                                                                 [ 48%][0m

tests/icalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                          [ 50%][0m

tests/khalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                   [ 59%][0m

tests/khalendar_utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m  [ 71%][0m

tests/parse_datetime_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 84%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                                               [ 87%][0m

tests/settings_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 90%][0m

tests/terminal_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                               [ 91%][0m

tests/utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                            [ 94%][0m

tests/vdir_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                                   [ 95%][0m

tests/vtimezone_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                              [ 96%][0m

tests/ui/test_calendarwidget.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 97%][0m

tests/ui/test_editor.py [32m.[0m[32m.[0m[32m.[0m[31mF[0m[31m                                             [ 98%][0m

tests/ui/test_walker.py [32m.[0m[32m.[0m[32m.[0m[31m                                              [ 99%][0m

tests/ui/test_widgets.py [32m.[0m[31m                                               [100%][0m



=================================== FAILURES ===================================

[31m[1m_____________________________ test_convert_to_date _____________________________[0m



    def test_convert_to_date():

        """test for the issue in #666"""

        editor = StartEndEditor(

            BERLIN.localize(dt.datetime(2017, 10, 2, 13)),

            BERLIN.localize(dt.datetime(2017, 10, 4, 18)),

            conf=CONF

        )

>       canvas = editor.render((50, ), True)



[1m[31mtests/ui/test_editor.py[0m:106: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/pile.py[0m:794: in render

    canv = w.render(w_size, focus=focus and item_focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/columns.py[0m:903: in render

    w.render(w_size, focus=focus and self.focus_position == i),

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/attr_map.py[0m:150: in render

    canv = self._original_widget.render(size, focus=focus)

[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:113: in cached_render

    validate_size(self, size, canv)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 



widget = <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11>

size = (10,), canv = <urwid.canvas.CompositeCanvas object at 0x7f802db1a850>



    def validate_size(widget, size, canv):

        """

        Raise a WidgetError if a canv does not match size.

        """

        if (size and size[1:] != (0,) and size[0] != canv.cols()) or (len(size) > 1 and size[1] != canv.rows()):

>           raise WidgetError(

                f"Widget {widget!r} rendered ({canv.cols():d} x {canv.rows():d}) canvas when passed size {size!r}!"

            )

[1m[31mE           urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)![0m



[1m[31m.tox/py39-tests-pytz_latest/lib/python3.9/site-packages/urwid/widget/widget.py[0m:92: WidgetError

[33m=============================== warnings summary ===============================[0m

tests/backend_test.py:5

  /home/runner/work/khal/khal/tests/backend_test.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

    import pkg_resources



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:746: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:747: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:658: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:659: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:746: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:747: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:658: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:659: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:746: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:747: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:658: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/inspect.py:659: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    return object.__file__



-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

[36m[1m=========================== short test summary info ============================[0m

[31mFAILED[0m tests/ui/test_editor.py::[1mtest_convert_to_date[0m - urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)!

[31m======= [31m[1m1 failed[0m, [32m330 passed[0m, [33m2 xfailed[0m, [33m2 xpassed[0m, [33m13 warnings[0m[31m in 5.04s[0m[31m =======[0m

[1m[35mpy39-tests-pytz_latest:[0m[31m exit 1 (5.36 seconds) /home/runner/work/khal/khal> py.test pid=2432[0m
##[endgroup]
[1m[35m.pkg:[0m[36m _exit[22m[2m>[0m python /opt/hostedtoolcache/Python/3.9.18/x64/lib/python3.9/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[31m  py39-tests-pytz2018.7: FAIL code 1 (23.39=setup[16.17]+cmd[7.21] seconds)[39m
[31m  py39-tests-pytz_latest: FAIL code 1 (16.11=setup[10.75]+cmd[5.36] seconds)[39m
[31m  evaluation failed :( (39.86 seconds)[39m
[0m
##[error]Process completed with exit code 255.

step_name: Python 3.10 default/6_Run tox targets for 3.10.txt
log: ##[group]Run python -m tox
[36;1mpython -m tox[0m
shell: /usr/bin/script -q -e -c "bash --noprofile --norc -eo pipefail {0}"
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.10.13/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.10.13/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.10.13/x64/lib
##[endgroup]
[1m[35mpy310-tests:[0m[36m install_deps[22m[2m>[0m python -I -m pip install freezegun hypothesis pytest python-dateutil vdirsyncer[0m
[1m[35m.pkg:[0m[36m install_requires[22m[2m>[0m python -I -m pip install 'setuptools>=64' 'setuptools_scm>=8'[0m
[1m[35m.pkg:[0m[36m _optional_hooks[22m[2m>[0m python /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m get_requires_for_build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35m.pkg:[0m[36m packaging==23.2,pip==23.3.1,setuptools==69.0.2,setuptools-scm==8.0.4,tomli==2.0.1,typing_extensions==4.9.0,wheel==0.42.0[0m
[1m[35m.pkg:[0m[36m build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35mpy310-tests:[0m[36m install_package_deps[22m[2m>[0m python -I -m pip install 'atomicwrites>=0.1.7' 'click>=3.2' 'click_log>=0.2.0' configobj 'icalendar>=4.0.3' python-dateutil pytz pyxdg 'tzlocal>=1.0' 'urwid>=2.1.0'[0m
[1m[35mpy310-tests:[0m[36m install_package[22m[2m>[0m python -I -m pip install --force-reinstall --no-deps /home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1+gd110b50.tar.gz[0m
[1m[35mpy310-tests:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35mpy310-tests:[0m[36m aiohttp==3.9.1,aiosignal==1.3.1,aiostream==0.4.5,async-timeout==4.0.3,atomicwrites==1.4.1,attrs==23.2.0,certifi==2023.11.17,charset-normalizer==3.3.2,click==8.1.7,click-log==0.4.0,configobj==5.0.8,exceptiongroup==1.2.0,freezegun==1.4.0,frozenlist==1.4.1,hypothesis==6.92.8,icalendar==5.0.11,idna==3.6,iniconfig==2.0.0,khal @ file:///home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1%2Bgd110b50.tar.gz#sha256=5e0ab7f6409a21ebd4c9a8fba7a4d1b4de33a98181c39594184172cec381b444,multidict==6.0.4,packaging==23.2,pip==23.3.1,pluggy==1.3.0,pytest==7.4.4,python-dateutil==2.8.2,pytz==2023.3.post1,pyxdg==0.28,requests==2.31.0,requests-toolbelt==1.0.0,setuptools==69.0.2,six==1.16.0,sortedcontainers==2.4.0,tomli==2.0.1,tzlocal==5.2,urllib3==2.1.0,urwid==2.4.2,vdirsyncer==0.19.2,wheel==0.42.0,yarl==1.9.4[0m
##[group]tox: py310-tests
[1m[35mpy310-tests:[0m[36m commands[0][22m[2m>[0m py.test[0m
[1m============================= test session starts ==============================[0m

platform linux -- Python 3.10.13, pytest-7.4.4, pluggy-1.3.0

cachedir: .tox/py310-tests/.pytest_cache

rootdir: /home/runner/work/khal/khal

plugins: hypothesis-6.92.8

[1mcollecting ... [0m[1m
collecting 161 items                                                           [0m[1m
collected 335 items                                                            [0m



tests/backend_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                     [  8%][0m

tests/cal_display_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 11%][0m

tests/cli_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33mX[0m[32m.[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m       [ 25%][0m

tests/configwizard_test.py [32m.[0m[32m.[0m[33m                                            [ 26%][0m

tests/controller_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 30%][0m

tests/event_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 45%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33m                                                                 [ 48%][0m

tests/icalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                          [ 50%][0m

tests/khalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                   [ 59%][0m

tests/khalendar_utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m  [ 71%][0m

tests/parse_datetime_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 84%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                                               [ 87%][0m

tests/settings_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 90%][0m

tests/terminal_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                               [ 91%][0m

tests/utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                            [ 94%][0m

tests/vdir_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                                   [ 95%][0m

tests/vtimezone_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                              [ 96%][0m

tests/ui/test_calendarwidget.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 97%][0m

tests/ui/test_editor.py [32m.[0m[32m.[0m[32m.[0m[31mF[0m[31m                                             [ 98%][0m

tests/ui/test_walker.py [32m.[0m[32m.[0m[32m.[0m[31m                                              [ 99%][0m

tests/ui/test_widgets.py [32m.[0m[31m                                               [100%][0m



=================================== FAILURES ===================================

[31m[1m_____________________________ test_convert_to_date _____________________________[0m



    def test_convert_to_date():

        """test for the issue in #666"""

        editor = StartEndEditor(

            BERLIN.localize(dt.datetime(2017, 10, 2, 13)),

            BERLIN.localize(dt.datetime(2017, 10, 4, 18)),

            conf=CONF

        )

>       canvas = editor.render((50, ), True)



[1m[31mtests/ui/test_editor.py[0m:106: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/pile.py[0m:794: in render

    canv = w.render(w_size, focus=focus and item_focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/columns.py[0m:903: in render

    w.render(w_size, focus=focus and self.focus_position == i),

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/attr_map.py[0m:150: in render

    canv = self._original_widget.render(size, focus=focus)

[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:113: in cached_render

    validate_size(self, size, canv)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 



widget = <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11>

size = (10,), canv = <urwid.canvas.CompositeCanvas object at 0x7fdfcc7c0070>



    def validate_size(widget, size, canv):

        """

        Raise a WidgetError if a canv does not match size.

        """

        if (size and size[1:] != (0,) and size[0] != canv.cols()) or (len(size) > 1 and size[1] != canv.rows()):

>           raise WidgetError(

                f"Widget {widget!r} rendered ({canv.cols():d} x {canv.rows():d}) canvas when passed size {size!r}!"

            )

[1m[31mE           urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)![0m



[1m[31m.tox/py310-tests/lib/python3.10/site-packages/urwid/widget/widget.py[0m:92: WidgetError

[33m=============================== warnings summary ===============================[0m

tests/backend_test.py:5

  /home/runner/work/khal/khal/tests/backend_test.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

    import pkg_resources



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:869: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:870: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:776: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:777: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:869: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:870: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:776: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:777: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:869: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:870: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:776: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/inspect.py:777: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    return object.__file__



-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

[36m[1m=========================== short test summary info ============================[0m

[31mFAILED[0m tests/ui/test_editor.py::[1mtest_convert_to_date[0m - urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)!

[31m======= [31m[1m1 failed[0m, [32m330 passed[0m, [33m2 xfailed[0m, [33m2 xpassed[0m, [33m13 warnings[0m[31m in 6.17s[0m[31m =======[0m

[1m[35mpy310-tests:[0m[31m exit 1 (6.77 seconds) /home/runner/work/khal/khal> py.test pid=1948[0m
##[endgroup]
[1m[35m.pkg:[0m[36m _exit[22m[2m>[0m python /opt/hostedtoolcache/Python/3.10.13/x64/lib/python3.10/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[31m  py310-tests: FAIL code 1 (23.15=setup[16.38]+cmd[6.77] seconds)[39m
[31m  evaluation failed :( (23.31 seconds)[39m
[0m
##[error]Process completed with exit code 1.

step_name: Python 3.11 default/6_Run tox targets for 3.11.txt
log: ##[group]Run python -m tox
[36;1mpython -m tox[0m
shell: /usr/bin/script -q -e -c "bash --noprofile --norc -eo pipefail {0}"
env:
  pythonLocation: /opt/hostedtoolcache/Python/3.11.7/x64
  PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.11.7/x64/lib/pkgconfig
  Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.7/x64
  Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.7/x64
  Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.11.7/x64
  LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.11.7/x64/lib
##[endgroup]
[1m[35mpy311-tests:[0m[36m install_deps[22m[2m>[0m python -I -m pip install freezegun hypothesis pytest python-dateutil vdirsyncer[0m
[1m[35m.pkg:[0m[36m install_requires[22m[2m>[0m python -I -m pip install 'setuptools>=64' 'setuptools_scm>=8'[0m
[1m[35m.pkg:[0m[36m _optional_hooks[22m[2m>[0m python /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m get_requires_for_build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35m.pkg:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35m.pkg:[0m[36m packaging==23.2,pip==23.3.1,setuptools==69.0.2,setuptools-scm==8.0.4,typing_extensions==4.9.0,wheel==0.42.0[0m
[1m[35m.pkg:[0m[36m build_sdist[22m[2m>[0m python /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[1m[35mpy311-tests:[0m[36m install_package_deps[22m[2m>[0m python -I -m pip install 'atomicwrites>=0.1.7' 'click>=3.2' 'click_log>=0.2.0' configobj 'icalendar>=4.0.3' python-dateutil pytz pyxdg 'tzlocal>=1.0' 'urwid>=2.1.0'[0m
[1m[35mpy311-tests:[0m[36m install_package[22m[2m>[0m python -I -m pip install --force-reinstall --no-deps /home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1+gd110b50.tar.gz[0m
[1m[35mpy311-tests:[0m[36m freeze[22m[2m>[0m python -m pip freeze --all[0m
[1m[35mpy311-tests:[0m[36m aiohttp==3.9.1,aiosignal==1.3.1,aiostream==0.4.5,atomicwrites==1.4.1,attrs==23.2.0,certifi==2023.11.17,charset-normalizer==3.3.2,click==8.1.7,click-log==0.4.0,configobj==5.0.8,freezegun==1.4.0,frozenlist==1.4.1,hypothesis==6.92.8,icalendar==5.0.11,idna==3.6,iniconfig==2.0.0,khal @ file:///home/runner/work/khal/khal/.tox/.tmp/package/1/khal-0.1.dev1%2Bgd110b50.tar.gz#sha256=75abf41d1c5a12a839ff0dbfb6cda4c150ee981b005b14aecc74d33d3262321c,multidict==6.0.4,packaging==23.2,pip==23.3.1,pluggy==1.3.0,pytest==7.4.4,python-dateutil==2.8.2,pytz==2023.3.post1,pyxdg==0.28,requests==2.31.0,requests-toolbelt==1.0.0,setuptools==69.0.2,six==1.16.0,sortedcontainers==2.4.0,tzlocal==5.2,urllib3==2.1.0,urwid==2.4.2,vdirsyncer==0.19.2,wheel==0.42.0,yarl==1.9.4[0m
##[group]tox: py311-tests
[1m[35mpy311-tests:[0m[36m commands[0][22m[2m>[0m py.test[0m
[1m============================= test session starts ==============================[0m

platform linux -- Python 3.11.7, pytest-7.4.4, pluggy-1.3.0

cachedir: .tox/py311-tests/.pytest_cache

rootdir: /home/runner/work/khal/khal

plugins: hypothesis-6.92.8

[1mcollecting ... [0m[1m
collecting 161 items                                                           [0m[1m
collected 335 items                                                            [0m



tests/backend_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                     [  8%][0m

tests/cal_display_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 11%][0m

tests/cli_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33mX[0m[32m.[0m[33mX[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m       [ 25%][0m

tests/configwizard_test.py [32m.[0m[32m.[0m[33m                                            [ 26%][0m

tests/controller_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 30%][0m

tests/event_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 45%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33mx[0m[33m                                                                 [ 48%][0m

tests/icalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                          [ 50%][0m

tests/khalendar_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                   [ 59%][0m

tests/khalendar_utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m  [ 71%][0m

tests/parse_datetime_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m [ 84%]

[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                                               [ 87%][0m

tests/settings_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                      [ 90%][0m

tests/terminal_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                               [ 91%][0m

tests/utils_test.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                            [ 94%][0m

tests/vdir_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                                   [ 95%][0m

tests/vtimezone_test.py [32m.[0m[32m.[0m[32m.[0m[33m                                              [ 96%][0m

tests/ui/test_calendarwidget.py [32m.[0m[32m.[0m[32m.[0m[32m.[0m[32m.[0m[33m                                    [ 97%][0m

tests/ui/test_editor.py [32m.[0m[32m.[0m[32m.[0m[31mF[0m[31m                                             [ 98%][0m

tests/ui/test_walker.py [32m.[0m[32m.[0m[32m.[0m[31m                                              [ 99%][0m

tests/ui/test_widgets.py [32m.[0m[31m                                               [100%][0m



=================================== FAILURES ===================================

[31m[1m_____________________________ test_convert_to_date _____________________________[0m



    def test_convert_to_date():

        """test for the issue in #666"""

        editor = StartEndEditor(

            BERLIN.localize(dt.datetime(2017, 10, 2, 13)),

            BERLIN.localize(dt.datetime(2017, 10, 4, 18)),

            conf=CONF

        )

>       canvas = editor.render((50, ), True)



[1m[31mtests/ui/test_editor.py[0m:106: 

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/pile.py[0m:794: in render

    canv = w.render(w_size, focus=focus and item_focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/columns.py[0m:903: in render

    w.render(w_size, focus=focus and self.focus_position == i),

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:780: in render

    canv = get_delegate(self).render(size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:112: in cached_render

    canv = fn(self, size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/attr_map.py[0m:150: in render

    canv = self._original_widget.render(size, focus=focus)

[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:113: in cached_render

    validate_size(self, size, canv)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 



widget = <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11>

size = (10,), canv = <urwid.canvas.CompositeCanvas object at 0x7f4da6525110>



    def validate_size(widget, size, canv):

        """

        Raise a WidgetError if a canv does not match size.

        """

        if (size and size[1:] != (0,) and size[0] != canv.cols()) or (len(size) > 1 and size[1] != canv.rows()):

>           raise WidgetError(

                f"Widget {widget!r} rendered ({canv.cols():d} x {canv.rows():d}) canvas when passed size {size!r}!"

            )

[1m[31mE           urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)![0m



[1m[31m.tox/py311-tests/lib/python3.11/site-packages/urwid/widget/widget.py[0m:92: WidgetError

[33m=============================== warnings summary ===============================[0m

tests/backend_test.py:5

  /home/runner/work/khal/khal/tests/backend_test.py:5: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html

    import pkg_resources



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:992: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:993: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:899: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:900: DeprecationWarning: urwid.lcd_display is moved to urwid.display.lcd

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:992: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:993: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:899: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:900: DeprecationWarning: urwid.html_fragment is moved to urwid.display.html_fragment

    return object.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:992: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if ismodule(module) and hasattr(module, '__file__'):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:993: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    f = module.__file__



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:899: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    if getattr(object, '__file__', None):



tests/cli_test.py::test_no_vevent[]

  /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/inspect.py:900: DeprecationWarning: urwid.web_display is moved to urwid.display.web

    return object.__file__



-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

[36m[1m=========================== short test summary info ============================[0m

[31mFAILED[0m tests/ui/test_editor.py::[1mtest_convert_to_date[0m - urwid.widget.widget.WidgetError: Widget <Padding selectable fixed/flow widget <CalendarPopUp selectable flow widget <ValidatedEdit selectable flow widget>> right=1 width=11> rendered (11 x 1) canvas when passed size (10,)!

[31m======= [31m[1m1 failed[0m, [32m330 passed[0m, [33m2 xfailed[0m, [33m2 xpassed[0m, [33m13 warnings[0m[31m in 5.48s[0m[31m =======[0m

[1m[35mpy311-tests:[0m[31m exit 1 (6.08 seconds) /home/runner/work/khal/khal> py.test pid=1957[0m
##[endgroup]
[1m[35m.pkg:[0m[36m _exit[22m[2m>[0m python /opt/hostedtoolcache/Python/3.11.7/x64/lib/python3.11/site-packages/pyproject_api/_backend.py True setuptools.build_meta[0m
[31m  py311-tests: FAIL code 1 (20.85=setup[14.77]+cmd[6.08] seconds)[39m
[31m  evaluation failed :( (20.93 seconds)[39m
[0m
##[error]Process completed with exit code 1.


Changed files:
CHANGELOG.rst
khal/ui/editor.py

Fix diff:
diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 5ea3a158..35af1b05 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -12,6 +12,7 @@ may want to subscribe to `GitHub's tag feed
 not released yet
 
 * UPDATED REQUIREMENT urwid is now required >= 2.1.0
+* FIX support urwid 2.4.2
 * optimization in ikhal when editing events in the far future or past
 * FIX an issue in ikhal with updating the view of the event list after editing
   an event
diff --git a/khal/ui/editor.py b/khal/ui/editor.py
index ff3fc1c8..82a9220e 100644
--- a/khal/ui/editor.py
+++ b/khal/ui/editor.py
@@ -116,7 +116,7 @@ class DateEdit(urwid.WidgetWrap):
         monthdisplay: Literal['firstday', 'firstfullweek']='firstday',
         keybindings: Optional[Dict[str, List[str]]] = None,
     ) -> None:
-        datewidth = len(startdt.strftime(dateformat)) + 1
+        datewidth = len(startdt.strftime(dateformat))
         self._dateformat = dateformat
         if startdt is None:
             startdt = dt.date.today()