)]}'
{"ironic/tests/api/test_hooks.py":[{"author":{"_account_id":10343,"name":"Jim Rollenhagen","email":"jim@jimrollenhagen.com","username":"jimrollenhagen"},"change_message_id":"eaa2b90206fa607ddb3790725aaafe2e7e70c2c6","unresolved":false,"context_lines":[{"line_number":249,"context_line":"        trusted_call_hook.before(reqstate)"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":""},{"line_number":252,"context_line":"class TestTrustedCallHookCompatJuno(TestContextHook):"},{"line_number":253,"context_line":"    def setUp(self):"},{"line_number":254,"context_line":"        super(TestTrustedCallHookCompatJuno, self).setUp()"},{"line_number":255,"context_line":"        self.policy \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_21aaca71","line":252,"updated":"2015-01-10 02:15:40.000000000","message":"s/TestContextHook/TestTrustedCallHook/","commit_id":"f699015e9bf011b825d1e0372bde8083dbac847a"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"0b089869566e5290b0196dfb6b1d51b577e0d528","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            roles\u003dheaders[\u0027X-Roles\u0027].split(\u0027,\u0027))"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class TestContextHookCompatJuno(TestContextHook):"},{"line_number":221,"context_line":"    def setUp(self):"},{"line_number":222,"context_line":"        super(TestContextHookCompatJuno, self).setUp()"},{"line_number":223,"context_line":"        self.policy \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_4b55eff8","line":220,"updated":"2015-01-13 14:29:31.000000000","message":"This class isn\u0027t used, AFAICT. Are you missing a test here?","commit_id":"5d4cdc29d7dbada04b2be086c60600b63e66dac6"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5efd3f7087d53c00ddeea6512f9f366bdba1e0fd","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            roles\u003dheaders[\u0027X-Roles\u0027].split(\u0027,\u0027))"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class TestContextHookCompatJuno(TestContextHook):"},{"line_number":221,"context_line":"    def setUp(self):"},{"line_number":222,"context_line":"        super(TestContextHookCompatJuno, self).setUp()"},{"line_number":223,"context_line":"        self.policy \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_c8d47beb","line":220,"in_reply_to":"3a961159_4b55eff8","updated":"2015-01-13 17:45:23.000000000","message":"Hi David,\n\nIt\u0027s being used, it\u0027s running all the tests from the TestContextHook class but in a backward compat mode for Juno.\n\nIf you comment this class out you\u0027ll see that it will run -3 tests.\n\n # as-is\n Ran 1548 tests in 4.858s (-0.379s)\n\n # after commenting\n Ran 1545 (-3) tests in 5.513s (+0.671s)","commit_id":"5d4cdc29d7dbada04b2be086c60600b63e66dac6"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"7780f847d97e61b1de58873a15959b789b186101","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            roles\u003dheaders[\u0027X-Roles\u0027].split(\u0027,\u0027))"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class TestContextHookCompatJuno(TestContextHook):"},{"line_number":221,"context_line":"    def setUp(self):"},{"line_number":222,"context_line":"        super(TestContextHookCompatJuno, self).setUp()"},{"line_number":223,"context_line":"        self.policy \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_ff82abfd","line":220,"in_reply_to":"3a961159_8860a8d0","updated":"2015-01-14 14:18:14.000000000","message":"Ah, thanks guys. A very \"doh!\" moment for me.","commit_id":"5d4cdc29d7dbada04b2be086c60600b63e66dac6"},{"author":{"_account_id":1420,"name":"Adam Gandelman","email":"adamg@ubuntu.com","username":"gandelman-a"},"change_message_id":"6b1cb3759f4c2af4cb7f96bd9f74f481e8353af3","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            roles\u003dheaders[\u0027X-Roles\u0027].split(\u0027,\u0027))"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":""},{"line_number":220,"context_line":"class TestContextHookCompatJuno(TestContextHook):"},{"line_number":221,"context_line":"    def setUp(self):"},{"line_number":222,"context_line":"        super(TestContextHookCompatJuno, self).setUp()"},{"line_number":223,"context_line":"        self.policy \u003d self.useFixture("}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_8860a8d0","line":220,"in_reply_to":"3a961159_c8d47beb","updated":"2015-01-13 23:19:43.000000000","message":"Yeah, its just inheriting the base tests but running them with a different policy fixture, using policy data from juno.","commit_id":"5d4cdc29d7dbada04b2be086c60600b63e66dac6"}],"ironic/tests/fake_policy.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d9347145859dfc2a0ec2f1876d67400d6212491d","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    if not compat:"},{"line_number":37,"context_line":"        return policy_data"},{"line_number":38,"context_line":"    elif compat \u003d\u003d \u0027juno\u0027:"},{"line_number":39,"context_line":"        return policy_data_compat_juno"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_9b54de54","line":39,"updated":"2015-01-09 11:57:40.000000000","message":"Nit: Not sure if it would be good, but may be useful to avoid programmatic errors\n\n else:\n     raise Exception(\u0027%s compat data not available\u0027 % compat)","commit_id":"48cbddbfd37e9d16bbd83c1d9b2a5fe1c92783be"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5efd3f7087d53c00ddeea6512f9f366bdba1e0fd","unresolved":false,"context_lines":[{"line_number":36,"context_line":"    if not compat:"},{"line_number":37,"context_line":"        return policy_data"},{"line_number":38,"context_line":"    elif compat \u003d\u003d \u0027juno\u0027:"},{"line_number":39,"context_line":"        return policy_data_compat_juno"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_c8139bff","line":39,"updated":"2015-01-13 17:45:23.000000000","message":"Lost change from patch-set #2\n\nTo avoid programmatic errors:\n\n else:\t\t\n     raise Exception(\u0027Policy data for %s not available\u0027 % compat)","commit_id":"5d4cdc29d7dbada04b2be086c60600b63e66dac6"}],"ironic/tests/policy_fixture.py":[{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"d9347145859dfc2a0ec2f1876d67400d6212491d","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def __init__(self, compat\u003dNone):"},{"line_number":28,"context_line":"        self.compat \u003d compat"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def setUp(self, compat\u003dNone):"},{"line_number":31,"context_line":"        super(PolicyFixture, self).setUp()"},{"line_number":32,"context_line":"        self.policy_dir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":33,"context_line":"        self.policy_file_name \u003d os.path.join(self.policy_dir.path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a961159_bb68ba21","line":30,"updated":"2015-01-09 11:57:40.000000000","message":"compat argument is not being used and can be removed","commit_id":"48cbddbfd37e9d16bbd83c1d9b2a5fe1c92783be"},{"author":{"_account_id":6773,"name":"Lucas Alvares Gomes","email":"lucasagomes@gmail.com","username":"lucasagomes"},"change_message_id":"5efd3f7087d53c00ddeea6512f9f366bdba1e0fd","unresolved":false,"context_lines":[{"line_number":27,"context_line":"    def __init__(self, compat\u003dNone):"},{"line_number":28,"context_line":"        self.compat \u003d compat"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"    def setUp(self, compat\u003dNone):"},{"line_number":31,"context_line":"        super(PolicyFixture, self).setUp()"},{"line_number":32,"context_line":"        self.policy_dir \u003d self.useFixture(fixtures.TempDir())"},{"line_number":33,"context_line":"        self.policy_file_name \u003d os.path.join(self.policy_dir.path,"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a961159_08bcc3da","line":30,"updated":"2015-01-13 17:45:23.000000000","message":"Lost change from patch-set #2\n\nThe \"compat\" parameter is not being used.","commit_id":"5d4cdc29d7dbada04b2be086c60600b63e66dac6"}]}
