)]}'
{"cinder/tests/unit/image/test_glance.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"17e1103060160898d886a3492156339d525cfa81","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    \u0027properties\u0027: {"},{"line_number":46,"context_line":"                        \u0027prop1\u0027: \u0027propvalue1\u0027,"},{"line_number":47,"context_line":"                        \u0027mappings\u0027: ["},{"line_number":48,"context_line":"                            {\u0027device\u0027: \u0027bbb\u0027},"},{"line_number":49,"context_line":"                            {\u0027device\u0027: \u0027yyy\u0027}],"},{"line_number":50,"context_line":"                        \u0027block_device_mapping\u0027: ["},{"line_number":51,"context_line":"                            {\u0027device_name\u0027: \u0027/dev/fake\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_48a3a59d","line":48,"updated":"2015-07-01 15:53:48.000000000","message":"I understand the reason, and it\u0027s a valid reason and change, but I\u0027m not too happy about it :(","commit_id":"b6047f022ebd79ccdd8087bc938a1fe72d5a0b9c"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"09afd0557955339785517d349ca00149775d3c9c","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    \u0027properties\u0027: {"},{"line_number":46,"context_line":"                        \u0027prop1\u0027: \u0027propvalue1\u0027,"},{"line_number":47,"context_line":"                        \u0027mappings\u0027: ["},{"line_number":48,"context_line":"                            {\u0027device\u0027: \u0027bbb\u0027},"},{"line_number":49,"context_line":"                            {\u0027device\u0027: \u0027yyy\u0027}],"},{"line_number":50,"context_line":"                        \u0027block_device_mapping\u0027: ["},{"line_number":51,"context_line":"                            {\u0027device_name\u0027: \u0027/dev/fake\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_74717743","line":48,"in_reply_to":"ba3cc151_3489af75","updated":"2015-07-02 11:41:27.000000000","message":"Thanks for the explanation, and I agree the test seems good enough, otherwise I would have downvoted it.  };-)\n\nWell, the randomization is a good thing to have, so no complains from me on that one.","commit_id":"b6047f022ebd79ccdd8087bc938a1fe72d5a0b9c"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"d81a4251c3bfa071d741e225a8e47bce382ff9d1","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    \u0027properties\u0027: {"},{"line_number":46,"context_line":"                        \u0027prop1\u0027: \u0027propvalue1\u0027,"},{"line_number":47,"context_line":"                        \u0027mappings\u0027: ["},{"line_number":48,"context_line":"                            {\u0027device\u0027: \u0027bbb\u0027},"},{"line_number":49,"context_line":"                            {\u0027device\u0027: \u0027yyy\u0027}],"},{"line_number":50,"context_line":"                        \u0027block_device_mapping\u0027: ["},{"line_number":51,"context_line":"                            {\u0027device_name\u0027: \u0027/dev/fake\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_3489af75","line":48,"in_reply_to":"ba3cc151_48a3a59d","updated":"2015-07-02 11:32:36.000000000","message":"I know, I know...\n\nThe other way to fix this test is to parse the output, extract items, sort items and compare the sorted items. It\u0027s *much more complex* than using dictionaries of 1 item.\n\nNote: I implemented such complex code in CPython to check the output of repr(dict) and repr(set)! I hate this test in CPython, the code of the test is ugly :-p The *simple* one, to check repr(set):\n\nhttps://hg.python.org/cpython/file/dbb4fb46fc1d/Lib/test/test_set.py#l758\n\nI don\u0027t expect regressions on dictionaries with more than 1 item. I believe that this test is enough to detect any kind of regression in the serialization code.\n\nNote2: I\u0027m guilty, I contributed to the randomization of hash() in Python :-) It was done to mitigate a DoS on dictionaries and sets.","commit_id":"b6047f022ebd79ccdd8087bc938a1fe72d5a0b9c"},{"author":{"_account_id":9107,"name":"Victor Stinner","email":"vstinner@redhat.com","username":"haypo"},"change_message_id":"d9514e0f89dced62eecceaa33ef2fe208cf09fb3","unresolved":false,"context_lines":[{"line_number":45,"context_line":"                    \u0027properties\u0027: {"},{"line_number":46,"context_line":"                        \u0027prop1\u0027: \u0027propvalue1\u0027,"},{"line_number":47,"context_line":"                        \u0027mappings\u0027: ["},{"line_number":48,"context_line":"                            {\u0027device\u0027: \u0027bbb\u0027},"},{"line_number":49,"context_line":"                            {\u0027device\u0027: \u0027yyy\u0027}],"},{"line_number":50,"context_line":"                        \u0027block_device_mapping\u0027: ["},{"line_number":51,"context_line":"                            {\u0027device_name\u0027: \u0027/dev/fake\u0027},"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_34676f4e","line":48,"in_reply_to":"ba3cc151_74717743","updated":"2015-07-02 11:45:15.000000000","message":"By the way, tox.ini of Cinder already disables the hash randomization! But Python 2 and Python 3 have different implementations of the hash() function, so it\u0027s not enough to workaround all effects of the hash randomization in tests...","commit_id":"b6047f022ebd79ccdd8087bc938a1fe72d5a0b9c"}]}
