)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"9d31851008d03867ee6cb71d5ebccc888fb6aaa2","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add missing tests for provider_fw_rule_* methods"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"There was no tests in test_db_api for provider_fw_rule_*"},{"line_number":10,"context_line":"methods."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Add tests to ensure that all works."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"AAAAPX%2F%2FrwY%3D","line":9,"updated":"2013-06-12 20:37:01.000000000","message":"s/was/were/ (femtonit)","commit_id":"0c8e713fe93c0bdb001a471b4790133b8f2eb212"}],"nova/tests/test_db_api.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"8c9334ed4af9e9cfd4e5746e78c32eb3a5bbfd6d","unresolved":false,"context_lines":[{"line_number":4481,"context_line":""},{"line_number":4482,"context_line":"class ProviderFwRuleTestCase(test.TestCase, ModelsObjectComparatorMixin):"},{"line_number":4483,"context_line":""},{"line_number":4484,"context_line":"    def setUp(self):"},{"line_number":4485,"context_line":"        super(ProviderFwRuleTestCase, self).setUp()"},{"line_number":4486,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":4487,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FjZs%3D","line":4484,"updated":"2013-05-30 17:22:25.000000000","message":"same as in https://review.openstack.org/#/c/31034/","commit_id":"cddd7a324e5a87dc354247b00ea77d65de7392da"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"6cff9d92eef0d58ae47744ed00aa1ddc5de20108","unresolved":false,"context_lines":[{"line_number":4481,"context_line":""},{"line_number":4482,"context_line":"class ProviderFwRuleTestCase(test.TestCase, ModelsObjectComparatorMixin):"},{"line_number":4483,"context_line":""},{"line_number":4484,"context_line":"    def setUp(self):"},{"line_number":4485,"context_line":"        super(ProviderFwRuleTestCase, self).setUp()"},{"line_number":4486,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":4487,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2Fhhg%3D","line":4484,"in_reply_to":"AAAAPH%2F%2FjZs%3D","updated":"2013-05-31 10:05:44.000000000","message":"Done","commit_id":"cddd7a324e5a87dc354247b00ea77d65de7392da"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"7e42a1ef0294abc2eae1503582128c92e9c46b2e","unresolved":false,"context_lines":[{"line_number":4559,"context_line":"        super(ProviderFwRuleTestCase, self).setUp()"},{"line_number":4560,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":4561,"context_line":"        self.values \u003d self._get_rule_values()"},{"line_number":4562,"context_line":"        self.rules \u003d [db.provider_fw_rule_create(self.ctxt, rule)"},{"line_number":4563,"context_line":"                                  for rule in self.values]"},{"line_number":4564,"context_line":""},{"line_number":4565,"context_line":"    def _get_rule_values(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2Fhdk%3D","line":4562,"updated":"2013-05-31 10:40:08.000000000","message":"It\u0027s will be better to call function `db.provider_fw_rule_create()` in `test_provider_fw_rule_create()`, not in `setUp()`.","commit_id":"fb1d1148d4301a1a62e77d30a9b468ea0333b3ba"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"73a7fe6d3494406300efb830f1ca164faed08d5c","unresolved":false,"context_lines":[{"line_number":4559,"context_line":"        super(ProviderFwRuleTestCase, self).setUp()"},{"line_number":4560,"context_line":"        self.ctxt \u003d context.get_admin_context()"},{"line_number":4561,"context_line":"        self.values \u003d self._get_rule_values()"},{"line_number":4562,"context_line":"        self.rules \u003d [db.provider_fw_rule_create(self.ctxt, rule)"},{"line_number":4563,"context_line":"                                  for rule in self.values]"},{"line_number":4564,"context_line":""},{"line_number":4565,"context_line":"    def _get_rule_values(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2FhYU%3D","line":4562,"in_reply_to":"AAAAPH%2F%2Fhdk%3D","updated":"2013-05-31 11:25:22.000000000","message":"self.rules need in all test_* methods","commit_id":"fb1d1148d4301a1a62e77d30a9b468ea0333b3ba"},{"author":{"_account_id":7491,"name":"Viktor Serhieiev","email":"viktor.sergeyev@gmail.com","username":"vsergeyev"},"change_message_id":"7e42a1ef0294abc2eae1503582128c92e9c46b2e","unresolved":false,"context_lines":[{"line_number":4569,"context_line":"        values \u003d []"},{"line_number":4570,"context_line":"        for i in xrange(len(cidr_samples)):"},{"line_number":4571,"context_line":"            rule \u003d {}"},{"line_number":4572,"context_line":"            rule[\u0027protocol\u0027] \u003d \u0027foo\u0027 + str(i)[:2]"},{"line_number":4573,"context_line":"            rule[\u0027from_port\u0027] \u003d 9999 + i"},{"line_number":4574,"context_line":"            rule[\u0027to_port\u0027] \u003d 9898 + i"},{"line_number":4575,"context_line":"            rule[\u0027cidr\u0027] \u003d cidr_samples[i]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2Fhdc%3D","line":4572,"updated":"2013-05-31 10:40:08.000000000","message":"why do you make this slice here?","commit_id":"fb1d1148d4301a1a62e77d30a9b468ea0333b3ba"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"73a7fe6d3494406300efb830f1ca164faed08d5c","unresolved":false,"context_lines":[{"line_number":4569,"context_line":"        values \u003d []"},{"line_number":4570,"context_line":"        for i in xrange(len(cidr_samples)):"},{"line_number":4571,"context_line":"            rule \u003d {}"},{"line_number":4572,"context_line":"            rule[\u0027protocol\u0027] \u003d \u0027foo\u0027 + str(i)[:2]"},{"line_number":4573,"context_line":"            rule[\u0027from_port\u0027] \u003d 9999 + i"},{"line_number":4574,"context_line":"            rule[\u0027to_port\u0027] \u003d 9898 + i"},{"line_number":4575,"context_line":"            rule[\u0027cidr\u0027] \u003d cidr_samples[i]"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2FhYE%3D","line":4572,"in_reply_to":"AAAAPH%2F%2Fhdc%3D","updated":"2013-05-31 11:25:22.000000000","message":"fool protection, removed","commit_id":"fb1d1148d4301a1a62e77d30a9b468ea0333b3ba"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"2de1d98469bde9a53f992861919f9a90c0aa9e71","unresolved":false,"context_lines":[{"line_number":4590,"context_line":"    def test_provider_fw_rule_destroy(self):"},{"line_number":4591,"context_line":"        for rule in self.rules:"},{"line_number":4592,"context_line":"            db.provider_fw_rule_destroy(self.ctxt, rule.id)"},{"line_number":4593,"context_line":"        self.assertFalse(db.provider_fw_rule_get_all(self.ctxt))"},{"line_number":4594,"context_line":""},{"line_number":4595,"context_line":""},{"line_number":4596,"context_line":"class ArchiveTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2Foew%3D","line":4593,"updated":"2013-06-13 21:13:27.000000000","message":"Would self.assertEqual([], db.provider_fw_rule_get_all(self.ctxt)) be better here?","commit_id":"0c8e713fe93c0bdb001a471b4790133b8f2eb212"},{"author":{"_account_id":7711,"name":"Yuriy Zveryanskyy","email":"yzveryanskyy@mirantis.com","username":"yuriyz"},"change_message_id":"b2f180489b0dd620a138889b868e606833284122","unresolved":false,"context_lines":[{"line_number":4590,"context_line":"    def test_provider_fw_rule_destroy(self):"},{"line_number":4591,"context_line":"        for rule in self.rules:"},{"line_number":4592,"context_line":"            db.provider_fw_rule_destroy(self.ctxt, rule.id)"},{"line_number":4593,"context_line":"        self.assertFalse(db.provider_fw_rule_get_all(self.ctxt))"},{"line_number":4594,"context_line":""},{"line_number":4595,"context_line":""},{"line_number":4596,"context_line":"class ArchiveTestCase(test.TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPX%2F%2Fnn0%3D","line":4593,"in_reply_to":"AAAAPX%2F%2Foew%3D","updated":"2013-06-14 07:52:45.000000000","message":"Ok, better.","commit_id":"0c8e713fe93c0bdb001a471b4790133b8f2eb212"}]}
