)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"d3503eb8d9d5d268f43a38af7d04c55b1a7b39f2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes bug 1264418 for Tempest Nova"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Changes assertEqual to assertIn/assertNotIn, allowing third-party driver to write metadata for its own purpose"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Fixes: bug #1264418"},{"line_number":12,"context_line":"Change-Id: I653b66da67d5cd6929384309eb757d2b47134084"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAUH%2F%2F320%3D","line":9,"updated":"2014-01-07 11:43:39.000000000","message":"This line should  be wrapped at 72 characters. \nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_GIT_commit_message_structure","commit_id":"694edac8892e7638e315ce2c1603ce3017d851d7"}],"tempest/api/compute/servers/test_server_metadata.py":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"68b7fe4ce185b927a6db0981258dda5620599133","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        super(ServerMetadataTestJSON, self).setUp()"},{"line_number":41,"context_line":"        meta \u003d {\u0027key1\u0027: \u0027value1\u0027, \u0027key2\u0027: \u0027value2\u0027}"},{"line_number":42,"context_line":"        resp, _ \u003d self.client.set_server_metadata(self.server_id, meta)"},{"line_number":43,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @attr(type\u003d\u0027gate\u0027)"},{"line_number":46,"context_line":"    def test_list_server_metadata(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2F4hE%3D","line":43,"updated":"2014-01-07 09:11:16.000000000","message":"hi, do you mean some extra metadata may be added during the creation ? If yes, these metadata will be deleted here. So the bug will be invalid.\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L2864\n\nBTW, if you can make the same change in v3 tests when do some change in nova v2 tests, it will be better, thanks.","commit_id":"d4e7981d6fd8055c7c59d90b46571b0eaf202920"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"1fb1d09f36cdd1b65b3ef314a0c8dc8f0eba4546","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        # Verify the expected metadata items are in the list"},{"line_number":51,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":52,"context_line":"        expected \u003d {\u0027key1\u0027: \u0027value1\u0027, \u0027key2\u0027: \u0027value2\u0027}"},{"line_number":53,"context_line":"        for item in expected:"},{"line_number":54,"context_line":"            self.assertIn(item, resp_metadata)"},{"line_number":55,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FvAw%3D","line":52,"updated":"2014-01-09 02:38:44.000000000","message":"It\u0027s better to add comments to clarify why it need this changes.","commit_id":"e9510b3181094c2e3c2c0fcda37a02752c8156f4"},{"author":{"_account_id":9485,"name":"Jerry Cai","email":"caimin@cn.ibm.com","username":"jerrycai"},"change_message_id":"e354ccdfdfde3498d017f749ee31a0131fa3dcac","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Verify the values have been updated to the proper values"},{"line_number":95,"context_line":"        resp, resp_metadata \u003d self.client.list_server_metadata(self.server_id)"},{"line_number":96,"context_line":"        expected \u003d {\u0027key1\u0027: \u0027alt1\u0027, \u0027key2\u0027: \u0027value2\u0027, \u0027key3\u0027: \u0027value3\u0027}"},{"line_number":97,"context_line":"        for item in expected:"},{"line_number":98,"context_line":"            self.assertIn(item, resp_metadata)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FkBw%3D","line":97,"updated":"2014-01-11 04:05:05.000000000","message":"I think the item is the only key for the dict, you still need to check the value from the origin dict. I did some investigation assertDictContainsSubset is deprecated since python 3.2  so alternatively:\nWay 1: set(dic1.iteritems()).issubset(set(dic2.iteritems())) \nor\nWay 2: \n    for key in dic2:\n            self.assertIn(key, dic)\n            self.assertEqual(dic.get(key), dic2.get(key), \u0027fail\u0027)\nI think the first one is good, it\u0027s verified under python2 and python3.x.","commit_id":"e9510b3181094c2e3c2c0fcda37a02752c8156f4"},{"author":{"_account_id":9485,"name":"Jerry Cai","email":"caimin@cn.ibm.com","username":"jerrycai"},"change_message_id":"1f02b1249ef4725e26a6550916a876f4fef2149c","unresolved":false,"context_lines":[{"line_number":94,"context_line":"        # Verify the values have been updated to the proper values"},{"line_number":95,"context_line":"        resp, resp_metadata \u003d self.client.list_server_metadata(self.server_id)"},{"line_number":96,"context_line":"        expected \u003d {\u0027key1\u0027: \u0027alt1\u0027, \u0027key2\u0027: \u0027value2\u0027, \u0027key3\u0027: \u0027value3\u0027}"},{"line_number":97,"context_line":"        for item in expected:"},{"line_number":98,"context_line":"            self.assertIn(item, resp_metadata)"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Fj%2F8%3D","line":97,"in_reply_to":"AAAAUH%2F%2FkBw%3D","updated":"2014-01-11 04:09:34.000000000","message":"Sorry for typo, in Way 1 should be: set(dic1.items()).issubset(set(dic2.items())) \niteritems() is removed from python 3.x","commit_id":"e9510b3181094c2e3c2c0fcda37a02752c8156f4"}]}
