Files
syn-chat-bot/.venv/lib/python3.9/site-packages/icalendar/tests/prop/test_vPeriod.py
Hyungi Ahn c2257d3a86 fix: 포트 충돌 회피 — note_bridge 8098, intent_service 8099
Jellyfin(8096), OrbStack(8097) 포트 충돌으로 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 13:53:55 +09:00

64 lines
2.1 KiB
Python

import unittest
from datetime import datetime, timedelta
import pytest
from icalendar.prop import vPeriod
class TestProp(unittest.TestCase):
def test_one_day(self):
# One day in exact datetimes
per = (datetime(2000, 1, 1), datetime(2000, 1, 2))
self.assertEqual(vPeriod(per).to_ical(), b"20000101T000000/20000102T000000")
per = (datetime(2000, 1, 1), timedelta(days=31))
self.assertEqual(vPeriod(per).to_ical(), b"20000101T000000/P31D")
def test_roundtrip(self):
p = vPeriod.from_ical("20000101T000000/20000102T000000")
self.assertEqual(p, (datetime(2000, 1, 1, 0, 0), datetime(2000, 1, 2, 0, 0)))
self.assertEqual(vPeriod(p).to_ical(), b"20000101T000000/20000102T000000")
self.assertEqual(
vPeriod.from_ical("20000101T000000/P31D"),
(datetime(2000, 1, 1, 0, 0), timedelta(31)),
)
def test_round_trip_with_absolute_time(self):
p = vPeriod.from_ical("20000101T000000Z/20000102T000000Z")
self.assertEqual(vPeriod(p).to_ical(), b"20000101T000000Z/20000102T000000Z")
def test_bad_input(self):
self.assertRaises(ValueError, vPeriod.from_ical, "20000101T000000/Psd31D")
def test_timezoned(tzp):
start = tzp.localize(datetime(2000, 1, 1), "Europe/Copenhagen")
end = tzp.localize(datetime(2000, 1, 2), "Europe/Copenhagen")
per = (start, end)
assert vPeriod(per).to_ical() == b"20000101T000000/20000102T000000"
assert vPeriod(per).params["TZID"] == "Europe/Copenhagen"
def test_timezoned_with_timedelta(tzp):
p = vPeriod(
(tzp.localize(datetime(2000, 1, 1), "Europe/Copenhagen"), timedelta(days=31))
)
assert p.to_ical() == b"20000101T000000/P31D"
@pytest.mark.parametrize(
"params",
[
("20000101T000000", datetime(2000, 1, 2)),
(datetime(2000, 1, 1), "20000102T000000"),
(datetime(2000, 1, 2), datetime(2000, 1, 1)),
(datetime(2000, 1, 2), timedelta(-1)),
],
)
def test_invalid_parameters(params):
"""The parameters are of wrong type or of wrong order."""
with pytest.raises(ValueError):
vPeriod(params)