from datetime import datetime from tests.data.utils import serialize_datetime def playlist(i, df="%Y-%m-%d %H:%M:%S.%f Z", serialize_dt=True): dt = datetime.utcnow().replace(hour=0, minute=i, second=0, microsecond=0) return { "id": str(i), "name": f"name_{i}", "last_updated_at": serialize_datetime(dt, df=df) if serialize_dt else dt, "image_url": f"image_url_{i}" } def isrc(i): return f"isrc_{i}" def track(i, artists_num=2, artists_sorted=False): return { "id": f"id_{i}", "isrc": isrc(i), "name": f"name_{i}", "image_url": f"image_url{i}", "artists": [{ "id": f"id_{i}{j}", "name": f"name_{i}{j}", "order": j } for j in sorted(range(1, 1 + artists_num), reverse=(not artists_sorted))] } def content(j, k=None, with_track=False, df=None, serialize_dt=True): data = { "playlist": playlist(j, df=df, serialize_dt=serialize_dt) } if with_track: data.update({ "track": track(k or j), "current_position": k or j, "previous_position": j or k }) return data