UID replacement benchmark

This commit is contained in:
Markus Unterwaditzer 2017-07-16 22:16:58 +02:00
parent e3060529a5
commit 56fe38fcdc

View file

@ -161,47 +161,58 @@ def test_multiline_uid(benchmark):
assert benchmark(lambda: vobject.Item(a).uid) == u'123456789abcdefgh' assert benchmark(lambda: vobject.Item(a).uid) == u'123456789abcdefgh'
def test_multiline_uid_complex(): complex_uid_item = dedent(u'''
a = dedent(u''' BEGIN:VCALENDAR
BEGIN:VCALENDAR BEGIN:VTIMEZONE
BEGIN:VTIMEZONE TZID:Europe/Rome
TZID:Europe/Rome X-LIC-LOCATION:Europe/Rome
X-LIC-LOCATION:Europe/Rome BEGIN:DAYLIGHT
BEGIN:DAYLIGHT TZOFFSETFROM:+0100
TZOFFSETFROM:+0100 TZOFFSETTO:+0200
TZOFFSETTO:+0200 TZNAME:CEST
TZNAME:CEST DTSTART:19700329T020000
DTSTART:19700329T020000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3 END:DAYLIGHT
END:DAYLIGHT BEGIN:STANDARD
BEGIN:STANDARD TZOFFSETFROM:+0200
TZOFFSETFROM:+0200 TZOFFSETTO:+0100
TZOFFSETTO:+0100 TZNAME:CET
TZNAME:CET DTSTART:19701025T030000
DTSTART:19701025T030000 RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10 END:STANDARD
END:STANDARD END:VTIMEZONE
END:VTIMEZONE BEGIN:VEVENT
BEGIN:VEVENT DTSTART:20140124T133000Z
DTSTART:20140124T133000Z DTEND:20140124T143000Z
DTEND:20140124T143000Z DTSTAMP:20140612T090652Z
DTSTAMP:20140612T090652Z UID:040000008200E00074C5B7101A82E0080000000050AAABEEF50DCF
UID:040000008200E00074C5B7101A82E0080000000050AAABEEF50DCF 001000000062548482FA830A46B9EA62114AC9F0EF
001000000062548482FA830A46B9EA62114AC9F0EF CREATED:20140110T102231Z
CREATED:20140110T102231Z DESCRIPTION:Test.
DESCRIPTION:Test. LAST-MODIFIED:20140123T095221Z
LAST-MODIFIED:20140123T095221Z LOCATION:25.12.01.51
LOCATION:25.12.01.51 SEQUENCE:0
SEQUENCE:0 STATUS:CONFIRMED
STATUS:CONFIRMED SUMMARY:Präsentation
SUMMARY:Präsentation TRANSP:OPAQUE
TRANSP:OPAQUE END:VEVENT
END:VEVENT END:VCALENDAR
END:VCALENDAR ''').strip()
''').strip()
assert vobject.Item(a).uid == (u'040000008200E00074C5B7101A82E008000000005'
u'0AAABEEF50DCF001000000062548482FA830A46B9' def test_multiline_uid_complex(benchmark):
u'EA62114AC9F0EF') assert benchmark(lambda: vobject.Item(complex_uid_item).uid) == (
u'040000008200E00074C5B7101A82E008000000005'
u'0AAABEEF50DCF001000000062548482FA830A46B9'
u'EA62114AC9F0EF'
)
def test_replace_multiline_uid(benchmark):
def inner():
return vobject.Item(complex_uid_item).with_uid('a').uid
assert benchmark(inner) == 'a'
@pytest.mark.parametrize('template', [EVENT_TEMPLATE, @pytest.mark.parametrize('template', [EVENT_TEMPLATE,