)]}'
{"manilaclient/tests/unit/fakes.py":[{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"e554a2a4372974b88033548b480fb9a04f6984e4","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            actual \u003d self.client.callstack[pos][2]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            if isinstance(actual, dict) and isinstance(body, dict):"},{"line_number":55,"context_line":"                b \u003d sorted(list(body.items()))"},{"line_number":56,"context_line":"                a \u003d sorted(list(actual.items()))"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                a, b \u003d actual, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_54695822","line":55,"range":{"start_line":55,"start_character":19,"end_line":55,"end_character":46},"updated":"2017-11-07 02:58:57.000000000","message":"It looks like sorted(body.items()) is enough.","commit_id":"b21cf5e02c57bb1be36456e79b8989563656cd37"},{"author":{"_account_id":23512,"name":"Alexander Pugachev","email":"alexander.pugachev@workday.com","username":"alexander.pugachev"},"change_message_id":"410892e2c6518ce7ff898b01df442e11f7c7d9d0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            actual \u003d self.client.callstack[pos][2]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            if isinstance(actual, dict) and isinstance(body, dict):"},{"line_number":55,"context_line":"                b \u003d sorted(list(body.items()))"},{"line_number":56,"context_line":"                a \u003d sorted(list(actual.items()))"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                a, b \u003d actual, body"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_b6888970","line":55,"range":{"start_line":55,"start_character":19,"end_line":55,"end_character":46},"in_reply_to":"3f4b6375_54695822","updated":"2017-11-07 12:13:51.000000000","message":"Done","commit_id":"b21cf5e02c57bb1be36456e79b8989563656cd37"},{"author":{"_account_id":15100,"name":"zhongjun","email":"jun.zhongjun2@gmail.com","username":"zhongjun2"},"change_message_id":"e554a2a4372974b88033548b480fb9a04f6984e4","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            if isinstance(actual, dict) and isinstance(body, dict):"},{"line_number":55,"context_line":"                b \u003d sorted(list(body.items()))"},{"line_number":56,"context_line":"                a \u003d sorted(list(actual.items()))"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                a, b \u003d actual, body"},{"line_number":59,"context_line":"            assert a \u003d\u003d b, \"Expected %(b)s; got %(a)s\" % {\u0027a\u0027: a, \u0027b\u0027: b}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_146f6028","line":56,"range":{"start_line":56,"start_character":20,"end_line":56,"end_character":48},"updated":"2017-11-07 02:58:57.000000000","message":"sorted(actual.items())","commit_id":"b21cf5e02c57bb1be36456e79b8989563656cd37"},{"author":{"_account_id":23512,"name":"Alexander Pugachev","email":"alexander.pugachev@workday.com","username":"alexander.pugachev"},"change_message_id":"410892e2c6518ce7ff898b01df442e11f7c7d9d0","unresolved":false,"context_lines":[{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            if isinstance(actual, dict) and isinstance(body, dict):"},{"line_number":55,"context_line":"                b \u003d sorted(list(body.items()))"},{"line_number":56,"context_line":"                a \u003d sorted(list(actual.items()))"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                a, b \u003d actual, body"},{"line_number":59,"context_line":"            assert a \u003d\u003d b, \"Expected %(b)s; got %(a)s\" % {\u0027a\u0027: a, \u0027b\u0027: b}"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_569955c1","line":56,"range":{"start_line":56,"start_character":20,"end_line":56,"end_character":48},"in_reply_to":"3f4b6375_146f6028","updated":"2017-11-07 12:13:51.000000000","message":"Done","commit_id":"b21cf5e02c57bb1be36456e79b8989563656cd37"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"a5285a8026eec36fbcbd9249e0fc4aafdbd6801f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            actual \u003d self.client.callstack[pos][2]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            if isinstance(actual, dict) and isinstance(body, dict):"},{"line_number":55,"context_line":"                b \u003d sorted(body.items())"},{"line_number":56,"context_line":"                a \u003d sorted(actual.items())"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                a, b \u003d actual, body"},{"line_number":59,"context_line":"            assert a \u003d\u003d b, \"Expected %(b)s; got %(a)s\" % {\u0027a\u0027: a, \u0027b\u0027: b}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def assert_called_anytime(self, method, url, body\u003dNone,"},{"line_number":62,"context_line":"                              clear_callstack\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_b27ddeb2","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":73},"updated":"2017-11-21 16:52:51.000000000","message":"With modern versions of python can\u0027t we just do a simple:\n\n   assert body \u003d\u003d actual\n\n?  That is, I thought with python2.7 and 3.5 deep dictionary comparison \"just works.\"\n\nhttps://stackoverflow.com/questions/4527942/comparing-two-dictionaries-in-python#4527957","commit_id":"d5269db0701b463bf67a48bc35b7ae69849bd131"},{"author":{"_account_id":23512,"name":"Alexander Pugachev","email":"alexander.pugachev@workday.com","username":"alexander.pugachev"},"change_message_id":"9ecd887f33d31d5465f130a4995739da2d4c4fed","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            actual \u003d self.client.callstack[pos][2]"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"            if isinstance(actual, dict) and isinstance(body, dict):"},{"line_number":55,"context_line":"                b \u003d sorted(body.items())"},{"line_number":56,"context_line":"                a \u003d sorted(actual.items())"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                a, b \u003d actual, body"},{"line_number":59,"context_line":"            assert a \u003d\u003d b, \"Expected %(b)s; got %(a)s\" % {\u0027a\u0027: a, \u0027b\u0027: b}"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def assert_called_anytime(self, method, url, body\u003dNone,"},{"line_number":62,"context_line":"                              clear_callstack\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ff82abbf_70689520","line":59,"range":{"start_line":55,"start_character":0,"end_line":59,"end_character":73},"in_reply_to":"ff82abbf_b27ddeb2","updated":"2017-11-22 11:15:24.000000000","message":"Yes, absolutely. It should be collapsed to just \"assert actual \u003d\u003d body, \u003c...\u003e\"\n\nI checked:\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e a \u003d {\u0027a\u0027: 1}\n\u003e\u003e\u003e b \u003d {\u0027a\u0027: 1}\n\u003e\u003e\u003e a is b\nFalse\n\u003e\u003e\u003e a \u003d\u003d b\nTrue\n\u003e\u003e\u003e ^D\napugachev-01:build alexander.pugachev$ python3\npython3            python3-config     python3.5          python3.5-config   python3.5m         python3.5m-config\napugachev-01:build alexander.pugachev$ python3.5\nPython 3.5.2 (default, Oct 11 2016, 05:05:28)\n[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.38)] on darwin\nType \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n\u003e\u003e\u003e a \u003d {\u0027a\u0027: 1}\n\u003e\u003e\u003e b \u003d {\u0027a\u0027: 1}\n\u003e\u003e\u003e a is b\nFalse\n\u003e\u003e\u003e a \u003d\u003d b\nTrue\n\u003e\u003e\u003e","commit_id":"d5269db0701b463bf67a48bc35b7ae69849bd131"}]}
