Jellyfin(8096), OrbStack(8097) 포트 충돌으로 변경. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
35 lines
1021 B
Python
35 lines
1021 B
Python
import string
|
|
import unittest
|
|
|
|
import hypothesis.strategies as st
|
|
from hypothesis import given, settings
|
|
|
|
from icalendar.parser import Contentline, Contentlines, Parameters
|
|
|
|
|
|
def printable_characters(**kw):
|
|
return st.text(st.characters(blacklist_categories=("Cc", "Cs"), **kw))
|
|
|
|
|
|
key = st.text(string.ascii_letters + string.digits, min_size=1)
|
|
value = printable_characters(blacklist_characters='\\;:"')
|
|
|
|
|
|
class TestFuzzing(unittest.TestCase):
|
|
@given(
|
|
lines=st.lists(st.tuples(key, st.dictionaries(key, value), value), min_size=1)
|
|
)
|
|
@settings(max_examples=10**3)
|
|
def test_main(self, lines):
|
|
cl = Contentlines()
|
|
for key, params, value in lines:
|
|
try:
|
|
params = Parameters(**params)
|
|
except TypeError:
|
|
# Happens when there is a random parameter 'self'...
|
|
continue
|
|
cl.append(Contentline.from_parts(key, params, value))
|
|
cl.append("")
|
|
|
|
assert Contentlines.from_ical(cl.to_ical()) == cl
|