def test_dumps_unknown_object(): class Test: def __init__(self, **kwargs): self.kw = kwargs def __str__(self): return str(self.kw) obj = Test(foo=1, bar=2) assert json.dumps(obj) == json.dumps(str(obj))
def build_menu(buttons, n_cols, header_buttons=None, footer_buttons=None): menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)] if header_buttons: menu.insert(0, header_buttons) if footer_buttons: menu.append(footer_buttons) return fast_json.dumps({"keyboard": menu})
def format(self, record: logging.LogRecord): record_dict = MappingProxyType(record.__dict__) data = dict(errno=0 if not record.exc_info else 255) for key, value in self.FIELD_MAPPING.items(): mapping, field_type = value v = record_dict.get(key) if not isinstance(v, field_type): v = field_type(v) data[mapping] = v for key in record_dict: if key in data or key[0] == "_": continue value = record_dict[key] if value is None: continue data[key] = value for idx, item in enumerate(data.pop('args', [])): data['argument_%d' % idx] = str(item) payload = { 'fields': data, 'msg': record.getMessage(), 'level': self.LEVELS[record.levelno], } if isinstance(record.msg, dict): data['message_raw'] = '' payload['msg'] = record.msg if self.datefmt: payload['timestamp'] = self.formatTime(record, self.datefmt) if record.exc_info: payload['stackTrace'] = "\n".join( traceback.format_exception(*record.exc_info)) return fast_json.dumps(payload, ensure_ascii=False)
def remove_keyboard(): return fast_json.dumps({"remove_keyboard": True})
def test_dumps(obj, json_string): assert json.dumps(obj) == json_string
def test_dumps_date(): data = datetime.now() assert json.dumps(data) == json.dumps(data.isoformat())
def test_dumps_bytes(): data = b'\x00\x01' assert json.dumps(data) == json.dumps(base64.b64encode(data).decode())