)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"75894f3b3b6c5dcd5cdca5c204009709e8f34226","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexander Gorodnev \u003cagorodnev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-03 05:00:36 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor ServersViewBuilderTest class."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Remove duplicated data."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2FWrI%3D","line":7,"updated":"2013-07-03 13:36:45.000000000","message":"This is very non descriptive title. \n\nHow about \"make ServersViewBuilderTest DRYer\" or \n\"remove duplicate code or data in ServersViewBuilderTest\"","commit_id":"cd5a29a3adc44c00ce26b456390fd6f9682de0f8"},{"author":{"_account_id":7794,"name":"Alexander Gorodnev","email":"agorodnev@griddynamics.com","username":"agorodnev"},"change_message_id":"dc4a7ca2d1ffabbf67cb984382fb181a84151104","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexander Gorodnev \u003cagorodnev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-03 05:00:36 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor ServersViewBuilderTest class."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Remove duplicated data."},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2FWZU%3D","line":7,"in_reply_to":"AAAAPn%2F%2FWrI%3D","updated":"2013-07-03 14:55:13.000000000","message":"Thank you. I like the first option.","commit_id":"cd5a29a3adc44c00ce26b456390fd6f9682de0f8"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"11e49817774d9775a843a98f00cb73f12166984c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexander Gorodnev \u003cagorodnev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-03 10:46:05 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make ServersViewBuilderTest DRYer."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Blueprint: nova-tests-code-duplication"},{"line_number":10,"context_line":"Change-Id: I31bf6ed3c266da99c57b128c298cf7beae9a6db4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAP3%2F%2FnK0%3D","line":7,"updated":"2013-07-15 20:53:13.000000000","message":"Please expand on the commit message.","commit_id":"49d5aa3a68e11851719ac6823c457514ba8979ef"},{"author":{"_account_id":7794,"name":"Alexander Gorodnev","email":"agorodnev@griddynamics.com","username":"agorodnev"},"change_message_id":"d074c4cc6d8a20846d9910687f3d37c788a907a3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Alexander Gorodnev \u003cagorodnev@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-07-03 10:46:05 -0400"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Make ServersViewBuilderTest DRYer."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Blueprint: nova-tests-code-duplication"},{"line_number":10,"context_line":"Change-Id: I31bf6ed3c266da99c57b128c298cf7beae9a6db4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAP3%2F%2Fkyk%3D","line":7,"in_reply_to":"AAAAP3%2F%2FnK0%3D","updated":"2013-07-16 11:59:15.000000000","message":"Done","commit_id":"49d5aa3a68e11851719ac6823c457514ba8979ef"}],"nova/tests/api/openstack/compute/test_servers.py":[{"author":{"_account_id":6509,"name":"Roman Bogorodskiy","email":"rbogorodskiy@mirantis.com","username":"novel"},"change_message_id":"db0e0ccda9c5db03f48882b12c1848be148385ca","unresolved":false,"context_lines":[{"line_number":4322,"context_line":"        result \u003d self.view_builder._get_flavor(self.request, self.instance)"},{"line_number":4323,"context_line":"        self.assertEqual(result, expected)"},{"line_number":4324,"context_line":""},{"line_number":4325,"context_line":"    def _get_expected_server(self):"},{"line_number":4326,"context_line":"        return {"},{"line_number":4327,"context_line":"            \"server\": {"},{"line_number":4328,"context_line":"                \"id\": self.uuid,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Fams%3D","line":4325,"updated":"2013-07-02 13:23:29.000000000","message":"You have self.expected_server dict and _get_expected_server() which returns another dict. What\u0027s the difference?","commit_id":"b56d660239433a5f532a0940726b8933eb6ae71e"},{"author":{"_account_id":6509,"name":"Roman Bogorodskiy","email":"rbogorodskiy@mirantis.com","username":"novel"},"change_message_id":"db0e0ccda9c5db03f48882b12c1848be148385ca","unresolved":false,"context_lines":[{"line_number":4341,"context_line":"        }"},{"line_number":4342,"context_line":""},{"line_number":4343,"context_line":"    def test_build_server(self):"},{"line_number":4344,"context_line":""},{"line_number":4345,"context_line":"        output \u003d self.view_builder.basic(self.request, self.instance)"},{"line_number":4346,"context_line":"        self.assertThat(output,"},{"line_number":4347,"context_line":"                matchers.DictMatches(self._get_expected_server()))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2Famc%3D","line":4344,"updated":"2013-07-02 13:23:29.000000000","message":"What\u0027s the  point of new blank lines?","commit_id":"b56d660239433a5f532a0940726b8933eb6ae71e"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"d7dfa7e56f4f25c3bdb6d861f1709f75580f964f","unresolved":false,"context_lines":[{"line_number":4373,"context_line":"        }"},{"line_number":4374,"context_line":""},{"line_number":4375,"context_line":"        self.expected_server[\"server\"][\"status\"] \u003d \"ERROR\""},{"line_number":4376,"context_line":"        self.expected_server[\"server\"][\"fault\"] \u003d {"},{"line_number":4377,"context_line":"                    \"code\": 404,"},{"line_number":4378,"context_line":"                    \"created\": \"2010-10-10T12:00:00Z\","},{"line_number":4379,"context_line":"                    \"message\": \"HTTPNotFound\","}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FahY%3D","line":4376,"updated":"2013-07-02 13:36:03.000000000","message":"maybe this is not the case, but what is the purpose of having mutable expected_server shared across multiple test cases? Why don\u0027t you use simple getter method which provides the same object for all test case and then just modifying its local copy in each test. ?","commit_id":"b56d660239433a5f532a0940726b8933eb6ae71e"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"d7dfa7e56f4f25c3bdb6d861f1709f75580f964f","unresolved":false,"context_lines":[{"line_number":4379,"context_line":"                    \"message\": \"HTTPNotFound\","},{"line_number":4380,"context_line":"                    \"details\": \"Stock details for test\","},{"line_number":4381,"context_line":"                }"},{"line_number":4382,"context_line":"        del self.expected_server[\"server\"][\"progress\"]"},{"line_number":4383,"context_line":""},{"line_number":4384,"context_line":"        self.request.context \u003d context.RequestContext(\u0027fake\u0027, \u0027fake\u0027)"},{"line_number":4385,"context_line":"        output \u003d self.view_builder.show(self.request, self.instance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FahU%3D","line":4382,"updated":"2013-07-02 13:36:03.000000000","message":"same","commit_id":"b56d660239433a5f532a0940726b8933eb6ae71e"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"d7dfa7e56f4f25c3bdb6d861f1709f75580f964f","unresolved":false,"context_lines":[{"line_number":4462,"context_line":"        self.instance[\u0027vm_state\u0027] \u003d vm_states.ACTIVE"},{"line_number":4463,"context_line":"        self.instance[\u0027progress\u0027] \u003d 100"},{"line_number":4464,"context_line":""},{"line_number":4465,"context_line":"        self.expected_server[\"server\"][\"status\"] \u003d \"ACTIVE\""},{"line_number":4466,"context_line":"        self.expected_server[\"server\"][\"progress\"] \u003d 100"},{"line_number":4467,"context_line":""},{"line_number":4468,"context_line":"        output \u003d self.view_builder.show(self.request, self.instance)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FahQ%3D","line":4465,"updated":"2013-07-02 13:36:03.000000000","message":"same","commit_id":"b56d660239433a5f532a0940726b8933eb6ae71e"},{"author":{"_account_id":8003,"name":"Aleksandr Gordeev","email":"agordeev@mirantis.com","username":"agordeev"},"change_message_id":"d7dfa7e56f4f25c3bdb6d861f1709f75580f964f","unresolved":false,"context_lines":[{"line_number":4463,"context_line":"        self.instance[\u0027progress\u0027] \u003d 100"},{"line_number":4464,"context_line":""},{"line_number":4465,"context_line":"        self.expected_server[\"server\"][\"status\"] \u003d \"ACTIVE\""},{"line_number":4466,"context_line":"        self.expected_server[\"server\"][\"progress\"] \u003d 100"},{"line_number":4467,"context_line":""},{"line_number":4468,"context_line":"        output \u003d self.view_builder.show(self.request, self.instance)"},{"line_number":4469,"context_line":"        self.assertThat(output, matchers.DictMatches(self.expected_server))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPn%2F%2FahM%3D","line":4466,"updated":"2013-07-02 13:36:03.000000000","message":"same","commit_id":"b56d660239433a5f532a0940726b8933eb6ae71e"}]}
