serializer.py (1572B)
1 # mypy: allow-untyped-defs 2 3 from datetime import datetime 4 5 6 def serialize_session(session): 7 return { 8 "token": session.token, 9 "types": session.test_types, 10 "user_agent": session.user_agent, 11 "labels": session.labels, 12 "timeouts": session.timeouts, 13 "test_state": session.test_state, 14 "last_completed_test": session.last_completed_test, 15 "tests": session.tests, 16 "pending_tests": session.pending_tests, 17 "running_tests": session.running_tests, 18 "status": session.status, 19 "browser": session.browser, 20 "date_created": millis_to_iso(session.date_created), 21 "date_started": millis_to_iso(session.date_started), 22 "date_finished": millis_to_iso(session.date_finished), 23 "is_public": session.is_public, 24 "reference_tokens": session.reference_tokens, 25 "expiration_date": millis_to_iso(session.expiration_date), 26 "type": session.type, 27 "malfunctioning_tests": session.malfunctioning_tests 28 } 29 30 def serialize_sessions(sessions): 31 serialized_sessions = [] 32 for session in sessions: 33 serialized_sessions.append(serialize_session(session)) 34 return serialized_sessions 35 36 def serialize_device(device): 37 return { 38 "token": device.token, 39 "user_agent": device.user_agent, 40 "name": device.name, 41 "last_active": millis_to_iso(device.last_active) 42 } 43 44 def millis_to_iso(millis): 45 if millis is None: 46 return None 47 return datetime.utcfromtimestamp(millis/1000.0).isoformat() + "+00:00"