| 764 | |
| 765 | |
| 766 | def _describe_message(message_type, *items): |
| 767 | items = (("type", message_type),) + items |
| 768 | d = collections.OrderedDict(items) |
| 769 | |
| 770 | # Keep it all on one line if it's short enough, but indent longer ones. |
| 771 | for format_string in "{0:indent=None}", "{0}": |
| 772 | s = format_string.format(json.repr(d)) |
| 773 | s = "{..., " + s[1:] |
| 774 | |
| 775 | # Used by some.dict.containing to inject ... as needed. |
| 776 | s = s.replace('"\\u0002...": "...\\u0003"', "...") |
| 777 | # Used by some.* and by Event/Request/Response expectations below. |
| 778 | s = s.replace('"\\u0002', "") |
| 779 | s = s.replace('\\u0003"', "") |
| 780 | |
| 781 | if len(s) <= SINGLE_LINE_REPR_LIMIT: |
| 782 | break |
| 783 | |
| 784 | return s |
| 785 | |
| 786 | |
| 787 | def Event(event, body=some.object): |