add script for generating fake testing data

This commit is contained in:
dreamer committed 2026-11-03 17:50:13 +01:00
1 parent f8a6ade8e6
commit 3f86cc1b57
6 files changed
+683 -373

No files matched your search

+74
View File
@@ -0,0 +1,74 @@
from datetime import UTC, datetime, timedelta
from random import randint, sample
from zoneinfo import ZoneInfo
from faker import Faker
from faker.providers import company
from fhdhview.services.screenwriter.schema import AAMPos, Session, Sessions
fake = Faker()
fake.add_provider(company)
zaal = [
"DenHaag_zaal_1",
"DenHaag_zaal_2",
"DenHaag_zaal_3",
"DenHaag_zaal_4",
"DenHaag_zaal_5",
"DenHaag_zaal_6",
"Filmhuis Den Haag 10 (buitenbios)"
]
kw_age = [
"vanaf 6 jaar",
"vanaf 9 jaar",
"vanaf 12 jaar",
"vanaf 14 jaar",
"vanaf 18 jaar",
"Alle leeftijden"
]
kw_keywords = [
"Angst",
"Discriminatie",
"Drugs- en/of alcoholmisbruik",
"Grof taalgebruik",
"Gevaarlijk gedrag",
"Geweld",
"Seks"
]
attr_extra = [
"EN subs"
]
sessions: list[Session] = []
for i in range(20):
start_time = datetime.now(tz=ZoneInfo("Europe/Amsterdam"))+timedelta(minutes=randint(-20, 59))
attrs = sample(kw_age, 1) + sample(kw_keywords, randint(0, 3)) + sample(attr_extra, randint(0, 1))
session = Session(
session_id=randint(1000, 9999),
screen_identifier=sample(zaal, 1)[0],
complex_identifier="Filmhuis Den Haag",
start=start_time,
end=start_time+timedelta(hours=2),
feature_duration=int(timedelta(hours=2).total_seconds()),
title=fake.catch_phrase(),
rating=randint(1, 10),
seats_available=100,
seats_sold=randint(0, 100),
attributes=attrs
)
sessions.append(session)
xml_data = AAMPos(sessions=Sessions(root=sessions))
with open("test_xml.xml", "wb") as f:
result = xml_data.to_xml(pretty_print=True)
f.write(result if isinstance(result, bytes) else result.encode("utf-8"))