• M
    iotests: Unify log outputs between Python 2 and 3 · e21b5f34
    Max Reitz 提交于
    When dumping an object into the log, there are differences between
    Python 2 and 3.  First, unicode strings are prefixed by 'u' in Python 2
    (they are no longer in 3, because unicode strings are the default
    there).  Second, the order of keys in dicts may differ.  Third,
    especially long numbers are longs in Python 2 and thus get an 'L'
    suffix, which does not happen in Python 3.
    
    We can get around all of these differences by dumping objects (lists and
    dicts) in a language-independent format, namely JSON.  The JSON
    generator even allows emitting dicts with their keys sorted
    alphabetically.
    
    This changes the output of all tests that use these logging functions
    (dict keys are ordered now, strings in dicts are now enclosed in double
    quotes instead of single quotes, the 'L' suffix of large integers is
    dropped, and "true" and "false" are now in lower case).
    The quote change necessitates a small change to a filter used in test
    207.
    Suggested-by: NEduardo Habkost <ehabkost@redhat.com>
    Signed-off-by: NMax Reitz <mreitz@redhat.com>
    Reviewed-by: NCleber Rosa <crosa@redhat.com>
    Message-Id: <20181022135307.14398-10-mreitz@redhat.com>
    Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
    e21b5f34
208.out 173 字节