)]}'
{"functional/tests/identity/v2/test_catalog.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3456f50828fce8f19ca694cd6900e7350be2180b","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        | name      | keystone                                  |"},{"line_number":36,"context_line":"        | type      | identity                                  |"},{"line_number":37,"context_line":"        +-----------+-------------------------------------------+"},{"line_number":38,"context_line":"        \"\"\""},{"line_number":39,"context_line":"        raw_output \u003d self.openstack(\u0027catalog show %s\u0027 % \u0027identity\u0027)"},{"line_number":40,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":41,"context_line":"        # items may have multiple endpoint urls with empty key"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_5c130701","line":38,"updated":"2015-07-09 18:29:14.000000000","message":"this is very helpful!","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"}],"functional/tests/identity/v2/test_ec2_credentials.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2055ffaadd53bea2610787d3942cf6d2c922a257","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class EC2CredentialsTests(test_identity.IdentityTests):"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    EC2_CREDENTIALS_FIELDS \u003d ["},{"line_number":19,"context_line":"        \u0027access\u0027,"},{"line_number":20,"context_line":"        \u0027project_id\u0027,"},{"line_number":21,"context_line":"        \u0027secret\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_64c19b4d","line":18,"updated":"2015-07-09 15:55:08.000000000","message":"move lines 18 - 29 to test_identity?","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":13744,"name":"Guojian Shao","email":"tjusgj@gmail.com","username":"gjshao"},"change_message_id":"cc26448517a77626277bcb964f7966ee57f498f7","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class EC2CredentialsTests(test_identity.IdentityTests):"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    EC2_CREDENTIALS_FIELDS \u003d ["},{"line_number":19,"context_line":"        \u0027access\u0027,"},{"line_number":20,"context_line":"        \u0027project_id\u0027,"},{"line_number":21,"context_line":"        \u0027secret\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_aa9e7052","line":18,"in_reply_to":"ba3cc151_64c19b4d","updated":"2015-07-10 05:53:16.000000000","message":"i thought these fields are not possible to be reused by other tests out of this file, so just put them inside the class. however, it\u0027s ok to move them to test_identity.","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3456f50828fce8f19ca694cd6900e7350be2180b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        \u0027User ID\u0027,"},{"line_number":30,"context_line":"    ]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _create_dummy_ec2_credentials(self, add_clean_up\u003dTrue):"},{"line_number":33,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials create\u0027)"},{"line_number":34,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":35,"context_line":"        self.assert_show_fields(items, self.EC2_CREDENTIALS_FIELDS)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_9ff661d5","line":32,"updated":"2015-07-09 18:29:14.000000000","message":"why not move this to test_identity too?","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":13744,"name":"Guojian Shao","email":"tjusgj@gmail.com","username":"gjshao"},"change_message_id":"cc26448517a77626277bcb964f7966ee57f498f7","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        \u0027User ID\u0027,"},{"line_number":30,"context_line":"    ]"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _create_dummy_ec2_credentials(self, add_clean_up\u003dTrue):"},{"line_number":33,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials create\u0027)"},{"line_number":34,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":35,"context_line":"        self.assert_show_fields(items, self.EC2_CREDENTIALS_FIELDS)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_6abf08ab","line":32,"in_reply_to":"ba3cc151_9ff661d5","updated":"2015-07-10 05:53:16.000000000","message":"just thought that the method is not possible to be reused by other tests out of this file, it\u0027s ok to move it to test_identity.","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2055ffaadd53bea2610787d3942cf6d2c922a257","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_ec2_credentials_list(self):"},{"line_number":55,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials list\u0027)"},{"line_number":56,"context_line":"        items \u003d self.parse_listing(raw_output)"},{"line_number":57,"context_line":"        self.assert_table_structure(items, self.EC2_CREDENTIALS_LIST_HEADERS)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_24bf13d1","line":55,"updated":"2015-07-09 15:55:08.000000000","message":"can you add a call to create ec2 credentials here? i\u0027m wondering why this list is returning \u003e0 results, since i don\u0027t see a call here to create any ec2 credentials","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":13744,"name":"Guojian Shao","email":"tjusgj@gmail.com","username":"gjshao"},"change_message_id":"cc26448517a77626277bcb964f7966ee57f498f7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_ec2_credentials_list(self):"},{"line_number":55,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials list\u0027)"},{"line_number":56,"context_line":"        items \u003d self.parse_listing(raw_output)"},{"line_number":57,"context_line":"        self.assert_table_structure(items, self.EC2_CREDENTIALS_LIST_HEADERS)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_0a93dc01","line":55,"in_reply_to":"ba3cc151_1c17bfa3","updated":"2015-07-10 05:53:16.000000000","message":"why we use addCleanup to remove record is that we need to reuse some methods like _create_dummy_project in many test cases to create common testing resources which are not suitable to be created in setup and manually removed in teardown, because we want the resource to be independent of other tests, so that we can update/delete it without affecting other tests.\nand when we create a dummy project, addCleanup will make sure the resource be automatically removed .","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":13744,"name":"Guojian Shao","email":"tjusgj@gmail.com","username":"gjshao"},"change_message_id":"cc26448517a77626277bcb964f7966ee57f498f7","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_ec2_credentials_list(self):"},{"line_number":55,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials list\u0027)"},{"line_number":56,"context_line":"        items \u003d self.parse_listing(raw_output)"},{"line_number":57,"context_line":"        self.assert_table_structure(items, self.EC2_CREDENTIALS_LIST_HEADERS)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_4ad9e421","line":55,"in_reply_to":"ba3cc151_24bf13d1","updated":"2015-07-10 05:53:16.000000000","message":"Done","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3456f50828fce8f19ca694cd6900e7350be2180b","unresolved":false,"context_lines":[{"line_number":52,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    def test_ec2_credentials_list(self):"},{"line_number":55,"context_line":"        raw_output \u003d self.openstack(\u0027ec2 credentials list\u0027)"},{"line_number":56,"context_line":"        items \u003d self.parse_listing(raw_output)"},{"line_number":57,"context_line":"        self.assert_table_structure(items, self.EC2_CREDENTIALS_LIST_HEADERS)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_1c17bfa3","line":55,"in_reply_to":"ba3cc151_24bf13d1","updated":"2015-07-09 18:29:14.000000000","message":"this works because the record created in line: 44 is not deleted till the whole test suite completes?\n\nIn other tests, a record is created/deleted during the setup/teardown [1].  While in here, we use the addCleanup() to remove the record created. Should we decide on a consistent pattern?\n\n[1]  https://github.com/openstack/python-openstackclient/blob/master/functional/tests/compute/v2/test_flavor.py","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"}],"functional/tests/identity/v2/test_identity.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"03d731d993867fb2243beaa03619d08965df32d9","unresolved":false,"context_lines":[{"line_number":15,"context_line":"BASIC_LIST_HEADERS \u003d [\u0027ID\u0027, \u0027Name\u0027]"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"class IdentityTests(test.TestCase):"},{"line_number":19,"context_line":"    \"\"\"Functional tests for Identity commands. \"\"\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    USER_FIELDS \u003d [\u0027email\u0027, \u0027enabled\u0027, \u0027id\u0027, \u0027name\u0027, \u0027project_id\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_d8634adc","line":18,"updated":"2015-07-07 03:37:58.000000000","message":"at this point we can probably remove this file soon","commit_id":"8262387509812169c40951f89353bf7f516e5af0"}],"functional/tests/identity/v2/test_project.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"03d731d993867fb2243beaa03619d08965df32d9","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_project_create(self):"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027project create test-project\u0027)"},{"line_number":32,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":33,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":34,"context_line":"        self.addCleanup(self.openstack, \u0027project delete test-project\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_7890fe95","line":31,"updated":"2015-07-07 03:37:58.000000000","message":"use tempest lib\u0027s randname?","commit_id":"8262387509812169c40951f89353bf7f516e5af0"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"03d731d993867fb2243beaa03619d08965df32d9","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.addCleanup(self.openstack, \u0027project delete test-project\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_project_delete(self):"},{"line_number":37,"context_line":"        self.openstack(\u0027project create dummy-project\u0027)"},{"line_number":38,"context_line":"        raw_output \u003d self.openstack(\u0027project delete dummy-project\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(0, len(raw_output))"}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_988b8268","line":37,"updated":"2015-07-07 03:37:58.000000000","message":"use tempest libs\u0027s rand name?","commit_id":"8262387509812169c40951f89353bf7f516e5af0"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"9bddc1ef615e9194ddacbcd6211d45b4cd80fe95","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_project_create(self):"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027project create test-project\u0027)"},{"line_number":32,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":33,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":34,"context_line":"        self.addCleanup(self.openstack, \u0027project delete test-project\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_2fac4734","line":31,"updated":"2015-07-07 18:25:03.000000000","message":"Steve was asking for rand names, everywhere else we are using \n\n        NAME \u003d uuid.uuid4().hex","commit_id":"1db2af3ce7dcebe1a8b29b8cd1dd3fcccd7e73f9"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"0eb31541b70f3e747c587f3095a9b13cc28f151f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_project_create(self):"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027project create test-project\u0027)"},{"line_number":32,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":33,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":34,"context_line":"        self.addCleanup(self.openstack, \u0027project delete test-project\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_33b6e2f9","line":31,"in_reply_to":"ba3cc151_2fac4734","updated":"2015-07-08 00:24:23.000000000","message":"++, thanks","commit_id":"1db2af3ce7dcebe1a8b29b8cd1dd3fcccd7e73f9"},{"author":{"_account_id":13744,"name":"Guojian Shao","email":"tjusgj@gmail.com","username":"gjshao"},"change_message_id":"9ab6e0b2a52ecba40b7aa4918892ba45482152a7","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def test_project_create(self):"},{"line_number":31,"context_line":"        raw_output \u003d self.openstack(\u0027project create test-project\u0027)"},{"line_number":32,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":33,"context_line":"        self.assert_show_fields(items, self.PROJECT_FIELDS)"},{"line_number":34,"context_line":"        self.addCleanup(self.openstack, \u0027project delete test-project\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_b65c201a","line":31,"in_reply_to":"ba3cc151_2fac4734","updated":"2015-07-08 00:53:53.000000000","message":"since we have tempest_lib for openstack functional testing library, it\u0027s better to reuse it to generate resource name, id, url by data_utils.rand_name, data_utils.rand_uuid_hex, data_utils.rand_url as tempest do.","commit_id":"1db2af3ce7dcebe1a8b29b8cd1dd3fcccd7e73f9"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"9bddc1ef615e9194ddacbcd6211d45b4cd80fe95","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.addCleanup(self.openstack, \u0027project delete test-project\u0027)"},{"line_number":35,"context_line":""},{"line_number":36,"context_line":"    def test_project_delete(self):"},{"line_number":37,"context_line":"        self.openstack(\u0027project create dummy-project\u0027)"},{"line_number":38,"context_line":"        raw_output \u003d self.openstack(\u0027project delete dummy-project\u0027)"},{"line_number":39,"context_line":"        self.assertEqual(0, len(raw_output))"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_efa5ff46","line":37,"updated":"2015-07-07 18:25:03.000000000","message":"NAME \u003d uuid.uuid4().hex","commit_id":"1db2af3ce7dcebe1a8b29b8cd1dd3fcccd7e73f9"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3456f50828fce8f19ca694cd6900e7350be2180b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"            \u0027--description %(description)s \u0027"},{"line_number":26,"context_line":"            \u0027--enable \u0027"},{"line_number":27,"context_line":"            \u0027--property k1\u003dv1 \u0027"},{"line_number":28,"context_line":"            \u0027--property k2\u003dv2 \u0027"},{"line_number":29,"context_line":"            \u0027%(name)s\u0027 % {\u0027description\u0027: description,"},{"line_number":30,"context_line":"                          \u0027name\u0027: project_name})"},{"line_number":31,"context_line":"        self.addCleanup("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_fc19bb88","line":28,"updated":"2015-07-09 18:29:14.000000000","message":"cool, didn\u0027t notice we support this!","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"}],"functional/tests/identity/v2/test_role.py":[{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3456f50828fce8f19ca694cd6900e7350be2180b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":67,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def test_role_add(self):"},{"line_number":70,"context_line":"        role_name \u003d self._create_dummy_role()"},{"line_number":71,"context_line":"        username \u003d self._create_dummy_user()"},{"line_number":72,"context_line":"        raw_output \u003d self.openstack("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_9fc18182","line":69,"updated":"2015-07-09 18:29:14.000000000","message":"should this be test_role_assignment_add() to be clearer?","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":13744,"name":"Guojian Shao","email":"tjusgj@gmail.com","username":"gjshao"},"change_message_id":"cc26448517a77626277bcb964f7966ee57f498f7","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":67,"context_line":"        self.assert_show_fields(items, self.ROLE_FIELDS)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"    def test_role_add(self):"},{"line_number":70,"context_line":"        role_name \u003d self._create_dummy_role()"},{"line_number":71,"context_line":"        username \u003d self._create_dummy_user()"},{"line_number":72,"context_line":"        raw_output \u003d self.openstack("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_5d468c50","line":69,"in_reply_to":"ba3cc151_9fc18182","updated":"2015-07-10 05:53:16.000000000","message":"just want to make sure the method name match the command in doc: http://docs.openstack.org/developer/python-openstackclient/command-objects/role.html#role-add","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"3456f50828fce8f19ca694cd6900e7350be2180b","unresolved":false,"context_lines":[{"line_number":87,"context_line":"                          \u0027user\u0027: username,"},{"line_number":88,"context_line":"                          \u0027role\u0027: role_name})"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    def test_role_remove(self):"},{"line_number":91,"context_line":"        role_name \u003d self._create_dummy_role()"},{"line_number":92,"context_line":"        username \u003d self._create_dummy_user()"},{"line_number":93,"context_line":"        raw_output \u003d self.openstack("}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_3f8e3579","line":90,"updated":"2015-07-09 18:29:14.000000000","message":"should this be test_role_assignment_remove()?","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"}],"functional/tests/identity/v2/test_token.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"2055ffaadd53bea2610787d3942cf6d2c922a257","unresolved":false,"context_lines":[{"line_number":15,"context_line":""},{"line_number":16,"context_line":"class TokenTests(test_identity.IdentityTests):"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    def _create_dummy_token(self, add_clean_up\u003dTrue):"},{"line_number":19,"context_line":"        raw_output \u003d self.openstack(\u0027token issue\u0027)"},{"line_number":20,"context_line":"        items \u003d self.parse_show(raw_output)"},{"line_number":21,"context_line":"        self.assert_show_fields(items, self.TOKEN_FIELDS)"}],"source_content_type":"text/x-python","patch_set":3,"id":"ba3cc151_e4ab6b86","line":18,"updated":"2015-07-09 15:55:08.000000000","message":"move to test_identity?","commit_id":"b887c273afa89e98c63488f9808c95186c063c81"}],"functional/tests/identity/v2/test_user.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"03d731d993867fb2243beaa03619d08965df32d9","unresolved":false,"context_lines":[{"line_number":41,"context_line":"        self.addCleanup(self.openstack, \u0027user delete %s\u0027 % name)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_user_delete(self):"},{"line_number":44,"context_line":"        self.openstack(\u0027user create dummy\u0027)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027user delete dummy\u0027)"},{"line_number":46,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":47,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"ba3cc151_18f692f9","line":44,"updated":"2015-07-07 03:37:58.000000000","message":"use rand_name here","commit_id":"8262387509812169c40951f89353bf7f516e5af0"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"9bddc1ef615e9194ddacbcd6211d45b4cd80fe95","unresolved":false,"context_lines":[{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    def test_user_delete(self):"},{"line_number":44,"context_line":"        self.openstack(\u0027user create dummy\u0027)"},{"line_number":45,"context_line":"        raw_output \u003d self.openstack(\u0027user delete dummy\u0027)"},{"line_number":46,"context_line":"        self.assertEqual(0, len(raw_output))"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_bad_user_command(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba3cc151_6f3ecfdb","line":45,"updated":"2015-07-07 18:25:03.000000000","message":"NAME \u003d uuid.uuid4().hex","commit_id":"1db2af3ce7dcebe1a8b29b8cd1dd3fcccd7e73f9"}]}
