My test log:
platform openbsd7 -- Python 3.10.13, pytest-7.1.3, pluggy-1.3.0
rootdir: /home/wen/ports/obj/khal-0.11.2/khal-0.11.2
plugins: cov-4.0.0, hypothesis-6.47.1
collected 315 items
tests/backend_test.py .............................. [ 9%]
tests/cal_display_test.py .....FFFF [ 12%]
tests/cli_test.py ..........xX.X..................FF....... [ 25%]
tests/configwizard_test.py .. [ 26%]
tests/controller_test.py ............ [ 29%]
tests/event_test.py ..F...............F..F.........F.................F.. [ 46%]
..F. [ 47%]
tests/icalendar_test.py .FFF... [ 49%]
tests/khalendar_test.py ..........F............F...... [ 59%]
tests/khalendar_utils_test.py ......................................... [ 72%]
tests/parse_datetime_test.py .......................................FFFF [ 86%]
FFFFF [ 87%]
tests/settings_test.py ............ [ 91%]
tests/terminal_test.py ... [ 92%]
tests/utils_test.py ........ [ 94%]
tests/vdir_test.py ... [ 95%]
tests/vtimezone_test.py FFF [ 96%]
tests/ui/test_calendarwidget.py ..... [ 98%]
tests/ui/test_editor.py .... [ 99%]
tests/ui/test_widgets.py . [100%]
=================================== FAILURES ===================================
_________________________ test_vertical_month_unicode __________________________
def test_vertical_month_unicode():
try:
locale.setlocale(locale.LC_ALL, 'de_DE.UTF-8')
vert_str = vertical_month(month=12, year=2011,
today=dt.date(2011, 12, 12))
# de_DE locale on at least Net and FreeBSD is different from the one
# commonly used on linux systems
if platform.system() == 'FreeBSD':
assert vert_str == example_de_freebsd
elif platform.system() == 'NetBSD':
assert vert_str == example_de_netbsd
else:
> assert vert_str == example_de
E AssertionError: assert ['\x1b[1m ... 31 1 ', ...] ==
['\x1b[1m ... 31 1 ', ...]
E At index 0 diff: '\x1b[1m Mo Tu We Th Fr Sa Su \x1b[0m' !=
'\x1b[1m Mo Di Mi Do Fr Sa So \x1b[0m'
E Use -v to get more diff
tests/cal_display_test.py:357: AssertionError
____________________ test_vertical_month_unicode_weekdeays _____________________
def test_vertical_month_unicode_weekdeays():
try:
locale.setlocale(locale.LC_ALL, 'cs_CZ.UTF-8')
vert_str = vertical_month(month=12, year=2011,
today=dt.date(2011, 12, 12))
> assert [line.lower() for line in vert_str] == [line.lower() for
> line in example_cz]
E AssertionError: assert ['\x1b[1m ... 31 1 ', ...] == ['\x1b[1m
... 31 1 ', ...]
E At index 0 diff: '\x1b[1m mo tu we th fr sa su \x1b[0m' !=
'\x1b[1m po út st čt pá so ne \x1b[0m'
E Use -v to get more diff
tests/cal_display_test.py:379: AssertionError
___________________ test_vertical_month_unicode_weekdeays_gr ___________________
def test_vertical_month_unicode_weekdeays_gr():
try:
locale.setlocale(locale.LC_ALL, 'el_GR.UTF-8')
vert_str = vertical_month(month=12, year=2011,
today=dt.date(2011, 12, 12))
# on some OSes, Greek locale's abbreviated day of the week and
# month names have accents, on some they haven't
if platform.system() == 'Darwin':
assert strip_accents('\n'.join([line.lower() for line in
vert_str])) == \
'\n'.join(example_gr_darwin)
else:
> assert strip_accents('\n'.join([line.lower() for line in
> vert_str])) == \
'\n'.join(example_gr)
E AssertionError: assert '\x1b[1m m... 1 2 3 4 ' ==
'\x1b[1m ... 1 2 3 4 '
E - δε τρ τε πε πα σα κυ
E + mo tu we th fr sa su
E - δεκ 28 29 30 1 2 3 4
E ? ^^^^
E + dec 28 29 30 1 2 3 4
E ? ^^^
E - 5 6 7 8 9 10 11 ...
E
E ...Full output truncated (42 lines hidden), use '-vv' to
show
tests/cal_display_test.py:412: AssertionError
_________________________ test_vertical_month_abbr_fr __________________________
def test_vertical_month_abbr_fr():
# see issue #653
try:
locale.setlocale(locale.LC_ALL, 'fr_FR.UTF-8')
vert_str = vertical_month(month=12, year=2011,
today=dt.date(2011, 12, 12))
if platform.system() == 'Darwin':
assert '\n'.join(vert_str) == '\n'.join(example_fr_darwin)
else:
> assert '\n'.join(vert_str) == '\n'.join(example_fr)
E AssertionError: assert '\x1b[1m M... 1 2 3 4 ' ==
'\x1b[1m ... 1 2 3 4 '
E - lu ma me je ve sa di
E + Mo Tu We Th Fr Sa Su
E - déc. 28 29 30 1 2 3 4
E ? ^^ --
E + Dec 28 29 30 1 2 3 4
E ? ^^
E - 5 6 7 8 9 10 11 ...
E
E ...Full output truncated (42 lines hidden), use '-vv' to show
tests/cal_display_test.py:438: AssertionError
_______________ test_configure_command_cannot_write_config_file ________________
runner = <tests.cli_test.CustomCliRunner object at 0xa287cf442e0>
def test_configure_command_cannot_write_config_file(runner):
runner = runner()
runner.config_file.remove()
os.chmod(str(runner.xdg_config_home), 555)
result = runner.invoke(main_khal, ['configure'], input=choices())
> assert result.exit_code == 1
E assert 0 == 1
E + where 0 = <Result okay>.exit_code
tests/cli_test.py:786: AssertionError
__________________ test_configure_command_cannot_create_vdir ___________________
runner = <tests.cli_test.CustomCliRunner object at 0xa287cf45120>
def test_configure_command_cannot_create_vdir(runner):
runner = runner()
runner.config_file.remove()
os.mkdir(str(runner.xdg_data_home), mode=555)
result = runner.invoke(
main_khal, ['configure'],
input=choices(),
)
> assert 'Exiting' in result.output
E AssertionError: assert 'Exiting' in 'What ordering of year, month, date
do you want to use?\n[0] year-month-day (today: 2023-12-06)\n[1] day/month/year
(t...Successfully wrote configuration to
/tmp/pytest-of-root/pytest-0/test_configure_command_cannot_1/.config/khal/config\n'
E + where 'What ordering of year, month, date do you want to use?\n[0]
year-month-day (today: 2023-12-06)\n[1] day/month/year (t...Successfully wrote
configuration to
/tmp/pytest-of-root/pytest-0/test_configure_command_cannot_1/.config/khal/config\n'
= <Result okay>.output
tests/cli_test.py:799: AssertionError
_________________________________ test_raw_dt __________________________________
def test_raw_dt():
event_dt = _get_text('event_dt_simple')
start = BERLIN.localize(dt.datetime(2014, 4, 9, 9, 30))
end = BERLIN.localize(dt.datetime(2014, 4, 9, 10, 30))
event = Event.fromString(event_dt, start=start, end=end, **EVENT_KWARGS)
with freeze_time('2016-1-1'):
> assert normalize_component(event.raw) == \
normalize_component(_get_text('event_dt_simple_inkl_vtimezone'))
E AssertionError: assert ('VCALENDAR',...enset())}))})) ==
('VCALENDAR',...enset())}))}))
E At index 2 diff: frozenset({('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:Europe/Berlin\r\nEND:VTIMEZONE\r\n',
frozenset({('DAYLIGHT',
b'BEGIN:DAYLIGHT\r\nDTSTART;VALUE=DATE-TIME:20140330T030000\r\nTZNAME:CEST\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nEND:DAYLIGHT\r\n',
frozenset()), ('STANDARD',
b'BEGIN:STANDARD\r\nDTSTART;VALUE=DATE-TIME:20141026T020000\r\nTZNAME:CET\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nEND:STANDARD\r\n',
frozenset())})), ('VEVENT', b'BEGIN:VEVENT\r\nSUMMARY:An
Event\r\nDTSTART;TZID=Europe/Berlin:20140409T093000\r\nDTEND;TZID=Europe/Berlin:201404...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/event_test.py:50: AssertionError
_____________________________ test_transform_event _____________________________
def test_transform_event():
"""test if transformation between different event types works"""
event_d = _get_text('event_d')
event = Event.fromString(event_d, **EVENT_KWARGS)
assert isinstance(event, AllDayEvent)
start = BERLIN.localize(dt.datetime(2014, 4, 9, 9, 30))
end = BERLIN.localize(dt.datetime(2014, 4, 9, 10, 30))
event.update_start_end(start, end)
assert isinstance(event, LocalizedEvent)
assert event.format(LIST_FORMAT, dt.date(2014, 4, 9)) == '09:30-10:30
An Event\x1b[0m'
assert event.format(SEARCH_FORMAT, dt.date(2014, 4, 9)) == \
'09.04.2014 09:30-10:30 An Event\x1b[0m'
analog_event = Event.fromString(_get_text('event_dt_simple'),
**EVENT_KWARGS)
> assert normalize_component(event.raw) ==
> normalize_component(analog_event.raw)
E AssertionError: assert ('VCALENDAR',...enset())}))})) ==
('VCALENDAR',...enset())}))}))
E At index 2 diff: frozenset({('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:Europe/Berlin\r\nEND:VTIMEZONE\r\n',
frozenset({('DAYLIGHT',
b'BEGIN:DAYLIGHT\r\nDTSTART;VALUE=DATE-TIME:20140330T030000\r\nTZNAME:CEST\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nEND:DAYLIGHT\r\n',
frozenset()), ('STANDARD',
b'BEGIN:STANDARD\r\nDTSTART;VALUE=DATE-TIME:20141026T020000\r\nTZNAME:CET\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nEND:STANDARD\r\n',
frozenset())})), ('VEVENT', b'BEGIN:VEVENT\r\nSUMMARY:An
Event\r\nDTSTART;TZID=Europe/Berlin;VALUE=DATE-TIME:20140409T093000\r\nDTEND;TZID=Euro...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/event_test.py:184: AssertionError
________________________________ test_dt_two_tz ________________________________
def test_dt_two_tz():
event_dt_two_tz = _get_text('event_dt_two_tz')
cal_dt_two_tz = _get_text('cal_dt_two_tz')
event = Event.fromString(event_dt_two_tz, **EVENT_KWARGS)
with freeze_time('2016-02-16 12:00:00'):
> assert normalize_component(cal_dt_two_tz) ==
> normalize_component(event.raw)
E AssertionError: assert ('VCALENDAR',...enset())}))})) ==
('VCALENDAR',...enset())}))}))
E At index 2 diff: frozenset({('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:America/New_York\r\nEND:VTIMEZONE\r\n',
frozenset({('DAYLIGHT',
b'BEGIN:DAYLIGHT\r\nDTSTART:20140309T030000\r\nTZNAME:EDT\r\nTZOFFSETFROM:-0500\r\nTZOFFSETTO:-0400\r\nEND:DAYLIGHT\r\n',
frozenset()), ('STANDARD',
b'BEGIN:STANDARD\r\nDTSTART:20141102T010000\r\nTZNAME:EST\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nEND:STANDARD\r\n',
frozenset())})), ('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:Europe/Berlin\r\nEND:VTIMEZONE\r\n',
frozenset({('STANDARD',
b'BEGIN:STANDARD\r\nDTSTART:20141026T020000\r\nTZNAME:C...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/event_test.py:222: AssertionError
______________________________ test_event_no_dst _______________________________
def test_event_no_dst():
"""test the creation of a corect VTIMEZONE for timezones with no dst"""
event_no_dst = _get_text('event_no_dst')
cal_no_dst = _get_text('cal_no_dst')
event = Event.fromString(event_no_dst, calendar='foobar',
locale=LOCALE_BOGOTA)
if version.parse(pytz.__version__) > version.Version('2017.1'):
if version.parse(pytz.__version__) < version.Version('2022.7'):
cal_no_dst = cal_no_dst.replace(
'TZNAME:COT',
'RDATE:20380118T221407\r\nTZNAME:-05'
)
else:
cal_no_dst = cal_no_dst.replace(
'TZNAME:COT',
'TZNAME:-05'
)
> assert normalize_component(event.raw) == normalize_component(cal_no_dst)
E AssertionError: assert ('VCALENDAR',...enset())}))})) ==
('VCALENDAR',...enset())}))}))
E At index 2 diff: frozenset({('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:America/Bogota\r\nEND:VTIMEZONE\r\n',
frozenset({('STANDARD',
b'BEGIN:STANDARD\r\nDTSTART;VALUE=DATE-TIME:19930206T230000\r\nTZNAME:-05\r\nTZOFFSETFROM:-0400\r\nTZOFFSETTO:-0500\r\nEND:STANDARD\r\n',
frozenset())})), ('VEVENT', b'BEGIN:VEVENT\r\nSUMMARY:An
Event\r\nDTSTART;TZID=America/Bogota:20140409T093000\r\nDTEND;TZID=America/Bogota:20140409T103000\r\nDTSTAMP:20140401T234817Z\r\nUID:event_no_dst\r\nEND:VEVENT\r\n',
frozenset())}) != frozenset({('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:America/Bogota\r...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/event_test.py:370: AssertionError
_________________________ test_create_timezone_static __________________________
def test_create_timezone_static():
gmt = pytz.timezone('Etc/GMT-8')
> assert create_timezone(gmt).to_ical().split() == [
b'BEGIN:VTIMEZONE',
b'TZID:Etc/GMT-8',
b'BEGIN:STANDARD',
b'DTSTART:16010101T000000',
b'RDATE:16010101T000000',
b'TZNAME:Etc/GMT-8',
b'TZOFFSETFROM:+0800',
b'TZOFFSETTO:+0800',
b'END:STANDARD',
b'END:VTIMEZONE',
]
E AssertionError: assert [b'BEGIN:VTIM...c/GMT-8', ...] ==
[b'BEGIN:VTIM...c/GMT-8', ...]
E At index 3 diff: b'DTSTART;VALUE=DATE-TIME:16010101T000000' !=
b'DTSTART:16010101T000000'
E Use -v to get more diff
tests/event_test.py:552: AssertionError
________________________ test_create_timezone_in_future ________________________
def test_create_timezone_in_future():
"""Events too far into the future (after the next DST transition) used
to be created with invalid timezones"""
with freeze_time('2019-03-31'):
> assert create_timezone(
pytz.timezone('Europe/Amsterdam'),
dt.datetime(2022, 1, 1, 18, 0)).to_ical().split() == [
b'BEGIN:VTIMEZONE',
b'TZID:Europe/Amsterdam',
b'BEGIN:STANDARD',
b'DTSTART:20211031T020000',
b'TZNAME:CET',
b'TZOFFSETFROM:+0200',
b'TZOFFSETTO:+0100',
b'END:STANDARD',
b'BEGIN:DAYLIGHT',
b'DTSTART:20220327T030000',
b'TZNAME:CEST',
b'TZOFFSETFROM:+0100',
b'TZOFFSETTO:+0200',
b'END:DAYLIGHT',
b'END:VTIMEZONE']
E AssertionError: assert [b'BEGIN:VTIM...M:+0200', ...] ==
[b'BEGIN:VTIM...M:+0200', ...]
E At index 3 diff: b'DTSTART;VALUE=DATE-TIME:20211031T020000' !=
b'DTSTART:20211031T020000'
E Use -v to get more diff
tests/event_test.py:631: AssertionError
_______________________________ test_new_vevent ________________________________
def test_new_vevent():
with freeze_time('20220702T1400'):
vevent = _replace_uid(new_vevent(
LOCALE_BERLIN,
dt.date(2022, 7, 2),
dt.date(2022, 7, 3),
'An Event',
allday=True,
repeat='weekly',
))
> assert vevent.to_ical().decode('utf-8') == '\r\n'.join([
'BEGIN:VEVENT',
'SUMMARY:An Event',
'DTSTART;VALUE=DATE:20220702',
'DTEND;VALUE=DATE:20220703',
'DTSTAMP:20220702T140000Z',
'UID:E41JRQX2DB4P1AQZI86BAT7NHPBHPRIIHQKA',
'RRULE:FREQ=WEEKLY',
'END:VEVENT',
''
])
E AssertionError: assert 'BEGIN:VEVENT...ND:VEVENT\r\n' ==
'BEGIN:VEVENT...ND:VEVENT\r\n'
E Skipping 85 identical leading characters in diff, use -v to show
E 3
E - DTSTAMP:20220702T140000Z
E + DTSTAMP;VALUE=DATE-TIME:20220702T140000Z
E ? ++++++++++++++++
E UID:E41JRQX2DB4P1AQZI86BAT7NHPBHPRIIHQKA
... RRULE:FREQ=WEEKLY
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/icalendar_test.py:40: AssertionError
________________________________ test_split_ics ________________________________
def test_split_ics():
cal = _get_text('cal_lots_of_timezones')
vevents = split_ics(cal)
vevents0 = vevents[0].split('\r\n')
vevents1 = vevents[1].split('\r\n')
part0 = _get_text('part0').split('\n')
part1 = _get_text('part1').split('\n')
assert _get_TZIDs(vevents0) == _get_TZIDs(part0)
assert _get_TZIDs(vevents1) == _get_TZIDs(part1)
> assert sorted(vevents0) == sorted(part0)
E AssertionError: assert ['', 'BEGIN:D...IMEZONE', ...] == ['',
'BEGIN:D...IMEZONE', ...]
E At index 6 diff:
'DTEND;TZID=Europe_London;VALUE=DATE-TIME:20140509T203000' !=
'DTEND;TZID=Europe_London:20140509T203000'
E Use -v to get more diff
tests/icalendar_test.py:66: AssertionError
__________________________ test_split_ics_random_uid ___________________________
def test_split_ics_random_uid():
random.seed(123)
cal = _get_text('cal_lots_of_timezones')
vevents = split_ics(cal, random_uid=True)
part0 = _get_text('part0').split('\n')
part1 = _get_text('part1').split('\n')
for item in icalendar.Calendar.from_ical(vevents[0]).walk():
if item.name == 'VEVENT':
assert item['UID'] == 'DRF0RGCY89VVDKIV9VPKA1FYEAU2GCFJIBS1'
for item in icalendar.Calendar.from_ical(vevents[1]).walk():
if item.name == 'VEVENT':
assert item['UID'] == '4Q4CTV74N7UAZ618570X6CLF5QKVV9ZE3YVB'
# after replacing the UIDs, everything should be as above
vevents0 = vevents[0].replace('DRF0RGCY89VVDKIV9VPKA1FYEAU2GCFJIBS1',
'123').split('\r\n')
vevents1 = vevents[1].replace('4Q4CTV74N7UAZ618570X6CLF5QKVV9ZE3YVB',
'abcde').split('\r\n')
assert _get_TZIDs(vevents0) == _get_TZIDs(part0)
assert _get_TZIDs(vevents1) == _get_TZIDs(part1)
> assert sorted(vevents0) == sorted(part0)
E AssertionError: assert ['', 'BEGIN:D...IMEZONE', ...] == ['',
'BEGIN:D...IMEZONE', ...]
E At index 6 diff:
'DTEND;TZID=Europe_London;VALUE=DATE-TIME:20140509T203000' !=
'DTEND;TZID=Europe_London:20140509T203000'
E Use -v to get more diff
tests/icalendar_test.py:92: AssertionError
___________________________ TestCollection.test_get ____________________________
self = <tests.khalendar_test.TestCollection object at 0xa295e854f40>
coll_vdirs = (<khal.khalendar.khalendar.CalendarCollection object at
0xa287d039270>, {"Dad's calendar": <khal.khalendar.vdir.Vdir o...r':
<khal.khalendar.vdir.Vdir object at 0xa287d03b640>, 'private':
<khal.khalendar.vdir.Vdir object at 0xa287d03b940>})
def test_get(self, coll_vdirs):
"""test getting an event by its href"""
coll, vdirs = coll_vdirs
event = Event.fromString(
_get_text('event_dt_simple'), href='xyz.ics', calendar=cal1,
locale=LOCALE_BERLIN,
)
coll.insert(event, cal1)
event_from_db = coll.get_event(SIMPLE_EVENT_UID + '.ics', cal1)
with freeze_time('2016-1-1'):
> assert normalize_component(event_from_db.raw) == \
normalize_component(_get_text('event_dt_simple_inkl_vtimezone'))
E AssertionError: assert ('VCALENDAR',...enset())}))})) ==
('VCALENDAR',...enset())}))}))
E At index 2 diff: frozenset({('VTIMEZONE',
b'BEGIN:VTIMEZONE\r\nTZID:Europe/Berlin\r\nEND:VTIMEZONE\r\n',
frozenset({('DAYLIGHT',
b'BEGIN:DAYLIGHT\r\nDTSTART;VALUE=DATE-TIME:20140330T030000\r\nTZNAME:CEST\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nEND:DAYLIGHT\r\n',
frozenset()), ('STANDARD',
b'BEGIN:STANDARD\r\nDTSTART;VALUE=DATE-TIME:20141026T020000\r\nTZNAME:CET\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nEND:STANDARD\r\n',
frozenset())})), ('VEVENT', b'BEGIN:VEVENT\r\nSUMMARY:An
Event\r\nDTSTART;TZID=Europe/Berlin:20140409T093000\r\nDTEND;TZID=Europe/Berlin:201404...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/khalendar_test.py:227: AssertionError
_____________________ TestDbCreation.test_failed_create_db _____________________
self = <tests.khalendar_test.TestDbCreation object at 0xa294fe3ded0>
tmpdir = local('/tmp/pytest-of-root/pytest-0/test_failed_create_db0')
def test_failed_create_db(self, tmpdir):
dbdir = str(tmpdir) + '/subdir/'
dbpath = dbdir + 'khal.db'
os.chmod(str(tmpdir), 400)
calendars = {cal1: {'name': cal1, 'path': str(tmpdir)}}
> with pytest.raises(CouldNotCreateDbDir):
E Failed: DID NOT RAISE <class
'khal.khalendar.exceptions.CouldNotCreateDbDir'>
tests/khalendar_test.py:415: Failed
________________________ test_construct_event_format_de ________________________
@freeze_time('20140216T120000')
def test_construct_event_format_de():
for data_list, vevent_expected in test_set_format_de:
vevent = _construct_event(data_list.split(), locale=LOCALE_BERLIN)
> assert _replace_uid(vevent).to_ical() == vevent_expected
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 102 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:400: AssertionError
_______________________ test__construct_event_format_us ________________________
@freeze_time('2014-02-16 12:00:00')
def test__construct_event_format_us():
for data_list, vevent in test_set_format_us:
event = _construct_event(data_list.split(), locale=LOCALE_NEW_YORK)
> assert _replace_uid(event).to_ical() == vevent
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 68 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:419: AssertionError
__________________ test__construct_event_format_de_complexer ___________________
@freeze_time('2014-02-16 12:00:00')
def test__construct_event_format_de_complexer():
for data_list, vevent in test_set_format_de_complexer:
event = _construct_event(data_list.split(), locale=LOCALE_BERLIN)
> assert _replace_uid(event).to_ical() == vevent
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 65 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:452: AssertionError
________________________________ test_leap_year ________________________________
def test_leap_year():
for data_list, vevent in test_set_leap_year:
with freeze_time('1999-1-1'):
with pytest.raises(DateTimeParseError):
event = _construct_event(data_list.split(),
locale=LOCALE_BERLIN)
with freeze_time('2016-1-1 20:21:22'):
event = _construct_event(data_list.split(),
locale=LOCALE_BERLIN)
> assert _replace_uid(event).to_ical() == vevent
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 102 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:471: AssertionError
_______________________________ test_description _______________________________
def test_description():
for data_list, vevent in test_set_description:
with freeze_time('2014-02-16 12:00:00'):
event = _construct_event(data_list.split(),
locale=LOCALE_BERLIN)
> assert _replace_uid(event).to_ical() == vevent
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 65 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:501: AssertionError
_____________________________ test_repeat_floating _____________________________
def test_repeat_floating():
for data_list, vevent in test_set_repeat_floating:
with freeze_time('2014-02-16 12:00:00'):
event = _construct_event(data_list.split(),
description='please describe the
event',
repeat='daily',
until='04.06.2015',
locale=LOCALE_FLOATING)
> assert normalize_component(_replace_uid(event).to_ical()) == \
normalize_component(vevent)
E AssertionError: assert ('VEVENT', b'..., frozenset()) ==
('VEVENT', b'..., frozenset())
E At index 1 diff:
b'BEGIN:VEVENT\r\nSUMMARY:\xc3\x84wes\xc3\xb6me
Event\r\nDTSTART;VALUE=DATE-TIME:20140216T080000\r\nDTEND;VALUE=DATE-TIME:20140216T090000\r\nDTSTAMP;VALUE=DATE-TIME:20140216T120000Z\r\nUID:E41JRQX2DB4P1AQZI86BAT7NHPBHPRIIHQKA\r\nRRULE:FREQ=DAILY;UNTIL=20150604T000000\r\nDESCRIPTION:please
describe the event\r\nEND:VEVENT\r\n' !=
b'BEGIN:VEVENT\r\nSUMMARY:\xc3\x84wes\xc3\xb6me
Event\r\nDTSTART:20140216T080000\r\nDTEND:20140216T090000\r\nDTSTAMP:20140216T120000Z\r\nUID:E41JRQX2DB4P1AQZI86BAT7NHPBHPRIIHQKA\r\nRRULE:FREQ=DAILY;UNTIL=20150604T000000\r\nDESCR...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/parse_datetime_test.py:523: AssertionError
____________________________ test_repeat_localized _____________________________
def test_repeat_localized():
for data_list, vevent in test_set_repeat_localized:
with freeze_time('2014-02-16 12:00:00'):
event = _construct_event(data_list.split(),
description='please describe the
event',
repeat='daily',
until='05.06.2015',
locale=LOCALE_BERLIN)
> assert normalize_component(_replace_uid(event).to_ical()) == \
normalize_component(vevent)
E AssertionError: assert ('VEVENT', b'..., frozenset()) ==
('VEVENT', b'..., frozenset())
E At index 1 diff:
b'BEGIN:VEVENT\r\nSUMMARY:\xc3\x84wes\xc3\xb6me
Event\r\nDTSTART;TZID=Europe/Berlin;VALUE=DATE-TIME:20140216T080000\r\nDTEND;TZID=Europe/Berlin;VALUE=DATE-TIME:20140216T090000\r\nDTSTAMP;VALUE=DATE-TIME:20140216T120000Z\r\nUID:E41JRQX2DB4P1AQZI86BAT7NHPBHPRIIHQKA\r\nRRULE:FREQ=DAILY;UNTIL=20150604T230000Z\r\nDESCRIPTION:please
describe the event\r\nEND:VEVENT\r\n' !=
b'BEGIN:VEVENT\r\nSUMMARY:\xc3\x84wes\xc3\xb6me
Event\r\nDTSTART;TZID=Europe/Berlin:20140216T080000\r\nDTEND;TZID=Europe/Berlin:20140216T090000\r\nDTSTAMP:20140216T120000Z\r\nUID:E41JRQX2DB...
E
E ...Full output truncated (2 lines hidden), use '-vv' to show
tests/parse_datetime_test.py:546: AssertionError
__________________________________ test_alarm __________________________________
@freeze_time('2014-02-16 12:00:00')
def test_alarm():
for data_list, vevent in test_set_alarm:
event = _construct_event(data_list.split(),
description='please describe the event',
alarm='23m',
locale=LOCALE_BERLIN)
> assert _replace_uid(event).to_ical() == vevent
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 65 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:574: AssertionError
_________________ test_description_and_location_and_categories _________________
@freeze_time('2014-02-16 12:00:00')
def test_description_and_location_and_categories():
for data_list, vevent in
test_set_description_and_location_and_categories:
event = _construct_event(data_list.split(),
description='please describe the event',
location='in the office',
categories=['boring meeting'],
locale=LOCALE_BERLIN)
> assert _replace_uid(event).to_ical() == vevent
E AssertionError: assert b'BEGIN:VEVEN...ND:VEVENT\r\n' ==
b'BEGIN:VEVEN...ND:VEVENT\r\n'
E At index 65 diff: b';' != b':'
E Use -v to get more diff
tests/parse_datetime_test.py:597: AssertionError
_________________________________ test_berlin __________________________________
def test_berlin():
vberlin_std = b'\r\n'.join(
[b'BEGIN:STANDARD',
b'DTSTART:20141026T020000',
b'TZNAME:CET',
b'TZOFFSETFROM:+0200',
b'TZOFFSETTO:+0100',
b'END:STANDARD',
])
vberlin_dst = b'\r\n'.join(
[b'BEGIN:DAYLIGHT',
b'DTSTART:20150329T030000',
b'TZNAME:CEST',
b'TZOFFSETFROM:+0100',
b'TZOFFSETTO:+0200',
b'END:DAYLIGHT',
])
vberlin = create_timezone(berlin, atime, atime).to_ical()
assert b'TZID:Europe/Berlin' in vberlin
> assert vberlin_std in vberlin
E AssertionError: assert
b'BEGIN:STANDARD\r\nDTSTART:20141026T020000\r\nTZNAME:CET\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nEND:STANDARD'
in
b'BEGIN:VTIMEZONE\r\nTZID:Europe/Berlin\r\nBEGIN:STANDARD\r\nDTSTART;VALUE=DATE-TIME:20141026T020000\r\nTZNAME:CET\r\n...ATE-TIME:20150329T030000\r\nTZNAME:CEST\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\n'
tests/vtimezone_test.py:36: AssertionError
______________________________ test_berlin_rdate _______________________________
def test_berlin_rdate():
vberlin_std = b'\r\n'.join(
[b'BEGIN:STANDARD',
b'DTSTART:20141026T020000',
b'RDATE:20151025T020000,20161030T020000',
b'TZNAME:CET',
b'TZOFFSETFROM:+0200',
b'TZOFFSETTO:+0100',
b'END:STANDARD',
])
vberlin_dst = b'\r\n'.join(
[b'BEGIN:DAYLIGHT',
b'DTSTART:20150329T030000',
b'RDATE:20160327T030000',
b'TZNAME:CEST',
b'TZOFFSETFROM:+0100',
b'TZOFFSETTO:+0200',
b'END:DAYLIGHT',
])
vberlin = create_timezone(berlin, atime, btime).to_ical()
assert b'TZID:Europe/Berlin' in vberlin
> assert vberlin_std in vberlin
E AssertionError: assert
b'BEGIN:STANDARD\r\nDTSTART:20141026T020000\r\nRDATE:20151025T020000,20161030T020000\r\nTZNAME:CET\r\nTZOFFSETFROM:+0200\r\nTZOFFSETTO:+0100\r\nEND:STANDARD'
in
b'BEGIN:VTIMEZONE\r\nTZID:Europe/Berlin\r\nBEGIN:STANDARD\r\nDTSTART;VALUE=DATE-TIME:20141026T020000\r\nRDATE:20151025...r\nRDATE:20160327T030000\r\nTZNAME:CEST\r\nTZOFFSETFROM:+0100\r\nTZOFFSETTO:+0200\r\nEND:DAYLIGHT\r\nEND:VTIMEZONE\r\n'
tests/vtimezone_test.py:63: AssertionError
_________________________________ test_bogota __________________________________
def test_bogota():
vbogota = [b'BEGIN:VTIMEZONE',
b'TZID:America/Bogota',
b'BEGIN:STANDARD',
b'DTSTART:19930206T230000',
b'TZNAME:COT',
b'TZOFFSETFROM:-0400',
b'TZOFFSETTO:-0500',
b'END:STANDARD',
b'END:VTIMEZONE',
b'']
if version.parse(pytz.__version__) > version.Version('2017.1'):
vbogota[4] = b'TZNAME:-05'
if version.parse(pytz.__version__) < version.Version('2022.7'):
vbogota.insert(4, b'RDATE:20380118T221407')
> assert create_timezone(bogota, atime, atime).to_ical().split(b'\r\n')
> == vbogota
E AssertionError: assert [b'BEGIN:VTIM...M:-0400', ...] ==
[b'BEGIN:VTIM...M:-0400', ...]
E At index 3 diff: b'DTSTART;VALUE=DATE-TIME:19930206T230000' !=
b'DTSTART:19930206T230000'
E Use -v to get more diff
tests/vtimezone_test.py:83: AssertionError
=============================== warnings summary ===============================
tests/backend_test.py:5
/home/wen/ports/obj/khal-0.11.2/khal-0.11.2/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
../../../../../../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871
/usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871:
DeprecationWarning: Deprecated call to
`pkg_resources.declare_namespace('mpl_toolkits')`.
Implementing implicit namespace packages (as specified in PEP 420) is
preferred to `pkg_resources.declare_namespace`. See
https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
declare_namespace(pkg)
../../../../../../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871
../../../../../../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871
../../../../../../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871
../../../../../../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871
../../../../../../usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871
/usr/local/lib/python3.10/site-packages/pkg_resources/__init__.py:2871:
DeprecationWarning: Deprecated call to
`pkg_resources.declare_namespace('sphinxcontrib')`.
Implementing implicit namespace packages (as specified in PEP 420) is
preferred to `pkg_resources.declare_namespace`. See
https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages
declare_namespace(pkg)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/cal_display_test.py::test_vertical_month_unicode - AssertionErro...
FAILED tests/cal_display_test.py::test_vertical_month_unicode_weekdeays - Ass...
FAILED tests/cal_display_test.py::test_vertical_month_unicode_weekdeays_gr - ...
FAILED tests/cal_display_test.py::test_vertical_month_abbr_fr - AssertionErro...
FAILED tests/cli_test.py::test_configure_command_cannot_write_config_file - a...
FAILED tests/cli_test.py::test_configure_command_cannot_create_vdir - Asserti...
FAILED tests/event_test.py::test_raw_dt - AssertionError: assert ('VCALENDAR'...
FAILED tests/event_test.py::test_transform_event - AssertionError: assert ('V...
FAILED tests/event_test.py::test_dt_two_tz - AssertionError: assert ('VCALEND...
FAILED tests/event_test.py::test_event_no_dst - AssertionError: assert ('VCAL...
FAILED tests/event_test.py::test_create_timezone_static - AssertionError: ass...
FAILED tests/event_test.py::test_create_timezone_in_future - AssertionError: ...
FAILED tests/icalendar_test.py::test_new_vevent - AssertionError: assert 'BEG...
FAILED tests/icalendar_test.py::test_split_ics - AssertionError: assert ['', ...
FAILED tests/icalendar_test.py::test_split_ics_random_uid - AssertionError: a...
FAILED tests/khalendar_test.py::TestCollection::test_get - AssertionError: as...
FAILED tests/khalendar_test.py::TestDbCreation::test_failed_create_db - Faile...
FAILED tests/parse_datetime_test.py::test_construct_event_format_de - Asserti...
FAILED tests/parse_datetime_test.py::test__construct_event_format_us - Assert...
FAILED tests/parse_datetime_test.py::test__construct_event_format_de_complexer
FAILED tests/parse_datetime_test.py::test_leap_year - AssertionError: assert ...
FAILED tests/parse_datetime_test.py::test_description - AssertionError: asser...
FAILED tests/parse_datetime_test.py::test_repeat_floating - AssertionError: a...
FAILED tests/parse_datetime_test.py::test_repeat_localized - AssertionError: ...
FAILED tests/parse_datetime_test.py::test_alarm - AssertionError: assert b'BE...
FAILED
tests/parse_datetime_test.py::test_description_and_location_and_categories
FAILED tests/vtimezone_test.py::test_berlin - AssertionError: assert b'BEGIN:...
FAILED tests/vtimezone_test.py::test_berlin_rdate - AssertionError: assert b'...
FAILED tests/vtimezone_test.py::test_bogota - AssertionError: assert [b'BEGIN...
====== 29 failed, 283 passed, 1 xfailed, 2 xpassed, 7 warnings in 18.76s =======
________________________________________
发件人: Stuart Henderson <[email protected]>
发送时间: 2023年12月5日 20:14
收件人: wen heping
抄送: [email protected]; [email protected]
主题: Re: productivity/khal: Update to 0.11.2
On 2023/12/05 03:08, wen heping wrote:
> Hi, all:
>
> Here is a patch for productivity/khal:
> i) Update to 0.11.2
> ii) Add some missing TEST_DEPENDS
>
> It build and run well on amd64-current system.
> In all 300+ tests there are 29 tests failed.
> No other ports depend on it.
vdirsyncer is a RUN_DEPENDS so it doesn't need listing again in
TEST_DEPENDS
can you show your test log? I only get 4 failed so maybe there are
some other deps we can add.
> Index: productivity/khal/Makefile
> ===================================================================
> RCS file: /cvs/ports/productivity/khal/Makefile,v
> retrieving revision 1.20
> diff -u -p -r1.20 Makefile
> --- productivity/khal/Makefile 13 Nov 2022 20:31:00 -0000 1.20
> +++ productivity/khal/Makefile 5 Dec 2023 03:03:27 -0000
> @@ -1,8 +1,7 @@
> COMMENT = standards based terminal calendar
>
> -MODPY_EGG_VERSION = 0.10.4
> +MODPY_EGG_VERSION = 0.11.2
> DISTNAME = khal-${MODPY_EGG_VERSION}
> -REVISION = 2
>
> CATEGORIES = productivity
>
> @@ -31,7 +30,9 @@ RUN_DEPENDS = devel/py-atomicwrites${MO
> devel/py-urwid${MODPY_FLAVOR} \
> devel/py-xdg${MODPY_FLAVOR} \
> productivity/vdirsyncer
> -TEST_DEPENDS = devel/py-freezegun${MODPY_FLAVOR} \
> - devel/py-test-cov${MODPY_FLAVOR}
> +TEST_DEPENDS = devel/py-hypothesis${MODPY_FLAVOR} \
> + devel/py-freezegun${MODPY_FLAVOR} \
> + productivity/vdirsyncer \
> + sysutils/py-packaging${MODPY_FLAVOR}
>
> .include <bsd.port.mk>
> Index: productivity/khal/distinfo
> ===================================================================
> RCS file: /cvs/ports/productivity/khal/distinfo,v
> retrieving revision 1.8
> diff -u -p -r1.8 distinfo
> --- productivity/khal/distinfo 15 Sep 2021 20:06:12 -0000 1.8
> +++ productivity/khal/distinfo 5 Dec 2023 03:03:27 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (khal-0.10.4.tar.gz) = P9uYCpphwCBteoKxb3e0CKTzQaK4ZrnJ/PamQYUNEp8=
> -SIZE (khal-0.10.4.tar.gz) = 185736
> +SHA256 (khal-0.11.2.tar.gz) = j7jYk3HlPiI1lToHZeQbl+F0hIpojWN2hHdXbQP4mbo=
> +SIZE (khal-0.11.2.tar.gz) = 196986
> Index: productivity/khal/pkg/PLIST
> ===================================================================
> RCS file: /cvs/ports/productivity/khal/pkg/PLIST,v
> retrieving revision 1.6
> diff -u -p -r1.6 PLIST
> --- productivity/khal/pkg/PLIST 13 Nov 2022 20:31:00 -0000 1.6
> +++ productivity/khal/pkg/PLIST 5 Dec 2023 03:03:27 -0000
> @@ -24,6 +24,8 @@ lib/python${MODPY_VERSION}/site-packages
>
> lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}configwizard.${MODPY_PYC_MAGIC_TAG}pyc
>
> lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}controllers.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>
> lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}controllers.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}custom_types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}custom_types.${MODPY_PYC_MAGIC_TAG}pyc
>
> lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>
> lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}exceptions.${MODPY_PYC_MAGIC_TAG}pyc
>
> lib/python${MODPY_VERSION}/site-packages/khal/${MODPY_PYCACHE}icalendar.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -40,6 +42,7 @@ lib/python${MODPY_VERSION}/site-packages
> lib/python${MODPY_VERSION}/site-packages/khal/cli.py
> lib/python${MODPY_VERSION}/site-packages/khal/configwizard.py
> lib/python${MODPY_VERSION}/site-packages/khal/controllers.py
> +lib/python${MODPY_VERSION}/site-packages/khal/custom_types.py
> lib/python${MODPY_VERSION}/site-packages/khal/exceptions.py
> lib/python${MODPY_VERSION}/site-packages/khal/icalendar.py
> lib/python${MODPY_VERSION}/site-packages/khal/khalendar/