)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":12,"context_line":"assertEqual(expected, observed)."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"At some places, corrected argument order for assertNotEqual method as well"},{"line_number":15,"context_line":"and replaced assertEqual with assertTrue/assertFalse wherever required."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6d63e77620b8dd9d6415424783b99a7e2e381a22"},{"line_number":18,"context_line":"Closes-Bug: #1259292"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba15a1d1_d6c6439b","line":15,"updated":"2015-09-24 06:37:17.000000000","message":"remove \"replaced\" stuff, they have been addressed in another patch (https://review.openstack.org/#/c/162570/), we can work together to get it done if you like.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"84b02621799b1f9cf2c9605ae35436490584756b","unresolved":false,"context_lines":[{"line_number":14,"context_line":"At some places, corrected argument order for assertNotEqual method as well."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I6d63e77620b8dd9d6415424783b99a7e2e381a22"},{"line_number":17,"context_line":"Partial-Bug: #1259292"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"9a1a9d01_420c4894","line":17,"updated":"2015-09-25 09:36:06.000000000","message":"nice, i was also thinking it should be partial instead of close. :)","commit_id":"3f74823fb85da32e8e1b727a5cbb1b2358b7eb55"}],"keystone/tests/unit/rest.py":[{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"3f19d88d0b070605ed06ca64b5dd6859a59db0c1","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_cb823252","line":137,"updated":"2015-09-23 21:16:22.000000000","message":"Wouldn\u0027t these need to be switched?  Since 2 lines above, \u0027response.status_code\u0027 was just validated for what they are expecting.  Then it is used to make sure the error code is correct making \u0027response.status_code\u0027 the expected and \u0027error[\u0027code\u0027]\u0027 what is be observed.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"dfa329fdec3307674507d59be35072aacbc36fbd","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_d44fa490","line":137,"in_reply_to":"9a1a9d01_50816949","updated":"2015-09-25 16:22:41.000000000","message":"I\u0027m fine with that, I just don\u0027t think it matters.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"76b4d560df1c924d4fe2c839e0b25032119d093e","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_50816949","line":137,"in_reply_to":"9a1a9d01_7294b536","updated":"2015-09-25 16:17:41.000000000","message":"I don\u0027t know David, the more that I look at this, the more I think it should be like this:\n\nself.assertEqual(expected_status, error[\u0027code\u0027])\n\nusing the expected status to validate both response.status_code(136) and error[\u0027code\u0027](138)","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"e21ae28a667a57fdf90096dd23643225a03c96e6","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_d8582e59","line":137,"in_reply_to":"9a1a9d01_7dd6b4c6","updated":"2015-09-25 20:22:24.000000000","message":"Thank you for noticing my point of view.   Now that Rajesh knows our personal preferences we will let him decide  (◕‿◕)  \u003d puppy eyes so he leans my way. JK\n\nTo answer your question, either error, you get the same thing across … They aren\u0027t equal :p  If it were up to me i think the error should be changed to include an indicator to what each value represents, since we are applying all this effort to make sure they are in the right order.  If someone off the street looks at this error message they wouldn\u0027t realize that they are actually in a specific sequence.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"dfdcf3c2457f56bbc229c24253140c7aa8774421","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_7dd6b4c6","line":137,"in_reply_to":"9a1a9d01_7f6eb1ca","updated":"2015-09-25 19:23:36.000000000","message":"You are making the assumption that we want to test the error[\u0027code\u0027] against the passed in expected_status, and that is a fair assumption. You could also say that the test author was trying to highlight the relationship between error[\u0027code\u0027] and response.status_code because there is some significance there. And through a transitive property error[\u0027code\u0027] must equal the passed in expected_status. \n\nIn all honesty the bug isn\u0027t all that valuable anyway, I just enforce the \"rules\" so we can stop the clean up patches for it :-) Which of the error messages below is more valuable to you as a developer? \n\n  testtools.matchers._impl.MismatchError: \u0027b\u0027 !\u003d \u0027a\u0027\n\n  - or -\n\n  testtools.matchers._impl.MismatchError: \u0027a\u0027 !\u003d \u0027b\u0027","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":17123,"name":"Tom Cocozzello (tjcocozz)","email":"tjcocozz@us.ibm.com","username":"tcocozzello"},"change_message_id":"e39ff85afd39a20679bb6e5f9a0e678ed5f97116","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_7f6eb1ca","line":137,"in_reply_to":"9a1a9d01_d44fa490","updated":"2015-09-25 16:27:32.000000000","message":"I\u0027m curious, since the bug cares about the order, why don\u0027t you think it matters?","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"c291a522a781228c838391dc81e7cace01f29c31","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_e509ca2d","line":137,"in_reply_to":"9a1a9d01_d8582e59","updated":"2015-09-25 21:36:00.000000000","message":"To me that\u0027s what interesting. I\u0027m not as worried about the error message and think that bug is somewhat misguided. That code will likely be read way more than the error message it produces. We just need to make sure the intent of the test is there. That\u0027s why I really don\u0027t care either way as long as we decide what that intent it. The intent is *not* to satisfy that bug.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"bb6dca330181314de7e8242e3e1c28e0b71df7ca","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_dc3b34d0","line":137,"in_reply_to":"9a1a9d01_e509ca2d","updated":"2015-09-26 13:07:37.000000000","message":"Agree that the bug itself is not such valuable unless one day something else won\u0027t be done based on the sequence of these arguements, but it seems not by far.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":10795,"name":"Rajesh Tailor","email":"tailor.rajesh88@gmail.com","username":"rajeshtailor"},"change_message_id":"56b99a310e63f833a5728a8926cc58dd9a7e722e","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_f0cdefb7","line":137,"in_reply_to":"ba15a1d1_cb823252","updated":"2015-09-28 06:15:46.000000000","message":"Done","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"3781137d623cb4844f6645142ce456e7eeabe5b5","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        \"\"\""},{"line_number":135,"context_line":"        self.assertEqual(expected_status, response.status_code)"},{"line_number":136,"context_line":"        error \u003d response.result[\u0027error\u0027]"},{"line_number":137,"context_line":"        self.assertEqual(error[\u0027code\u0027], response.status_code)"},{"line_number":138,"context_line":"        self.assertIsNotNone(error.get(\u0027title\u0027))"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"    def _to_content_type(self, body, headers, content_type\u003dNone):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a1a9d01_7294b536","line":137,"in_reply_to":"ba15a1d1_cb823252","updated":"2015-09-25 12:00:23.000000000","message":"TBH I don\u0027t think it matters at all in this case. You could easily make an argument either way.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"}],"keystone/tests/unit/test_backend.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2358,"context_line":"                   \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":2359,"context_line":"        self.resource_api.create_project(project[\u0027id\u0027], project)"},{"line_number":2360,"context_line":"        project_ref \u003d self.resource_api.get_project(project[\u0027id\u0027])"},{"line_number":2361,"context_line":"        self.assertTrue(project_ref[\u0027enabled\u0027])"},{"line_number":2362,"context_line":""},{"line_number":2363,"context_line":"        # Strings are not valid boolean values"},{"line_number":2364,"context_line":"        project[\u0027enabled\u0027] \u003d \"false\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_737bc9be","line":2361,"updated":"2015-09-24 06:37:17.000000000","message":"irrelvant change, pls revert it back, I have a patch pending there to address this separately (https://review.openstack.org/162570)","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2925,"context_line":"        del user[\u0027enabled\u0027]"},{"line_number":2926,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"},{"line_number":2927,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":2928,"context_line":"        self.assertFalse(user_ref[\u0027enabled\u0027])"},{"line_number":2929,"context_line":""},{"line_number":2930,"context_line":"        user[\u0027enabled\u0027] \u003d True"},{"line_number":2931,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_f345996e","line":2928,"updated":"2015-09-24 06:37:17.000000000","message":"same here, and other similar change in this file, pls revert all of them back.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2935,"context_line":"        del user[\u0027enabled\u0027]"},{"line_number":2936,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"},{"line_number":2937,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":2938,"context_line":"        self.assertTrue(user_ref[\u0027enabled\u0027])"},{"line_number":2939,"context_line":""},{"line_number":2940,"context_line":"        # Integers are valid Python\u0027s booleans. Explicitly test it."},{"line_number":2941,"context_line":"        user[\u0027enabled\u0027] \u003d 0"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_b35c014c","line":2938,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2941,"context_line":"        user[\u0027enabled\u0027] \u003d 0"},{"line_number":2942,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"},{"line_number":2943,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":2944,"context_line":"        self.assertFalse(user_ref[\u0027enabled\u0027])"},{"line_number":2945,"context_line":""},{"line_number":2946,"context_line":"        # Any integers other than 0 are interpreted as True"},{"line_number":2947,"context_line":"        user[\u0027enabled\u0027] \u003d -42"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_7352e936","line":2944,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2947,"context_line":"        user[\u0027enabled\u0027] \u003d -42"},{"line_number":2948,"context_line":"        self.identity_api.update_user(user[\u0027id\u0027], user)"},{"line_number":2949,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":2950,"context_line":"        self.assertTrue(user_ref[\u0027enabled\u0027])"},{"line_number":2951,"context_line":""},{"line_number":2952,"context_line":"    def test_update_user_name(self):"},{"line_number":2953,"context_line":"        user \u003d {\u0027name\u0027: uuid.uuid4().hex,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_13328d10","line":2950,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2977,"context_line":"                \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":2978,"context_line":"        user \u003d self.identity_api.create_user(user)"},{"line_number":2979,"context_line":"        user_ref \u003d self.identity_api.get_user(user[\u0027id\u0027])"},{"line_number":2980,"context_line":"        self.assertTrue(user_ref[\u0027enabled\u0027])"},{"line_number":2981,"context_line":""},{"line_number":2982,"context_line":"        # Strings are not valid boolean values"},{"line_number":2983,"context_line":"        user[\u0027enabled\u0027] \u003d \"false\""}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_93269dcc","line":2980,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":2991,"context_line":"                  \u0027domain_id\u0027: DEFAULT_DOMAIN_ID}"},{"line_number":2992,"context_line":"        self.resource_api.create_project(\u0027fake1\u0027, tenant)"},{"line_number":2993,"context_line":"        tenant_ref \u003d self.resource_api.get_project(\u0027fake1\u0027)"},{"line_number":2994,"context_line":"        self.assertTrue(tenant_ref[\u0027enabled\u0027])"},{"line_number":2995,"context_line":""},{"line_number":2996,"context_line":"        tenant[\u0027enabled\u0027] \u003d False"},{"line_number":2997,"context_line":"        self.resource_api.update_project(\u0027fake1\u0027, tenant)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_b323a1bc","line":2994,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":3002,"context_line":"        del tenant[\u0027enabled\u0027]"},{"line_number":3003,"context_line":"        self.resource_api.update_project(\u0027fake1\u0027, tenant)"},{"line_number":3004,"context_line":"        tenant_ref \u003d self.resource_api.get_project(\u0027fake1\u0027)"},{"line_number":3005,"context_line":"        self.assertFalse(tenant_ref[\u0027enabled\u0027])"},{"line_number":3006,"context_line":""},{"line_number":3007,"context_line":"        tenant[\u0027enabled\u0027] \u003d True"},{"line_number":3008,"context_line":"        self.resource_api.update_project(\u0027fake1\u0027, tenant)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_7329899a","line":3005,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":3012,"context_line":"        del tenant[\u0027enabled\u0027]"},{"line_number":3013,"context_line":"        self.resource_api.update_project(\u0027fake1\u0027, tenant)"},{"line_number":3014,"context_line":"        tenant_ref \u003d self.resource_api.get_project(\u0027fake1\u0027)"},{"line_number":3015,"context_line":"        self.assertTrue(tenant_ref[\u0027enabled\u0027])"},{"line_number":3016,"context_line":""},{"line_number":3017,"context_line":"    def test_add_user_to_group(self):"},{"line_number":3018,"context_line":"        domain \u003d self._get_domain_fixture()"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_331eb170","line":3015,"updated":"2015-09-24 06:37:17.000000000","message":"same here.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"}],"keystone/tests/unit/test_v3_auth.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"e781b8014e98031617f8c9614829b38312629e47","unresolved":false,"context_lines":[{"line_number":386,"context_line":"        # Delete the v2 token using v3."},{"line_number":387,"context_line":"        resp \u003d self.delete("},{"line_number":388,"context_line":"            \u0027/auth/tokens\u0027, headers\u003d{\u0027X-Subject-Token\u0027: v2_token})"},{"line_number":389,"context_line":"        self.assertEqual(204, resp.status_code)"},{"line_number":390,"context_line":""},{"line_number":391,"context_line":"        # Attempting to use the deleted token on v2 should fail."},{"line_number":392,"context_line":"        self.admin_request("}],"source_content_type":"text/x-python","patch_set":2,"id":"ba15a1d1_96b0cb44","line":389,"updated":"2015-09-24 06:37:17.000000000","message":"sad, all of these has been replaced by constants, so pls update accordingly.","commit_id":"a3b2a482dd4472fa0bf15a95edc35b23361b2a81"}]}
