fix: 포트 충돌 회피 — note_bridge 8098, intent_service 8099

Jellyfin(8096), OrbStack(8097) 포트 충돌으로 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-19 13:53:55 +09:00
parent dc08d29509
commit c2257d3a86
2709 changed files with 619549 additions and 10 deletions

View File

@@ -0,0 +1,112 @@
import unittest
from datetime import datetime
from icalendar import Calendar, cli
try:
import zoneinfo
except ModuleNotFoundError:
from backports import zoneinfo
INPUT = """
BEGIN:VCALENDAR
VERSION:2.0
CALSCALE:GREGORIAN
BEGIN:VEVENT
SUMMARY:Test Summary
ORGANIZER:organizer@test.test
ATTENDEE:attendee1@example.com
ATTENDEE:attendee2@test.test
COMMENT:Comment
DTSTART;TZID=Europe/Warsaw:20220820T103400
DTEND;TZID=Europe/Warsaw:20220820T113400
LOCATION:New Amsterdam, 1000 Sunrise Test Street
DESCRIPTION: Test Description
END:VEVENT
BEGIN:VEVENT
ORGANIZER:organizer@test.test
ATTENDEE:attendee1@example.com
SUMMARY:Test summary
DTSTART;TZID=Europe/Warsaw:20220820T200000
DTEND;TZID=Europe/Warsaw:20220820T203000
LOCATION:New Amsterdam, 1010 Test Street
DESCRIPTION:Test Description\\nThis one is multiline
END:VEVENT
BEGIN:VEVENT
UID:1
SUMMARY:TEST
DTSTART:20220511
DURATION:P5D
END:VEVENT
END:VCALENDAR
"""
def local_datetime(dt):
return (
datetime.strptime(dt, "%Y%m%dT%H%M%S")
.replace(tzinfo=zoneinfo.ZoneInfo("Europe/Warsaw"))
.astimezone()
.strftime("%c")
)
# datetimes are displayed in the local timezone, so we cannot just hardcode them
firststart = local_datetime("20220820T103400")
firstend = local_datetime("20220820T113400")
secondstart = local_datetime("20220820T200000")
secondend = local_datetime("20220820T203000")
PROPER_OUTPUT = f""" Organizer: organizer <organizer@test.test>
Attendees:
attendee1 <attendee1@example.com>
attendee2 <attendee2@test.test>
Summary : Test Summary
Starts : {firststart}
End : {firstend}
Duration : 1:00:00
Location : New Amsterdam, 1000 Sunrise Test Street
Comment : Comment
Description:
Test Description
Organizer: organizer <organizer@test.test>
Attendees:
attendee1 <attendee1@example.com>
Summary : Test summary
Starts : {secondstart}
End : {secondend}
Duration : 0:30:00
Location : New Amsterdam, 1010 Test Street
Comment :
Description:
Test Description
This one is multiline
Organizer:
Attendees:
Summary : TEST
Starts : Wed May 11 00:00:00 2022
End : Mon May 16 00:00:00 2022
Duration : 5 days, 0:00:00
Location :
Comment :
Description:
"""
class CLIToolTest(unittest.TestCase):
def test_output_is_proper(self):
self.maxDiff = None
calendar = Calendar.from_ical(INPUT)
output = ""
for event in calendar.walk("vevent"):
output += cli.view(event) + "\n\n"
self.assertEqual(PROPER_OUTPUT, output)
if __name__ == "__main__":
unittest.main()