)]}'
{"functional/common/test.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"977e503b04336498fb5dfdffdceb1b031764adf4","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"def execute(cmd, fail_ok\u003dFalse, merge_stderr\u003dFalse):"},{"line_number":30,"context_line":"    \"\"\"Executes specified command for the given action.\"\"\""},{"line_number":31,"context_line":"    cmdlist \u003d shlex.split(cmd.encode(\u0027utf-8\u0027))"},{"line_number":32,"context_line":"    result \u003d \u0027\u0027"},{"line_number":33,"context_line":"    result_err \u003d \u0027\u0027"},{"line_number":34,"context_line":"    stdout \u003d subprocess.PIPE"}],"source_content_type":"text/x-python","patch_set":2,"id":"5ad0253b_028754b6","line":31,"updated":"2015-04-29 11:17:24.000000000","message":"This is just so the exception prints the string instead of the array.","commit_id":"ab2489583462dad4aaf231e6ebd3e9ee91a807e8"}],"functional/tests/object/v1/test_container.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3b69a5a255d730a022db0f4dee5c8e87316d2644","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    def setUpClass(cls):"},{"line_number":26,"context_line":"        opts \u003d cls.get_list_opts([\u0027container\u0027])"},{"line_number":27,"context_line":"        raw_output \u003d cls.openstack(\u0027container create \u0027 + cls.NAME + opts)"},{"line_number":28,"context_line":"        expected \u003d \u0027container\\n\u0027 + cls.NAME + \u0027\\n\u0027"},{"line_number":29,"context_line":"        cls.assertOutput(expected, raw_output)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_eed46348","line":28,"updated":"2015-04-29 15:53:20.000000000","message":"i\u0027d prefer you use self instead of cls - throughout this file","commit_id":"f7df3aa5aed07fec09b6c8efe82b9b9af3b9fda7"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"fecfc265c34942df9b5daa3cfe440cc9e6cc1583","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    def setUpClass(cls):"},{"line_number":26,"context_line":"        opts \u003d cls.get_list_opts([\u0027container\u0027])"},{"line_number":27,"context_line":"        raw_output \u003d cls.openstack(\u0027container create \u0027 + cls.NAME + opts)"},{"line_number":28,"context_line":"        expected \u003d \u0027container\\n\u0027 + cls.NAME + \u0027\\n\u0027"},{"line_number":29,"context_line":"        cls.assertOutput(expected, raw_output)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_11ae6d85","line":28,"in_reply_to":"3acd31a7_eed46348","updated":"2015-04-30 17:33:48.000000000","message":"I think cls is standard for class methods.","commit_id":"f7df3aa5aed07fec09b6c8efe82b9b9af3b9fda7"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3b69a5a255d730a022db0f4dee5c8e87316d2644","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    def test_container_list(self):"},{"line_number":37,"context_line":"        opts \u003d self.get_list_opts(self.HEADERS)"},{"line_number":38,"context_line":"        raw_output \u003d self.openstack(\u0027container list --long\u0027 + opts)"},{"line_number":39,"context_line":"        expected \u003d self.NAME + \u0027,0,0\u0027"},{"line_number":40,"context_line":"        self.assertIn(expected, raw_output)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def test_container_show(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3acd31a7_2e2c9baa","line":39,"updated":"2015-04-29 15:53:20.000000000","message":"the bytes + zeroes are making this harder to read than necessary. functional tests don\u0027t have to assert a lot of things, just that things don\u0027t blow up.","commit_id":"f7df3aa5aed07fec09b6c8efe82b9b9af3b9fda7"}],"functional/tests/object/v1/test_object.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3b69a5a255d730a022db0f4dee5c8e87316d2644","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"3acd31a7_a90d4539","updated":"2015-04-29 15:53:20.000000000","message":"maybe break this one up into a different patch","commit_id":"f7df3aa5aed07fec09b6c8efe82b9b9af3b9fda7"}]}
