)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a65c441343bae08d61ae1adff9ed03db39ce0677","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2019-01-11 07:41:50 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Converting the application credentials API tests to use flask\u0027s"},{"line_number":8,"context_line":"test_client"},{"line_number":9,"context_line":"For each API unit test class, the methods are converted to use the"},{"line_number":10,"context_line":"Flask app test_client context manager."},{"line_number":11,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bfdaf3ff_359eb663","line":8,"updated":"2019-01-12 14:46:40.000000000","message":"Add a blank line here and try to keep the first line to 50 characters without wrapping over.","commit_id":"a480aa8eb6cc47c0f9a182604ada5fa94ef75ed9"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a65c441343bae08d61ae1adff9ed03db39ce0677","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Converting the application credentials API tests to use flask\u0027s"},{"line_number":8,"context_line":"test_client"},{"line_number":9,"context_line":"For each API unit test class, the methods are converted to use the"},{"line_number":10,"context_line":"Flask app test_client context manager."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I2f1a2de9d0974d43dcadb58f6623d15e4a0740c9"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bfdaf3ff_559b3a71","line":10,"updated":"2019-01-12 14:46:40.000000000","message":"This part is great :)","commit_id":"a480aa8eb6cc47c0f9a182604ada5fa94ef75ed9"}],"keystone/tests/unit/test_app_config.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":26,"context_line":"    custom_config_files \u003d [\u0027kst.conf\u0027, \u0027kst2.conf\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_config_files_have_default_values_when_envars_not_set(self):"},{"line_number":29,"context_line":" "},{"line_number":30,"context_line":"        config_files \u003d server_flask._get_config_files()"},{"line_number":31,"context_line":"        config_files.sort()"},{"line_number":32,"context_line":"        expected_config_files \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_9bee45b2","line":29,"updated":"2019-01-18 09:43:48.000000000","message":"This is an unrelated whitespace change, delete this empty line and then re-commit with `git commit --amend` and resubmit with `git review`","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    custom_config_dir \u003d \u0027/etc/kst/\u0027"},{"line_number":26,"context_line":"    custom_config_files \u003d [\u0027kst.conf\u0027, \u0027kst2.conf\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_config_files_have_default_values_when_envars_not_set(self): "},{"line_number":29,"context_line":"        config_files \u003d server_flask._get_config_files()"},{"line_number":30,"context_line":"        config_files.sort()"},{"line_number":31,"context_line":"        expected_config_files \u003d []"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_45c5ca3b","line":28,"updated":"2019-01-22 11:13:46.000000000","message":"One space left to remove","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    custom_config_dir \u003d \u0027/etc/kst/\u0027"},{"line_number":26,"context_line":"    custom_config_files \u003d [\u0027kst.conf\u0027, \u0027kst2.conf\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_config_files_have_default_values_when_envars_not_set(self): "},{"line_number":29,"context_line":"        config_files \u003d server_flask._get_config_files()"},{"line_number":30,"context_line":"        config_files.sort()"},{"line_number":31,"context_line":"        expected_config_files \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f448892d","line":28,"range":{"start_line":28,"start_character":72,"end_line":28,"end_character":73},"updated":"2019-01-31 08:58:57.000000000","message":"This file shouldn\u0027t be changed at all, and pep8 doesn\u0027t like the trailing whitespace here.\n\nhttp://logs.openstack.org/01/630301/4/check/openstack-tox-pep8/89a5752/job-output.txt.gz#_2019-01-30_22_30_27_258138","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"7e231557046fa989ff16728a82230d12aea31923","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    custom_config_dir \u003d \u0027/etc/kst/\u0027"},{"line_number":26,"context_line":"    custom_config_files \u003d [\u0027kst.conf\u0027, \u0027kst2.conf\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_config_files_have_default_values_when_envars_not_set(self): "},{"line_number":29,"context_line":"        config_files \u003d server_flask._get_config_files()"},{"line_number":30,"context_line":"        config_files.sort()"},{"line_number":31,"context_line":"        expected_config_files \u003d []"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_87269a67","line":28,"range":{"start_line":28,"start_character":71,"end_line":28,"end_character":73},"updated":"2019-02-01 09:24:27.000000000","message":"Only one single error left for pep8. Need to remove this space. pep8 will pass after this.","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"b5926fe3059a8933843b41dcb20d0b611d68736b","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    custom_config_dir \u003d \u0027/etc/kst/\u0027"},{"line_number":26,"context_line":"    custom_config_files \u003d [\u0027kst.conf\u0027, \u0027kst2.conf\u0027]"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    def test_config_files_have_default_values_when_envars_not_set(self): "},{"line_number":29,"context_line":"        config_files \u003d server_flask._get_config_files()"},{"line_number":30,"context_line":"        config_files.sort()"},{"line_number":31,"context_line":"        expected_config_files \u003d []"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_3fb001dd","line":28,"updated":"2019-02-02 18:07:49.000000000","message":"This extra space is the only pep8 error left. If you are having trouble using your editor to remove it I can fix it for you.","commit_id":"0cd8e52a7302cf4f4365e5f631cc718d9eeb930b"}],"keystone/tests/unit/test_v3_application_credential.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a65c441343bae08d61ae1adff9ed03db39ce0677","unresolved":false,"context_lines":[{"line_number":127,"context_line":"            \u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":128,"context_line":"            body\u003dapp_cred_body_1,"},{"line_number":129,"context_line":"            expected_status\u003dhttp_client.CREATED)"},{"line_number":130,"context_line":"        auth_data \u003d self.build_authentication_request("},{"line_number":131,"context_line":"            app_cred_id\u003dapp_cred_1.json[\u0027application_credential\u0027][\u0027id\u0027],"},{"line_number":132,"context_line":"            secret\u003dapp_cred_1.json[\u0027application_credential\u0027][\u0027secret\u0027])"},{"line_number":133,"context_line":"        token_data \u003d self.v3_create_token(auth_data,"},{"line_number":134,"context_line":"                                          expected_status\u003dhttp_client.CREATED)"},{"line_number":135,"context_line":"        app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":136,"context_line":"        self.post("},{"line_number":137,"context_line":"            path\u003d\u0027/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_75943e45","side":"PARENT","line":134,"range":{"start_line":130,"start_character":8,"end_line":134,"end_character":77},"updated":"2019-01-12 14:46:40.000000000","message":"This test is failing because you\u0027ve removed this part, please add it back and use token_data.headers[\u0027x-subject-token\u0027] as the auth token.","commit_id":"e287f58fbbfb81f16270800581059be2083e547c"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a65c441343bae08d61ae1adff9ed03db39ce0677","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                json\u003dapp_cred_body,"},{"line_number":61,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":62,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":63,"context_line":"            "},{"line_number":64,"context_line":"        # Create operation returns the secret"},{"line_number":65,"context_line":"        self.assertIn(\u0027secret\u0027, resp.json[\u0027application_credential\u0027])"},{"line_number":66,"context_line":"        # But not the stored hash"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_b5dce646","line":63,"updated":"2019-01-12 14:46:40.000000000","message":"These red marks indicates whitespace was added, could you clean them up?","commit_id":"a480aa8eb6cc47c0f9a182604ada5fa94ef75ed9"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a65c441343bae08d61ae1adff9ed03db39ce0677","unresolved":false,"context_lines":[{"line_number":77,"context_line":"                json\u003dapp_cred_body,"},{"line_number":78,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":79,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":80,"context_line":"            self.assertEqual(secret, resp.json[\u0027application_credential\u0027][\u0027secret\u0027])"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def test_create_application_credential_roles_from_token(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_95e3e205","line":80,"updated":"2019-01-12 14:46:40.000000000","message":"Like the first test, let\u0027s move this out of the test_client block by moving it to the left to be aligned with start of the \u0027with\u0027, same with in the other tests.","commit_id":"a480aa8eb6cc47c0f9a182604ada5fa94ef75ed9"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"a65c441343bae08d61ae1adff9ed03db39ce0677","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    def test_create_application_credential_with_expiration(self):"},{"line_number":125,"context_line":"        with self.test_client() as c:"},{"line_number":126,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":127,"context_line":"            expires \u003d datetime.datetime.utcnow() + datetime.timedelta(days\u003d365)"},{"line_number":128,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles, expires\u003dexpires)"},{"line_number":129,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":130,"context_line":"            resp\u003dc.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bfdaf3ff_15a612c3","line":127,"updated":"2019-01-12 14:46:40.000000000","message":"I found the issue with this test, the new flask request doesn\u0027t convert the datetime object to a string properly, so you can do this explicitly with:\n\n expires \u003d str(expires)","commit_id":"a480aa8eb6cc47c0f9a182604ada5fa94ef75ed9"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                \u0027user_id\u0027: self.user_id,"},{"line_number":270,"context_line":"                \u0027app_cred_id\u0027: app_cred.json[\u0027application_credential\u0027][\u0027id\u0027]},"},{"line_number":271,"context_line":"            token\u003dtoken_data.headers[\u0027x-subject-token\u0027],"},{"line_number":272,"context_line":"            expected_status\u003dhttp_client.FORBIDDEN)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def test_delete_application_credential_allow_recursion(self):"},{"line_number":275,"context_line":"        roles \u003d [{\u0027id\u0027: self.role_id}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_5b6a1dee","side":"PARENT","line":272,"range":{"start_line":272,"start_character":12,"end_line":272,"end_character":49},"updated":"2019-01-18 09:43:48.000000000","message":"You must not change the expected status code. If the test fails due to the status code being unexpected, that means you need to fix the test, not the status code.","commit_id":"e287f58fbbfb81f16270800581059be2083e547c"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":59,"context_line":"                \u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":60,"context_line":"                json\u003dapp_cred_body,"},{"line_number":61,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":62,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token}) "},{"line_number":63,"context_line":"        # Create operation returns the secret"},{"line_number":64,"context_line":"        self.assertIn(\u0027secret\u0027, resp.json[\u0027application_credential\u0027])"},{"line_number":65,"context_line":"        # But not the stored hash"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_cfa7390b","line":62,"updated":"2019-01-17 17:00:47.000000000","message":"Need to remove this space also","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                json\u003dapp_cred_body,"},{"line_number":77,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":78,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":79,"context_line":"            self.assertEqual(secret, resp.json[\u0027application_credential\u0027][\u0027secret\u0027])"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_create_application_credential_roles_from_token(self):"},{"line_number":82,"context_line":"         with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_bb40e9a6","line":79,"updated":"2019-01-18 09:43:48.000000000","message":"Move this to the left so that it lines up with \u0027with\u0027","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_create_application_credential_roles_from_token(self):"},{"line_number":82,"context_line":"         with self.test_client() as c:"},{"line_number":83,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":84,"context_line":"            app_cred_body \u003d self._app_cred_body()"},{"line_number":85,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":86,"context_line":"            resp \u003d c.post("}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_aff0b5fe","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":17},"updated":"2019-01-17 17:00:47.000000000","message":"I can\u0027t see the use of this variable \u0027roles\u0027.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_create_application_credential_roles_from_token(self):"},{"line_number":82,"context_line":"         with self.test_client() as c:"},{"line_number":83,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":84,"context_line":"            app_cred_body \u003d self._app_cred_body()"},{"line_number":85,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":86,"context_line":"            resp \u003d c.post("}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_1b38153b","line":83,"range":{"start_line":83,"start_character":12,"end_line":83,"end_character":17},"in_reply_to":"bfdaf3ff_aff0b5fe","updated":"2019-01-18 09:43:48.000000000","message":"Seems to be an accidental copy and paste","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":89,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":90,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"            self.assertThat(resp.json[\u0027application_credential\u0027][\u0027roles\u0027],"},{"line_number":93,"context_line":"                        matchers.HasLength(1))"},{"line_number":94,"context_line":"            self.assertEqual(resp.json[\u0027application_credential\u0027][\u0027roles\u0027][0][\u0027id\u0027],"},{"line_number":95,"context_line":"                         self.role_id)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_db3dad2b","line":92,"updated":"2019-01-18 09:43:48.000000000","message":"Move this to the left so that it lines up with \u0027with\u0027","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"            self.assertThat(resp.json[\u0027application_credential\u0027][\u0027roles\u0027],"},{"line_number":93,"context_line":"                        matchers.HasLength(1))"},{"line_number":94,"context_line":"            self.assertEqual(resp.json[\u0027application_credential\u0027][\u0027roles\u0027][0][\u0027id\u0027],"},{"line_number":95,"context_line":"                         self.role_id)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_7b4601c3","line":94,"updated":"2019-01-18 09:43:48.000000000","message":"Move this to the left so that it lines up with \u0027with\u0027","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":103,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles)"},{"line_number":104,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":105,"context_line":"            resp\u003dc.post(\u0027/v3/users/%s/application_credentials\u0027 % wrong_user[\u0027id\u0027],"},{"line_number":106,"context_line":"                  json\u003dapp_cred_body,"},{"line_number":107,"context_line":"                  expected_status_code\u003dhttp_client.FORBIDDEN,"},{"line_number":108,"context_line":"                  headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_db6b6d1b","line":105,"updated":"2019-01-18 09:43:48.000000000","message":"This resp variable isn\u0027t used anywhere and that will cause the pep8 tests to fail. You can just use c.post without assigning it to a variable. Same comment in the other tests. You can use `tox -epep8` to verify the pep8 tests before you submit the change.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"                  json\u003dapp_cred_body,"},{"line_number":117,"context_line":"                  expected_status_code\u003dhttp_client.BAD_REQUEST,"},{"line_number":118,"context_line":"                  headers\u003d{\u0027X-Auth-Token\u0027: token} )"},{"line_number":119,"context_line":"    "},{"line_number":120,"context_line":"    def test_create_application_credential_with_expiration(self):"},{"line_number":121,"context_line":"        with self.test_client() as c:"},{"line_number":122,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_6fc72d98","line":119,"updated":"2019-01-17 17:00:47.000000000","message":"ditto","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        with self.test_client() as c:"},{"line_number":122,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":123,"context_line":"            expires \u003d datetime.datetime.utcnow() + datetime.timedelta(days\u003d365)"},{"line_number":124,"context_line":"            expires \u003d str(expires)"},{"line_number":125,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles, expires\u003dexpires)"},{"line_number":126,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":127,"context_line":"            resp\u003dc.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_8f493132","line":124,"updated":"2019-01-17 17:00:47.000000000","message":"Any specific reason to convert into str?","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":121,"context_line":"        with self.test_client() as c:"},{"line_number":122,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":123,"context_line":"            expires \u003d datetime.datetime.utcnow() + datetime.timedelta(days\u003d365)"},{"line_number":124,"context_line":"            expires \u003d str(expires)"},{"line_number":125,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles, expires\u003dexpires)"},{"line_number":126,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":127,"context_line":"            resp\u003dc.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_3b7b99f5","line":124,"in_reply_to":"bfdaf3ff_8f493132","updated":"2019-01-18 09:43:48.000000000","message":"There was an issue with flask\u0027s rest call not properly converting the datetime object and causing the test to produce a 400 error.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            token_data \u003d self.v3_create_token(auth_data,"},{"line_number":168,"context_line":"                                          expected_status\u003dhttp_client.CREATED)"},{"line_number":169,"context_line":"            app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":170,"context_line":"            token\u003dtoken_data.headers[\u0027x-subject-token\u0027]"},{"line_number":171,"context_line":"            resp\u003d c.post("},{"line_number":172,"context_line":"                \u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":173,"context_line":"                json\u003dapp_cred_body_2,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_6fe88de1","line":170,"updated":"2019-01-17 17:00:47.000000000","message":"We don\u0027t need this L170, as we already issued token  in L158.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            token_data \u003d self.v3_create_token(auth_data,"},{"line_number":168,"context_line":"                                          expected_status\u003dhttp_client.CREATED)"},{"line_number":169,"context_line":"            app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":170,"context_line":"            token\u003dtoken_data.headers[\u0027x-subject-token\u0027]"},{"line_number":171,"context_line":"            resp\u003d c.post("},{"line_number":172,"context_line":"                \u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":173,"context_line":"                json\u003dapp_cred_body_2,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_1b5fb572","line":170,"in_reply_to":"bfdaf3ff_6fe88de1","updated":"2019-01-18 09:43:48.000000000","message":"Vishakha, see line 139 on the old change, this test specifically requires generating a second token.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":193,"context_line":"                \u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":194,"context_line":"                json\u003dapp_cred_body_2,"},{"line_number":195,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":196,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_list_application_credentials(self):"},{"line_number":199,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_9bdf25d5","line":196,"range":{"start_line":196,"start_character":41,"end_line":196,"end_character":46},"updated":"2019-01-18 09:43:48.000000000","message":"This test is very similar to the test above it, it needs to generate a second token using the first application credential. Currently this test is testing the wrong thing because it is using the old token.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_list_application_credentials(self):"},{"line_number":199,"context_line":"        with self.test_client() as c:"},{"line_number":200,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":201,"context_line":"                        expected_status\u003dhttp_client.OK)"},{"line_number":202,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":203,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_8fcff154","line":200,"updated":"2019-01-17 17:00:47.000000000","message":"this self.get should be \u0027c.get\u0027?","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":197,"context_line":""},{"line_number":198,"context_line":"    def test_list_application_credentials(self):"},{"line_number":199,"context_line":"        with self.test_client() as c:"},{"line_number":200,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":201,"context_line":"                        expected_status\u003dhttp_client.OK)"},{"line_number":202,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":203,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_3bf2b971","line":200,"in_reply_to":"bfdaf3ff_8fcff154","updated":"2019-01-18 09:43:48.000000000","message":"+1","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"df863b7a9800eba28464391a4321e3cd3aebe72e","unresolved":false,"context_lines":[{"line_number":199,"context_line":"        with self.test_client() as c:"},{"line_number":200,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":201,"context_line":"                        expected_status\u003dhttp_client.OK)"},{"line_number":202,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":203,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":204,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles)"},{"line_number":205,"context_line":"            self.post(\u0027/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_2fd8451c","line":202,"updated":"2019-01-17 17:00:47.000000000","message":"Same for the below requests in this function.","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":231,"context_line":"            search_path \u003d (\u0027/users/%(user_id)s/application_credentials?\u0027"},{"line_number":232,"context_line":"                       \u0027name\u003d%(name)s\u0027) % {\u0027user_id\u0027: self.user_id,"},{"line_number":233,"context_line":"                                           \u0027name\u0027: name}"},{"line_number":234,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":235,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":236,"context_line":"            resp \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,                     "},{"line_number":237,"context_line":"                      json\u003dapp_cred_body,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_3b9719ef","line":234,"range":{"start_line":234,"start_character":19,"end_line":234,"end_character":27},"updated":"2019-01-18 09:43:48.000000000","message":"In this test too","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":261,"context_line":"                         expected_status_code\u003dhttp_client.CREATED,"},{"line_number":262,"context_line":"                         headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":263,"context_line":"            app_cred_id \u003d resp.json[\u0027application_credential\u0027][\u0027id\u0027]"},{"line_number":264,"context_line":"            self.head(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":265,"context_line":"                                         \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":266,"context_line":"                                         expected_status\u003dhttp_client.OK)"},{"line_number":267,"context_line":"            expected_response \u003d resp.json"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_fb9c310f","line":264,"range":{"start_line":264,"start_character":12,"end_line":264,"end_character":21},"updated":"2019-01-18 09:43:48.000000000","message":"c.head","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":266,"context_line":"                                         expected_status\u003dhttp_client.OK)"},{"line_number":267,"context_line":"            expected_response \u003d resp.json"},{"line_number":268,"context_line":"            expected_response[\u0027application_credential\u0027].pop(\u0027secret\u0027)"},{"line_number":269,"context_line":"            resp \u003d self.get(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":270,"context_line":"                                               \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":271,"context_line":"                            expected_status\u003dhttp_client.OK)"},{"line_number":272,"context_line":"            self.assertDictEqual(resp.json, expected_response)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_bb8a29bc","line":269,"range":{"start_line":269,"start_character":19,"end_line":269,"end_character":27},"updated":"2019-01-18 09:43:48.000000000","message":"c.get","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":272,"context_line":"            self.assertDictEqual(resp.json, expected_response)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def test_get_head_application_credential_not_found(self):"},{"line_number":275,"context_line":"        self.head(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":276,"context_line":"                                     \u0027app_cred_id\u0027: uuid.uuid4().hex},"},{"line_number":277,"context_line":"                  expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":278,"context_line":"        self.get(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_db87edb4","line":275,"range":{"start_line":275,"start_character":8,"end_line":275,"end_character":17},"updated":"2019-01-18 09:43:48.000000000","message":"c.head","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        self.head(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":276,"context_line":"                                     \u0027app_cred_id\u0027: uuid.uuid4().hex},"},{"line_number":277,"context_line":"                  expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":278,"context_line":"        self.get(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":279,"context_line":"                                    \u0027app_cred_id\u0027: uuid.uuid4().hex},"},{"line_number":280,"context_line":"                 expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":281,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_9b8de5d4","line":278,"range":{"start_line":278,"start_character":8,"end_line":278,"end_character":16},"updated":"2019-01-18 09:43:48.000000000","message":"c.get","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                             expected_status_code\u003dhttp_client.CREATED,"},{"line_number":290,"context_line":"                             headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":291,"context_line":"            app_cred_id \u003d resp.json[\u0027application_credential\u0027][\u0027id\u0027]"},{"line_number":292,"context_line":"            self.delete(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":293,"context_line":"                                           \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":294,"context_line":"                        expected_status\u003dhttp_client.NO_CONTENT)"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_3bc079e1","line":292,"range":{"start_line":292,"start_character":12,"end_line":292,"end_character":23},"updated":"2019-01-18 09:43:48.000000000","message":"c.delete","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c76c8ac44a4492ba3ced05389bb3fe90688a55c4","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            c.delete(member_path,"},{"line_number":338,"context_line":"                    json\u003dapp_cred_body,"},{"line_number":339,"context_line":"                    expected_status_code\u003dhttp_client.NO_CONTENT,"},{"line_number":340,"context_line":"                    headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":341,"context_line":"    def test_update_application_credential(self):"},{"line_number":342,"context_line":"        with self.test_client() as c:"},{"line_number":343,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"}],"source_content_type":"text/x-python","patch_set":2,"id":"bfdaf3ff_bb78e9c3","line":340,"range":{"start_line":340,"start_character":45,"end_line":340,"end_character":50},"updated":"2019-01-18 09:43:48.000000000","message":"Here also you need to be generating a new token based on the application credential","commit_id":"69211ec1e3ba028adb524bf87c519f916e9dd912"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"            \u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":148,"context_line":"            body\u003dapp_cred_body_1,"},{"line_number":149,"context_line":"            expected_status\u003dhttp_client.CREATED)"},{"line_number":150,"context_line":"        auth_data \u003d self.build_authentication_request("},{"line_number":151,"context_line":"            app_cred_id\u003dapp_cred_1.json[\u0027application_credential\u0027][\u0027id\u0027],"},{"line_number":152,"context_line":"            secret\u003dapp_cred_1.json[\u0027application_credential\u0027][\u0027secret\u0027])"},{"line_number":153,"context_line":"        token_data \u003d self.v3_create_token(auth_data,"},{"line_number":154,"context_line":"                                          expected_status\u003dhttp_client.CREATED)"},{"line_number":155,"context_line":"        app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":156,"context_line":"        self.post("},{"line_number":157,"context_line":"            path\u003d\u0027/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_cdb79cd8","side":"PARENT","line":154,"range":{"start_line":150,"start_character":8,"end_line":154,"end_character":77},"updated":"2019-01-22 11:13:46.000000000","message":"This part is to be added in the new test case","commit_id":"e287f58fbbfb81f16270800581059be2083e547c"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                expected_status_code\u003dhttp_client.CREATED,"},{"line_number":89,"context_line":"                headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"         self.assertThat(resp.json[\u0027application_credential\u0027][\u0027roles\u0027],"},{"line_number":92,"context_line":"                        matchers.HasLength(1))"},{"line_number":93,"context_line":"         self.assertEqual(resp.json[\u0027application_credential\u0027][\u0027roles\u0027][0][\u0027id\u0027],"},{"line_number":94,"context_line":"                         self.role_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_ed1860d4","line":91,"range":{"start_line":91,"start_character":8,"end_line":91,"end_character":10},"updated":"2019-01-22 11:13:46.000000000","message":"1 extra space is here. You can check for indentations, styles by running tox -epep8 to avoid such type of errors.","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":188,"context_line":"            app_cred_id\u003dresp.json[\u0027application_credential\u0027][\u0027id\u0027],"},{"line_number":189,"context_line":"            secret\u003dresp.json[\u0027application_credential\u0027][\u0027secret\u0027]"},{"line_number":190,"context_line":"            app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":191,"context_line":"            token\u003dtoken_data.headers[\u0027x-subject-token\u0027]"},{"line_number":192,"context_line":"            resp\u003d c.post("},{"line_number":193,"context_line":"                \u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":194,"context_line":"                json\u003dapp_cred_body_2,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_adb6d8d8","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":28},"updated":"2019-01-22 11:13:46.000000000","message":"missing token_data","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":204,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":205,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":206,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles)"},{"line_number":207,"context_line":"            self.post(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":208,"context_line":"                      body\u003dapp_cred_body,"},{"line_number":209,"context_line":"                      expected_status\u003dhttp_client.CREATED)"},{"line_number":210,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_6d69d023","line":207,"range":{"start_line":207,"start_character":12,"end_line":207,"end_character":20},"updated":"2019-01-22 11:13:46.000000000","message":"c.post","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            self.post(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":208,"context_line":"                      body\u003dapp_cred_body,"},{"line_number":209,"context_line":"                      expected_status\u003dhttp_client.CREATED)"},{"line_number":210,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":211,"context_line":"                            expected_status\u003dhttp_client.OK)"},{"line_number":212,"context_line":"            self.assertEqual(1, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":213,"context_line":"            self.assertNotIn(\u0027secret\u0027, resp.json[\u0027application_credentials\u0027][0])"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_ad601834","line":210,"range":{"start_line":210,"start_character":19,"end_line":210,"end_character":27},"updated":"2019-01-22 11:13:46.000000000","message":"c.get","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":214,"context_line":"            self.assertNotIn(\u0027secret_hash\u0027,"},{"line_number":215,"context_line":"                          resp.json[\u0027application_credentials\u0027][0])"},{"line_number":216,"context_line":"            app_cred_body[\u0027application_credential\u0027][\u0027name\u0027] \u003d \u0027two\u0027"},{"line_number":217,"context_line":"            self.post(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":218,"context_line":"                      body\u003dapp_cred_body,"},{"line_number":219,"context_line":"                      expected_status\u003dhttp_client.CREATED)"},{"line_number":220,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_cd61dc3b","line":217,"range":{"start_line":217,"start_character":12,"end_line":217,"end_character":20},"updated":"2019-01-22 11:13:46.000000000","message":"c.post","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            self.post(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":218,"context_line":"                      body\u003dapp_cred_body,"},{"line_number":219,"context_line":"                      expected_status\u003dhttp_client.CREATED)"},{"line_number":220,"context_line":"            resp \u003d self.get(\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":221,"context_line":"                            expected_status\u003dhttp_client.OK)"},{"line_number":222,"context_line":"            self.assertEqual(2, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":223,"context_line":"            for ac in resp.json[\u0027application_credentials\u0027]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_0d4fe4bd","line":220,"range":{"start_line":220,"start_character":19,"end_line":220,"end_character":26},"updated":"2019-01-22 11:13:46.000000000","message":"c.get","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":233,"context_line":"            search_path \u003d (\u0027/users/%(user_id)s/application_credentials?\u0027"},{"line_number":234,"context_line":"                       \u0027name\u003d%(name)s\u0027) % {\u0027user_id\u0027: self.user_id,"},{"line_number":235,"context_line":"                                           \u0027name\u0027: name}"},{"line_number":236,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":237,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":238,"context_line":"            resp \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":239,"context_line":"                      json\u003dapp_cred_body,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_3c044a15","line":236,"range":{"start_line":236,"start_character":19,"end_line":236,"end_character":27},"updated":"2019-01-31 08:58:57.000000000","message":"c.get","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                      json\u003dapp_cred_body,"},{"line_number":240,"context_line":"                      expected_status_code\u003dhttp_client.CREATED,"},{"line_number":241,"context_line":"                      headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":242,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":243,"context_line":"            self.assertEqual(1, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":244,"context_line":"            self.assertNotIn(\u0027secret\u0027, resp.json[\u0027application_credentials\u0027][0])"},{"line_number":245,"context_line":"            self.assertNotIn(\u0027secret_hash\u0027,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_dc089e29","line":242,"range":{"start_line":242,"start_character":19,"end_line":242,"end_character":27},"updated":"2019-01-31 08:58:57.000000000","message":"c.get","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":249,"context_line":"                      json\u003dapp_cred_body,"},{"line_number":250,"context_line":"                      expected_status_code\u003dhttp_client.CREATED,"},{"line_number":251,"context_line":"                      headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":252,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":253,"context_line":"            self.assertEqual(1, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":254,"context_line":"            self.assertEqual(resp.json[\u0027application_credentials\u0027][0][\u0027name\u0027], name)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_bc0fda2c","line":252,"range":{"start_line":252,"start_character":19,"end_line":252,"end_character":27},"updated":"2019-01-31 08:58:57.000000000","message":"c.get","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":294,"context_line":"            app_cred_id \u003d resp.json[\u0027application_credential\u0027][\u0027id\u0027]"},{"line_number":295,"context_line":"            c.delete(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":296,"context_line":"                                           \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":297,"context_line":"                        expected_status\u003dhttp_client.NO_CONTENT)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_delete_application_credential_not_found(self):"},{"line_number":300,"context_line":"        self.delete(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_6d91d052","line":297,"range":{"start_line":297,"start_character":24,"end_line":297,"end_character":38},"updated":"2019-01-22 11:13:46.000000000","message":"expected_status_code","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":296,"context_line":"                                           \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":297,"context_line":"                        expected_status\u003dhttp_client.NO_CONTENT)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"    def test_delete_application_credential_not_found(self):"},{"line_number":300,"context_line":"        self.delete(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":301,"context_line":"                                       \u0027app_cred_id\u0027: uuid.uuid4().hex},"},{"line_number":302,"context_line":"                    expected_status\u003dhttp_client.NOT_FOUND)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_4dd08cf8","line":299,"updated":"2019-01-22 11:13:46.000000000","message":"This test case remaining to convert into flask\u0027s test client.","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":299,"context_line":"    def test_delete_application_credential_not_found(self):"},{"line_number":300,"context_line":"        self.delete(MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":301,"context_line":"                                       \u0027app_cred_id\u0027: uuid.uuid4().hex},"},{"line_number":302,"context_line":"                    expected_status\u003dhttp_client.NOT_FOUND)"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    def test_delete_application_credential_with_application_credential(self):"},{"line_number":305,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_ed8e202d","line":302,"range":{"start_line":302,"start_character":20,"end_line":302,"end_character":35},"updated":"2019-01-22 11:13:46.000000000","message":"expected_status_code","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"2d389e604b7771a62741dfd8e61ed7df49cc8adc","unresolved":false,"context_lines":[{"line_number":337,"context_line":"            member_path \u003d \u0027/v3%s\u0027 % MEMBER_PATH_FMT % {"},{"line_number":338,"context_line":"                    \u0027user_id\u0027: self.user_id,"},{"line_number":339,"context_line":"                    \u0027app_cred_id\u0027: resp.json[\u0027application_credential\u0027][\u0027id\u0027]}"},{"line_number":340,"context_line":"            token\u003dtoken_data.headers[\u0027x-subject-token\u0027]"},{"line_number":341,"context_line":"            c.delete(member_path,"},{"line_number":342,"context_line":"                    json\u003dapp_cred_body,"},{"line_number":343,"context_line":"                    expected_status_code\u003dhttp_client.NO_CONTENT,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9fdfeff1_cd2a3ce6","line":340,"range":{"start_line":340,"start_character":18,"end_line":340,"end_character":28},"updated":"2019-01-22 11:13:46.000000000","message":"Missing token_data","commit_id":"4507b4a24989d24e7b9f9414cdf5586d97bb0fce"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":156,"context_line":"        self.post("},{"line_number":157,"context_line":"            path\u003d\u0027/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":158,"context_line":"            body\u003dapp_cred_body_2,"},{"line_number":159,"context_line":"            token\u003dtoken_data.headers[\u0027x-subject-token\u0027],"},{"line_number":160,"context_line":"            expected_status\u003dhttp_client.CREATED)"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    def test_list_application_credentials(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_d4d22528","side":"PARENT","line":159,"range":{"start_line":159,"start_character":18,"end_line":159,"end_character":28},"updated":"2019-01-31 08:58:57.000000000","message":"See the old version here.","commit_id":"e287f58fbbfb81f16270800581059be2083e547c"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                            matchers.HasLength(1))"},{"line_number":89,"context_line":"            self.assertEqual(resp.json[\u0027application_credential\u0027][\u0027roles\u0027][0][\u0027id\u0027],"},{"line_number":90,"context_line":"                             self.role_id)"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_create_application_credential_wrong_user(self):"},{"line_number":94,"context_line":"        wrong_user \u003d unit.create_user(PROVIDERS.identity_api,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_546395b2","line":91,"updated":"2019-01-31 08:58:57.000000000","message":"pep8 doesn\u0027t like the extra blank line here\n\nhttp://logs.openstack.org/01/630301/4/check/openstack-tox-pep8/89a5752/job-output.txt.gz#_2019-01-30_22_30_37_510846","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                                              expected_status\u003dhttp_client.CREATED)"},{"line_number":163,"context_line":"            app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":164,"context_line":"            token \u003d token_data.headers[\u0027x-subject-token\u0027]"},{"line_number":165,"context_line":"            resp \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":166,"context_line":"                          json\u003dapp_cred_body_2,"},{"line_number":167,"context_line":"                          expected_status_code\u003dhttp_client.FORBIDDEN,"},{"line_number":168,"context_line":"                          headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_74349993","line":165,"range":{"start_line":165,"start_character":12,"end_line":165,"end_character":16},"updated":"2019-01-31 08:58:57.000000000","message":"This variable is never used, so you don\u0027t need to assign anything to it.\n\nhttp://logs.openstack.org/01/630301/4/check/openstack-tox-pep8/89a5752/job-output.txt.gz#_2019-01-30_22_30_37_511294","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":180,"context_line":"            auth_data \u003d self.build_authentication_request("},{"line_number":181,"context_line":"                app_cred_id\u003dapp_cred_1.json[\u0027application_credential\u0027][\u0027id\u0027],"},{"line_number":182,"context_line":"                secret\u003dapp_cred_1.json[\u0027application_credential\u0027][\u0027secret\u0027])"},{"line_number":183,"context_line":"            token_data \u003d self.v3_create_token(auth_data,"},{"line_number":184,"context_line":"                                              expected_status\u003dhttp_client.CREATED)"},{"line_number":185,"context_line":"            app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":186,"context_line":"            token \u003d self.get_scoped_token()"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_54bf15d0","line":183,"range":{"start_line":183,"start_character":12,"end_line":183,"end_character":22},"updated":"2019-01-31 08:58:57.000000000","message":"This is the token that needs to be used for the second c.post call...","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":183,"context_line":"            token_data \u003d self.v3_create_token(auth_data,"},{"line_number":184,"context_line":"                                              expected_status\u003dhttp_client.CREATED)"},{"line_number":185,"context_line":"            app_cred_body_2 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":186,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":187,"context_line":"            c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":188,"context_line":"                   json\u003dapp_cred_body_2,"},{"line_number":189,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_14b50dee","line":186,"range":{"start_line":186,"start_character":12,"end_line":186,"end_character":17},"updated":"2019-01-31 08:58:57.000000000","message":"...not this one.","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":187,"context_line":"            c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":188,"context_line":"                   json\u003dapp_cred_body_2,"},{"line_number":189,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"},{"line_number":190,"context_line":"                   headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"    def test_list_application_credentials(self):"},{"line_number":193,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_94c81d74","line":190,"range":{"start_line":190,"start_character":44,"end_line":190,"end_character":49},"updated":"2019-01-31 08:58:57.000000000","message":"This should use token_data.headers[\u0027x-subject-token\u0027] same as the old version.","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":199,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":200,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles)"},{"line_number":201,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":202,"context_line":"            c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":203,"context_line":"                   json\u003dapp_cred_body,"},{"line_number":204,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_94f25d99","line":201,"range":{"start_line":201,"start_character":12,"end_line":201,"end_character":43},"updated":"2019-01-31 08:58:57.000000000","message":"You could reuse the same token here instead of creating a new one","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":203,"context_line":"                   json\u003dapp_cred_body,"},{"line_number":204,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"},{"line_number":205,"context_line":"                   headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":206,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":207,"context_line":"            resp \u003d c.get(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":208,"context_line":"                         expected_status_code\u003dhttp_client.OK,"},{"line_number":209,"context_line":"                         headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_b4ed21b8","line":206,"range":{"start_line":206,"start_character":12,"end_line":206,"end_character":43},"updated":"2019-01-31 08:58:57.000000000","message":"here too","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":212,"context_line":"            self.assertNotIn(\u0027secret_hash\u0027,"},{"line_number":213,"context_line":"                             resp.json[\u0027application_credentials\u0027][0])"},{"line_number":214,"context_line":"            app_cred_body[\u0027application_credential\u0027][\u0027name\u0027] \u003d \u0027two\u0027"},{"line_number":215,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":216,"context_line":"            c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":217,"context_line":"                   json\u003dapp_cred_body,"},{"line_number":218,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f43c0930","line":215,"range":{"start_line":215,"start_character":12,"end_line":215,"end_character":43},"updated":"2019-01-31 08:58:57.000000000","message":"here too","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":234,"context_line":"            search_path \u003d (\u0027/users/%(user_id)s/application_credentials?\u0027"},{"line_number":235,"context_line":"                           \u0027name\u003d%(name)s\u0027) % {\u0027user_id\u0027: self.user_id,"},{"line_number":236,"context_line":"                                               \u0027name\u0027: name}"},{"line_number":237,"context_line":"            resp \u003d self.get(search_path,"},{"line_number":238,"context_line":"                            expected_status\u003dhttp_client.OK)"},{"line_number":239,"context_line":"            self.assertEqual([], resp.json[\u0027application_credentials\u0027])"},{"line_number":240,"context_line":"            resp \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":241,"context_line":"                          json\u003dapp_cred_body,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_d42a25d9","line":238,"range":{"start_line":237,"start_character":12,"end_line":238,"end_character":59},"updated":"2019-01-31 08:58:57.000000000","message":"This needs to be converted to use test_client as well, so it should be:\n\n resp \u003d c.get(search_path,\n              expected_status_code\u003dhttp_client.OK,\n              headers\u003d{\u0027X-Auth-Token\u0027: token})","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":241,"context_line":"                          json\u003dapp_cred_body,"},{"line_number":242,"context_line":"                          expected_status_code\u003dhttp_client.CREATED,"},{"line_number":243,"context_line":"                          headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":244,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":245,"context_line":"            self.assertEqual(1, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":246,"context_line":"            self.assertNotIn(\u0027secret\u0027, resp.json[\u0027application_credentials\u0027][0])"},{"line_number":247,"context_line":"            self.assertNotIn(\u0027secret_hash\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_b41be1c7","line":244,"range":{"start_line":244,"start_character":12,"end_line":244,"end_character":72},"updated":"2019-01-31 08:58:57.000000000","message":"This should also be converted, so\n\n resp \u003d c.get(search_path,\n              expected_status_code\u003dhttp_client.OK,\n              headers\u003d{\u0027X-Auth-Token\u0027: token})","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":248,"context_line":"                             resp.json[\u0027application_credentials\u0027][0])"},{"line_number":249,"context_line":"            app_cred_body[\u0027application_credential\u0027][\u0027name\u0027] \u003d \u0027two\u0027"},{"line_number":250,"context_line":"            resp \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":251,"context_line":"                        json\u003dapp_cred_body,"},{"line_number":252,"context_line":"                        expected_status_code\u003dhttp_client.CREATED,"},{"line_number":253,"context_line":"                        headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":254,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":255,"context_line":"            self.assertEqual(1, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":256,"context_line":"            self.assertEqual(resp.json[\u0027application_credentials\u0027][0][\u0027name\u0027], name)"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_34861115","line":253,"range":{"start_line":251,"start_character":0,"end_line":253,"end_character":56},"updated":"2019-01-31 08:58:57.000000000","message":"These three lines all need one extra space so that the beginning lines up with the ( on line 250\n\nhttp://logs.openstack.org/01/630301/4/check/openstack-tox-pep8/89a5752/job-output.txt.gz#_2019-01-30_22_30_37_512019","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":251,"context_line":"                        json\u003dapp_cred_body,"},{"line_number":252,"context_line":"                        expected_status_code\u003dhttp_client.CREATED,"},{"line_number":253,"context_line":"                        headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":254,"context_line":"            resp \u003d self.get(search_path, expected_status\u003dhttp_client.OK)"},{"line_number":255,"context_line":"            self.assertEqual(1, len(resp.json[\u0027application_credentials\u0027]))"},{"line_number":256,"context_line":"            self.assertEqual(resp.json[\u0027application_credentials\u0027][0][\u0027name\u0027], name)"},{"line_number":257,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_1482edc8","line":254,"range":{"start_line":254,"start_character":12,"end_line":254,"end_character":72},"updated":"2019-01-31 08:58:57.000000000","message":"This should also be converted, so:\n\n resp \u003d c.get(search_path,\n              expected_status_code\u003dhttp_client.OK,\n              headers\u003d{\u0027X-Auth-Token\u0027: token})","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":265,"context_line":"                          expected_status_code\u003dhttp_client.CREATED,"},{"line_number":266,"context_line":"                          headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":267,"context_line":"            app_cred_id \u003d resp.json[\u0027application_credential\u0027][\u0027id\u0027]"},{"line_number":268,"context_line":"            c.head(\u0027/v3%s\u0027 % MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":269,"context_line":"                                                \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":270,"context_line":"                   expected_status_code\u003dhttp_client.OK,"},{"line_number":271,"context_line":"                   headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_f46ac917","line":268,"range":{"start_line":268,"start_character":20,"end_line":268,"end_character":44},"updated":"2019-01-31 08:58:57.000000000","message":"Would be better to just change the definition of MEMBER_PATH_FMT in the beginning of the file","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":349,"context_line":"                app_cred_id\u003dapp_cred.json[\u0027application_credential\u0027][\u0027id\u0027],"},{"line_number":350,"context_line":"                secret\u003dapp_cred.json[\u0027application_credential\u0027][\u0027secret\u0027])"},{"line_number":351,"context_line":"            token_data \u003d self.v3_create_token(auth_data,"},{"line_number":352,"context_line":"                         expected_status\u003dhttp_client.CREATED)"},{"line_number":353,"context_line":"            member_path \u003d \u0027/v3%s\u0027 % MEMBER_PATH_FMT % {"},{"line_number":354,"context_line":"                          \u0027user_id\u0027: self.user_id,"},{"line_number":355,"context_line":"                          \u0027app_cred_id\u0027: app_cred.json[\u0027application_credential\u0027][\u0027id\u0027]}"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_9476dd3d","line":352,"updated":"2019-01-31 08:58:57.000000000","message":"This needs to be indented several spaces to line up with the ( on the line above it.","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":353,"context_line":"            member_path \u003d \u0027/v3%s\u0027 % MEMBER_PATH_FMT % {"},{"line_number":354,"context_line":"                          \u0027user_id\u0027: self.user_id,"},{"line_number":355,"context_line":"                          \u0027app_cred_id\u0027: app_cred.json[\u0027application_credential\u0027][\u0027id\u0027]}"},{"line_number":356,"context_line":"            token \u003d token_data.headers[\u0027x-subject-token\u0027]"},{"line_number":357,"context_line":"            c.delete(member_path,"},{"line_number":358,"context_line":"                     json\u003dapp_cred_body,"},{"line_number":359,"context_line":"                     expected_status_code\u003dhttp_client.NO_CONTENT,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_94e33da4","line":356,"range":{"start_line":356,"start_character":12,"end_line":356,"end_character":57},"updated":"2019-01-31 08:58:57.000000000","message":"Do not create a new token here","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            c.delete(member_path,"},{"line_number":358,"context_line":"                     json\u003dapp_cred_body,"},{"line_number":359,"context_line":"                     expected_status_code\u003dhttp_client.NO_CONTENT,"},{"line_number":360,"context_line":"                     headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":361,"context_line":"    "},{"line_number":362,"context_line":"    def test_update_application_credential(self):"},{"line_number":363,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_14e98d7e","line":360,"range":{"start_line":360,"start_character":46,"end_line":360,"end_character":51},"updated":"2019-01-31 08:58:57.000000000","message":"This should be token_data.headers[\u0027x-subject-token\u0027] as it is in the old version","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"7c8593d3a572757237bc92f9e899a48ad5365bb3","unresolved":false,"context_lines":[{"line_number":358,"context_line":"                     json\u003dapp_cred_body,"},{"line_number":359,"context_line":"                     expected_status_code\u003dhttp_client.NO_CONTENT,"},{"line_number":360,"context_line":"                     headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":361,"context_line":"    "},{"line_number":362,"context_line":"    def test_update_application_credential(self):"},{"line_number":363,"context_line":"        with self.test_client() as c:"},{"line_number":364,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"}],"source_content_type":"text/x-python","patch_set":4,"id":"9fdfeff1_5492b54d","line":361,"range":{"start_line":361,"start_character":0,"end_line":361,"end_character":4},"updated":"2019-01-31 08:58:57.000000000","message":"pep8 doesn\u0027t like this whitespace\n\nhttp://logs.openstack.org/01/630301/4/check/openstack-tox-pep8/89a5752/job-output.txt.gz#_2019-01-30_22_30_37_513392","commit_id":"313ef90b6ab99be8fe21c67bcf7733aac4980446"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"7e231557046fa989ff16728a82230d12aea31923","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":186,"context_line":"                   json\u003dapp_cred_body_2,"},{"line_number":187,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"},{"line_number":188,"context_line":"                   token\u003dtoken_data.headers[\u0027x-subject-token\u0027])"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_list_application_credentials(self):"},{"line_number":191,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_071aaa15","line":188,"range":{"start_line":188,"start_character":19,"end_line":188,"end_character":62},"updated":"2019-02-01 09:24:27.000000000","message":"headers\u003d{\u0027X-Auth-Token\u0027: token}","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"de937d8378b1997433b6a1c5ed68c39d0547121b","unresolved":false,"context_lines":[{"line_number":185,"context_line":"            c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":186,"context_line":"                   json\u003dapp_cred_body_2,"},{"line_number":187,"context_line":"                   expected_status_code\u003dhttp_client.CREATED,"},{"line_number":188,"context_line":"                   token\u003dtoken_data.headers[\u0027x-subject-token\u0027])"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":"    def test_list_application_credentials(self):"},{"line_number":191,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_4d58d186","line":188,"range":{"start_line":188,"start_character":19,"end_line":188,"end_character":62},"in_reply_to":"9fdfeff1_071aaa15","updated":"2019-02-01 11:59:19.000000000","message":"It needs to use the new token it created in token_data, so\n\n headers\u003d{\u0027X-Auth-Token\u0027: token_data.headers[\u0027x-subject-token\u0027]}","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"de937d8378b1997433b6a1c5ed68c39d0547121b","unresolved":false,"context_lines":[{"line_number":226,"context_line":"            app_cred_body \u003d self._app_cred_body(roles\u003droles)"},{"line_number":227,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":228,"context_line":"            name \u003d app_cred_body[\u0027application_credential\u0027][\u0027name\u0027]"},{"line_number":229,"context_line":"            search_path \u003d (\u0027/users/%(user_id)s/application_credentials?\u0027"},{"line_number":230,"context_line":"                           \u0027name\u003d%(name)s\u0027) % {\u0027user_id\u0027: self.user_id,"},{"line_number":231,"context_line":"                                               \u0027name\u0027: name}"},{"line_number":232,"context_line":"            resp \u003d c.get(search_path,"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_2d70ed07","line":229,"updated":"2019-02-01 11:59:19.000000000","message":"This test is failing because the path needs to start with /v3","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"7e231557046fa989ff16728a82230d12aea31923","unresolved":false,"context_lines":[{"line_number":244,"context_line":"            self.assertNotIn(\u0027secret_hash\u0027,"},{"line_number":245,"context_line":"                             resp.json[\u0027application_credentials\u0027][0])"},{"line_number":246,"context_line":"            app_cred_body[\u0027application_credential\u0027][\u0027name\u0027] \u003d \u0027two\u0027"},{"line_number":247,"context_line":"            resp \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":248,"context_line":"                          json\u003dapp_cred_body,"},{"line_number":249,"context_line":"                          expected_status_code\u003dhttp_client.CREATED,"},{"line_number":250,"context_line":"                          headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_079dca64","line":247,"range":{"start_line":247,"start_character":11,"end_line":247,"end_character":19},"updated":"2019-02-01 09:24:27.000000000","message":"No need for this assignment. It is not used anywhere.","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":27621,"name":"Vishakha Agarwal","email":"agarwalvishakha18@gmail.com","username":"Vishakha"},"change_message_id":"7e231557046fa989ff16728a82230d12aea31923","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            c.delete(member_path,"},{"line_number":355,"context_line":"                     json\u003dapp_cred_body,"},{"line_number":356,"context_line":"                     expected_status_code\u003dhttp_client.NO_CONTENT,"},{"line_number":357,"context_line":"                     token\u003dtoken_data.headers[\u0027x-subject-token\u0027])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def test_update_application_credential(self):"},{"line_number":360,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_e7d8c653","line":357,"range":{"start_line":357,"start_character":20,"end_line":357,"end_character":64},"updated":"2019-02-01 09:24:27.000000000","message":"headers\u003d{\u0027X-Auth-Token\u0027: token}","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"de937d8378b1997433b6a1c5ed68c39d0547121b","unresolved":false,"context_lines":[{"line_number":354,"context_line":"            c.delete(member_path,"},{"line_number":355,"context_line":"                     json\u003dapp_cred_body,"},{"line_number":356,"context_line":"                     expected_status_code\u003dhttp_client.NO_CONTENT,"},{"line_number":357,"context_line":"                     token\u003dtoken_data.headers[\u0027x-subject-token\u0027])"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"    def test_update_application_credential(self):"},{"line_number":360,"context_line":"        with self.test_client() as c:"}],"source_content_type":"text/x-python","patch_set":5,"id":"9fdfeff1_add29dcf","line":357,"range":{"start_line":357,"start_character":20,"end_line":357,"end_character":64},"in_reply_to":"9fdfeff1_e7d8c653","updated":"2019-02-01 11:59:19.000000000","message":"headers\u003d{\u0027X-Auth-Token: token_data.headers[\u0027x-subject-token\u0027]}","commit_id":"b2c35f0e88db4fd5a96875605d5cc72a4c17f421"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"b5926fe3059a8933843b41dcb20d0b611d68736b","unresolved":false,"context_lines":[{"line_number":170,"context_line":"        with self.test_client() as c:"},{"line_number":171,"context_line":"            roles \u003d [{\u0027id\u0027: self.role_id}]"},{"line_number":172,"context_line":"            app_cred_body_1 \u003d self._app_cred_body(roles\u003droles)"},{"line_number":173,"context_line":"            app_cred_body_1[\u0027application_credential\u0027][\u0027description\u0027] \u003d \"New Things\""},{"line_number":174,"context_line":"            token \u003d self.get_scoped_token()"},{"line_number":175,"context_line":"            app_cred_1 \u003d c.post(\u0027/v3/users/%s/application_credentials\u0027 % self.user_id,"},{"line_number":176,"context_line":"                                json\u003dapp_cred_body_1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9fdfeff1_1fc97d57","line":173,"updated":"2019-02-02 18:07:49.000000000","message":"This test is the last one that is failing. You changed the meaning of the test here, why did you change this to \u0027description\u0027? The test is about using the \u0027unrestricted\u0027 flag, not about adding a description.","commit_id":"0cd8e52a7302cf4f4365e5f631cc718d9eeb930b"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"c010919338928502adae59b64e3aae36d24a8afa","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                   headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":270,"context_line":"            expected_response \u003d resp.json"},{"line_number":271,"context_line":"            expected_response[\u0027application_credential\u0027].pop(\u0027secret\u0027)"},{"line_number":272,"context_line":"            resp \u003d c.get(\u0027/v3%s\u0027 % MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":273,"context_line":"                         \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":274,"context_line":"                         expected_status_code\u003dhttp_client.OK,"},{"line_number":275,"context_line":"                         headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_d5e2daa0","line":272,"range":{"start_line":272,"start_character":26,"end_line":272,"end_character":50},"updated":"2019-02-05 10:01:38.000000000","message":"This is okay but it would have been better if you had changed the MEMBER_PATH_FMT variable on line 27","commit_id":"96eb890a086a62c2efd92e5b9dc585d167fb3361"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"735992f411413a5eedc1875886f7f8a1ad233a24","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                   headers\u003d{\u0027X-Auth-Token\u0027: token})"},{"line_number":270,"context_line":"            expected_response \u003d resp.json"},{"line_number":271,"context_line":"            expected_response[\u0027application_credential\u0027].pop(\u0027secret\u0027)"},{"line_number":272,"context_line":"            resp \u003d c.get(\u0027/v3%s\u0027 % MEMBER_PATH_FMT % {\u0027user_id\u0027: self.user_id,"},{"line_number":273,"context_line":"                         \u0027app_cred_id\u0027: app_cred_id},"},{"line_number":274,"context_line":"                         expected_status_code\u003dhttp_client.OK,"},{"line_number":275,"context_line":"                         headers\u003d{\u0027X-Auth-Token\u0027: token})"}],"source_content_type":"text/x-python","patch_set":7,"id":"9fdfeff1_7e6e66ca","line":272,"range":{"start_line":272,"start_character":26,"end_line":272,"end_character":50},"in_reply_to":"9fdfeff1_d5e2daa0","updated":"2019-02-05 16:13:48.000000000","message":"++, but as Colleen implied this is not worth holding the patch up.","commit_id":"96eb890a086a62c2efd92e5b9dc585d167fb3361"}]}
