)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"bb9b7bbb72ba406519494ff3538e3a5dbdc52b4d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add a place for functional test to block specific regressions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We get some bugs reported in by users which we can replicate and fix"},{"line_number":10,"context_line":"most easily in a full stack way. Having a dedicated place to put these"},{"line_number":11,"context_line":"seems like a good idea. They are in no way an attempt to test all the"},{"line_number":12,"context_line":"things, they are specific tests that demonstrate a bug, and ensure"},{"line_number":13,"context_line":"that once that particular bug is fixed, it will not come back."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Idfd8680133197beabaf6e1ac8df7490c2a345b17"},{"line_number":16,"context_line":"Related-Bug: #1522536"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bae84128_fbffdda7","line":13,"range":{"start_line":9,"start_character":0,"end_line":13,"end_character":62},"updated":"2016-02-22 16:26:01.000000000","message":"We might want a README.rst in the nova/tests/functional tree that explains the structure and when you should add to existing tests, or add new bug-specific test classes like this, because if I were new and was fixing a bug and was trying to figure out where to put my test, I\u0027d probably be confused.","commit_id":"4e3a05a0553ae45864eec413424d21f500334e38"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"1417d35c796553b6188a9486f530e8c708e284f2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"add a place for functional test to block specific regressions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"We get some bugs reported in by users which we can replicate and fix"},{"line_number":10,"context_line":"most easily in a full stack way. Having a dedicated place to put these"},{"line_number":11,"context_line":"seems like a good idea. They are in no way an attempt to test all the"},{"line_number":12,"context_line":"things, they are specific tests that demonstrate a bug, and ensure"},{"line_number":13,"context_line":"that once that particular bug is fixed, it will not come back."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Idfd8680133197beabaf6e1ac8df7490c2a345b17"},{"line_number":16,"context_line":"Related-Bug: #1522536"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bae84128_9ba05145","line":13,"range":{"start_line":9,"start_character":0,"end_line":13,"end_character":62},"in_reply_to":"bae84128_fbffdda7","updated":"2016-02-22 16:34:51.000000000","message":"We can do that, or we can start doing these first, find a pattern that works, then document that.","commit_id":"4e3a05a0553ae45864eec413424d21f500334e38"}],"nova/tests/functional/regressions/README.rst":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"f0df09cbfd3ed12351628aabde3866e79d1df4b1","unresolved":false,"context_lines":[{"line_number":10,"context_line":"Writing Regression Tests"},{"line_number":11,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"- These should be full stack tests which inherent from"},{"line_number":14,"context_line":"  nova.test.TestCase directly. (This is to prevent coupling with other tests)."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"- They should setup a full stack cloud in their setUp via fixtures"}],"source_content_type":"text/x-rst","patch_set":5,"id":"bae84128_ae430b6b","line":13,"range":{"start_line":13,"start_character":41,"end_line":13,"end_character":49},"updated":"2016-02-23 21:26:45.000000000","message":"s/inherent/inherit/ ?","commit_id":"5335521bdb62ae194491c6557fa705b5908b2686"}],"nova/tests/functional/regressions/test_bug_1522536.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"0285cde7ea6c3ec488f8875a97febb5953ea7141","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            api_version\u003d\u0027v2.1\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.api \u003d api_fixture.api"},{"line_number":40,"context_line":"        self.admin_api \u003d api_fixture.admin_api"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # the image fake backend needed for image discovery"},{"line_number":43,"context_line":"        nova.tests.unit.image.fake.stub_out_image_service(self)"}],"source_content_type":"text/x-python","patch_set":3,"id":"bae84128_06a185a3","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":46},"updated":"2016-02-22 17:41:35.000000000","message":"Drop this variable and then I think I\u0027m +2 on this.","commit_id":"e429ab0435e5796211e1b4ab48b80830672b0f03"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"565116661825cf145df2657021393e4d8439930f","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class TestServerGet(test.TestCase):"},{"line_number":30,"context_line":"    REQUIRES_LOCKING \u003d True"},{"line_number":31,"context_line":"    microversion \u003d None"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(TestServerGet, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_d76b7e1c","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":23},"updated":"2016-02-23 22:19:32.000000000","message":"Why do we need this in here?","commit_id":"5335521bdb62ae194491c6557fa705b5908b2686"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"84aa71c50fe6e8fa1a3747606f5778249c602548","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class TestServerGet(test.TestCase):"},{"line_number":30,"context_line":"    REQUIRES_LOCKING \u003d True"},{"line_number":31,"context_line":"    microversion \u003d None"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def setUp(self):"},{"line_number":34,"context_line":"        super(TestServerGet, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_38855dce","line":31,"range":{"start_line":31,"start_character":4,"end_line":31,"end_character":23},"in_reply_to":"bae84128_d76b7e1c","updated":"2016-02-24 14:10:23.000000000","message":"Done","commit_id":"5335521bdb62ae194491c6557fa705b5908b2686"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"202c3a80b49879a5939377d2b10d415a24442a63","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        super(TestServerGet, self).setUp()"},{"line_number":35,"context_line":"        self.useFixture(policy_fixture.RealPolicyFixture())"},{"line_number":36,"context_line":"        api_fixture \u003d self.useFixture(nova_fixtures.OSAPIFixture("},{"line_number":37,"context_line":"            api_version\u003d\u0027v2.1\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.api \u003d api_fixture.api"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_d7d9bef4","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":29},"updated":"2016-02-23 22:21:25.000000000","message":"If we want to guard against regressions, shouldn\u0027t this be 2.latest?","commit_id":"5335521bdb62ae194491c6557fa705b5908b2686"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"84aa71c50fe6e8fa1a3747606f5778249c602548","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        super(TestServerGet, self).setUp()"},{"line_number":35,"context_line":"        self.useFixture(policy_fixture.RealPolicyFixture())"},{"line_number":36,"context_line":"        api_fixture \u003d self.useFixture(nova_fixtures.OSAPIFixture("},{"line_number":37,"context_line":"            api_version\u003d\u0027v2.1\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.api \u003d api_fixture.api"},{"line_number":40,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"bae84128_38371d4e","line":37,"range":{"start_line":37,"start_character":28,"end_line":37,"end_character":29},"in_reply_to":"bae84128_d7d9bef4","updated":"2016-02-24 14:10:23.000000000","message":"api_version is major version. This means run against the v2.1 stack instead of the v2 stack.","commit_id":"5335521bdb62ae194491c6557fa705b5908b2686"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9b0a73d60cd1312a91d59b684cb5f3943187cdbb","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        self.start_service(\u0027scheduler\u0027)"},{"line_number":46,"context_line":"        self.network \u003d self.start_service(\u0027network\u0027)"},{"line_number":47,"context_line":"        self.compute \u003d self.start_service(\u0027compute\u0027)"},{"line_number":48,"context_line":"        self.addCleanup(self.compute.kill)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"        self.useFixture(cast_as_call.CastAsCall(self.stubs))"},{"line_number":51,"context_line":"        self.addCleanup(nova.tests.unit.image.fake.FakeImageService_reset)"}],"source_content_type":"text/x-python","patch_set":6,"id":"bae84128_87634fb0","line":48,"range":{"start_line":48,"start_character":8,"end_line":48,"end_character":42},"updated":"2016-02-24 17:09:42.000000000","message":"This is redundant and leads to NoneType errors in the compute manager:\n\nhttp://paste.openstack.org/show/488048/","commit_id":"e9cbe2f7dfb385a79e82a76286ca60d88b5b54d2"}],"nova/tests/functional/regressions/test_server_get.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"260fefcf4b6fa00d2855a473056f71d73fdf8b77","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.image_id \u003d self.api.get_images()[0][\u0027id\u0027]"},{"line_number":57,"context_line":"        self.flavor_id \u003d self.api.get_flavors()[0][\u0027id\u0027]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_id_overlap(self):"},{"line_number":60,"context_line":"        \"\"\"Regression test for bug #1522536."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        Before fixing this bug, getting a numeric id caused a 500"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_60383ca1","line":59,"updated":"2016-02-22 16:06:32.000000000","message":"I\u0027d just throw this in https://github.com/openstack/nova/blob/master/nova/tests/functional/test_servers.py and then we don\u0027t need to redo all of the setup for a new test class. Just seems like a lot of duplication to me.","commit_id":"a63a68324adbe3b7c47f5545859d4991f9b333e2"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"14bbcc7ef09168fe07c096e5095de8ca24a3d0e7","unresolved":false,"context_lines":[{"line_number":56,"context_line":"        self.image_id \u003d self.api.get_images()[0][\u0027id\u0027]"},{"line_number":57,"context_line":"        self.flavor_id \u003d self.api.get_flavors()[0][\u0027id\u0027]"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_id_overlap(self):"},{"line_number":60,"context_line":"        \"\"\"Regression test for bug #1522536."},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        Before fixing this bug, getting a numeric id caused a 500"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_809d805b","line":59,"in_reply_to":"bae84128_60383ca1","updated":"2016-02-22 16:24:24.000000000","message":"The test setup will get refactored into some common fixtures once we do a few more and figure out what we need.","commit_id":"a63a68324adbe3b7c47f5545859d4991f9b333e2"}],"nova/tests/functional/test_bug_1522536.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5db9a496d8cf5ccb6c58f3d3a98c7e9644ca2086","unresolved":false,"context_lines":[{"line_number":37,"context_line":"            api_version\u003d\u0027v2.1\u0027))"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        self.api \u003d api_fixture.api"},{"line_number":40,"context_line":"        self.admin_api \u003d api_fixture.admin_api"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        # the image fake backend needed for image discovery"},{"line_number":43,"context_line":"        nova.tests.unit.image.fake.stub_out_image_service(self)"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_9ba6910e","line":40,"range":{"start_line":40,"start_character":8,"end_line":40,"end_character":22},"updated":"2016-02-22 16:24:45.000000000","message":"This isn\u0027t used.","commit_id":"4e3a05a0553ae45864eec413424d21f500334e38"}]}
