)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14123,"name":"Stefano Canepa","email":"sc@linux.it","username":"sc"},"change_message_id":"0cf65ac1bf140491318e6d4585aa5a920f103b84","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add unit test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"*Add unit test for helpers modul"},{"line_number":10,"context_line":"*Add unit test for metrics and notification endpoints"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie424f032588e4ad6afea3ea599b6febf9dd7f479"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"9fb8cfa7_f3013b3b","line":9,"updated":"2019-06-17 13:05:35.000000000","message":"missing an \"e\" at the end","commit_id":"7dac3dd2c74954644f64030bc061dd632adbe744"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"c7e74a6745dfd07f87416e3fca9813c853f532b7","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add unit test"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"*Add unit test for helpers modul"},{"line_number":10,"context_line":"*Add unit test for metrics and notification endpoints"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Ie424f032588e4ad6afea3ea599b6febf9dd7f479"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"9fb8cfa7_3e5f6fe6","line":9,"in_reply_to":"9fb8cfa7_f3013b3b","updated":"2019-07-05 08:31:33.000000000","message":"Done","commit_id":"7dac3dd2c74954644f64030bc061dd632adbe744"}],"monasca_api/tests/base.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            del expected_data[u\"links\"]"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"    def __str__(self):"},{"line_number":158,"context_line":"        return \u0027RESTResponseEquals(%s)\u0027 % (self.expected,)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def match(self, actual):"},{"line_number":161,"context_line":"        if len(actual) !\u003d 1:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_3b21304e","line":158,"range":{"start_line":158,"start_character":48,"end_line":158,"end_character":56},"updated":"2019-04-09 13:01:02.000000000","message":"expected_data","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"}],"monasca_api/tests/test_helpers.py":[{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_to_json(self):"},{"line_number":49,"context_line":"        test_dict \u003d {\u0027test_body\u0027: \u0027test\u0027}"},{"line_number":50,"context_line":"        expected_json \u003d rest_utils.as_json(test_dict)"},{"line_number":51,"context_line":"        response \u003d helpers.to_json(test_dict)"},{"line_number":52,"context_line":"        self.assertEqual(expected_json, response)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_32647bb9","line":50,"range":{"start_line":50,"start_character":24,"end_line":50,"end_character":53},"updated":"2019-06-19 17:34:49.000000000","message":"This as_json method is wrapped by helpers.to_json that we call below. I think we should avoid generating any expected messages with the code that we are testing. Can we hard code it?","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"c7e74a6745dfd07f87416e3fca9813c853f532b7","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_to_json(self):"},{"line_number":49,"context_line":"        test_dict \u003d {\u0027test_body\u0027: \u0027test\u0027}"},{"line_number":50,"context_line":"        expected_json \u003d rest_utils.as_json(test_dict)"},{"line_number":51,"context_line":"        response \u003d helpers.to_json(test_dict)"},{"line_number":52,"context_line":"        self.assertEqual(expected_json, response)"},{"line_number":53,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_ca2c6a9b","line":50,"range":{"start_line":50,"start_character":24,"end_line":50,"end_character":53},"in_reply_to":"9fb8cfa7_32647bb9","updated":"2019-07-05 08:31:33.000000000","message":"Done","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"}],"monasca_api/tests/test_metrics.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":11,"context_line":"# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":12,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":13,"context_line":"# under the License."},{"line_number":14,"context_line":"import json"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import falcon"},{"line_number":17,"context_line":"import fixtures"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_1bdd54dc","line":14,"updated":"2019-04-09 13:01:02.000000000","message":"add empty line","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":70,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":71,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":72,"context_line":"                                         method\u003d\u0027GET\u0027)"},{"line_number":73,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_200)"},{"line_number":74,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_send_metrics(self):"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_fb02c80b","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":61},"updated":"2019-04-09 13:01:02.000000000","message":"could you stick to one order in assertEqual checks? this comment is for entire file","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":151,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":152,"context_line":"                                         method\u003d\u0027GET\u0027,"},{"line_number":153,"context_line":"                                         query_string\u003d\u0027name\u003dcpu.system_perc\u0026\u0027"},{"line_number":154,"context_line":"                                                      \u0027start_time\u003d2015-03-01T00:00:01.000Z\u0027)"},{"line_number":155,"context_line":"        self.assertEqual(falcon.HTTP_200, response.status)"},{"line_number":156,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_measurements))"}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_92b0c78d","line":153,"range":{"start_line":153,"start_character":60,"end_line":153,"end_character":75},"updated":"2019-06-19 17:34:49.000000000","message":"Should we set this to \u0027dummy_name\u0027 or something to make it more clear that the actual name here is irrelevant because of the mock? Right now it\u0027s very similar but not the same as the expected metric name which confused me for a second.\n\nAdd a test demonstrating that we get a 422 if the query string is invalid?","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"c7e74a6745dfd07f87416e3fca9813c853f532b7","unresolved":false,"context_lines":[{"line_number":150,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":151,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":152,"context_line":"                                         method\u003d\u0027GET\u0027,"},{"line_number":153,"context_line":"                                         query_string\u003d\u0027name\u003dcpu.system_perc\u0026\u0027"},{"line_number":154,"context_line":"                                                      \u0027start_time\u003d2015-03-01T00:00:01.000Z\u0027)"},{"line_number":155,"context_line":"        self.assertEqual(falcon.HTTP_200, response.status)"},{"line_number":156,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_measurements))"}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_2a3bbed1","line":153,"range":{"start_line":153,"start_character":60,"end_line":153,"end_character":75},"in_reply_to":"9fb8cfa7_92b0c78d","updated":"2019-07-05 08:31:33.000000000","message":"That was my mistake, expected name should be the same.\nYou are right, this should be set to some dummy name\n\nTest added","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":193,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":194,"context_line":"                                         method\u003d\u0027GET\u0027,"},{"line_number":195,"context_line":"                                         query_string\u003d\u0027name\u003dcpu.system_perc\u0026\u0027"},{"line_number":196,"context_line":"                                                      \u0027start_time\u003d2015-03-01T00:00:01.000Z\u0026\u0027"},{"line_number":197,"context_line":"                                                      \u0027statistics\u003davg\u0027)"},{"line_number":198,"context_line":"        self.assertEqual(falcon.HTTP_200, response.status)"}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_727c33b5","line":195,"range":{"start_line":195,"start_character":60,"end_line":195,"end_character":75},"updated":"2019-06-19 17:34:49.000000000","message":"Same comment as above","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"c7e74a6745dfd07f87416e3fca9813c853f532b7","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":193,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":194,"context_line":"                                         method\u003d\u0027GET\u0027,"},{"line_number":195,"context_line":"                                         query_string\u003d\u0027name\u003dcpu.system_perc\u0026\u0027"},{"line_number":196,"context_line":"                                                      \u0027start_time\u003d2015-03-01T00:00:01.000Z\u0026\u0027"},{"line_number":197,"context_line":"                                                      \u0027statistics\u003davg\u0027)"},{"line_number":198,"context_line":"        self.assertEqual(falcon.HTTP_200, response.status)"}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_eabe06fe","line":195,"range":{"start_line":195,"start_character":60,"end_line":195,"end_character":75},"in_reply_to":"9fb8cfa7_727c33b5","updated":"2019-07-05 08:31:33.000000000","message":"Done","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":203,"context_line":"    def setUp(self):"},{"line_number":204,"context_line":"        super(TestMetricsNames, self).setUp()"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        self.metrics_repo_mock \u003d self.useFixture(fixtures.MockPatch("},{"line_number":207,"context_line":"            \u0027monasca_api.common.repositories.influxdb.metrics_repository.MetricsRepository\u0027"},{"line_number":208,"context_line":"        )).mock"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        self.metrics_resource \u003d metrics.MetricsNames()"},{"line_number":211,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_7255131d","line":208,"range":{"start_line":206,"start_character":7,"end_line":208,"end_character":15},"updated":"2019-06-19 17:34:49.000000000","message":"Maybe this should be factored out, but no big deal.","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":293,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":294,"context_line":"                                         method\u003d\u0027GET\u0027,"},{"line_number":295,"context_line":"                                         query_string\u003d\u0027dimension_name\u003dhostname\u0027)"},{"line_number":296,"context_line":"        self.assertEqual(falcon.HTTP_200, response.status)"},{"line_number":297,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_dimension_names))"}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_321ebb70","line":295,"range":{"start_line":295,"start_character":70,"end_line":295,"end_character":78},"updated":"2019-06-19 17:34:49.000000000","message":"Again, this can just be anything right? Maybe `dummy_dimension_name` or something to make it clear that it doesn\u0027t actually get used?","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"c7e74a6745dfd07f87416e3fca9813c853f532b7","unresolved":false,"context_lines":[{"line_number":292,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":293,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":294,"context_line":"                                         method\u003d\u0027GET\u0027,"},{"line_number":295,"context_line":"                                         query_string\u003d\u0027dimension_name\u003dhostname\u0027)"},{"line_number":296,"context_line":"        self.assertEqual(falcon.HTTP_200, response.status)"},{"line_number":297,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_dimension_names))"}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_6acbf6a4","line":295,"range":{"start_line":295,"start_character":70,"end_line":295,"end_character":78},"in_reply_to":"9fb8cfa7_321ebb70","updated":"2019-07-05 08:31:33.000000000","message":"Done","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"9a8779e6525794e47c6eeb14ea391e8717b58ffe","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from monasca_api.v2.reference import metrics"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d oslo_config.cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"TENANT_ID \u003d u\"fedcba9876543210fedcba9876543210\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"7faddb67_3ef0cf67","line":25,"range":{"start_line":25,"start_character":7,"end_line":25,"end_character":22},"updated":"2019-07-08 08:35:43.000000000","message":"Shouldn\u0027t this be explicitly imported?","commit_id":"bf6e5c4d769a9157acbf536b4c8e5316b8351418"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"f4089e68daf402e77f43f450b7099782bde3e976","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from monasca_api.v2.reference import metrics"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d oslo_config.cfg.CONF"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"TENANT_ID \u003d u\"fedcba9876543210fedcba9876543210\""},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"7faddb67_c10d1a3f","line":25,"range":{"start_line":25,"start_character":7,"end_line":25,"end_character":22},"in_reply_to":"7faddb67_3ef0cf67","updated":"2019-07-08 09:31:46.000000000","message":"Done","commit_id":"bf6e5c4d769a9157acbf536b4c8e5316b8351418"}],"monasca_api/tests/test_notifications.py":[{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        request_body \u003d \\"},{"line_number":108,"context_line":"            {"},{"line_number":109,"context_line":"                \"name\": \"Name\","},{"line_number":110,"context_line":"                \"type\": \"MagicTYPE\","},{"line_number":111,"context_line":"                \"address\": \"john@doe.com\""},{"line_number":112,"context_line":"            }"},{"line_number":113,"context_line":"        return_value \u003d self.notifications_repo_mock.return_value"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_ce32a8a7","line":110,"range":{"start_line":110,"start_character":25,"end_line":110,"end_character":34},"updated":"2019-04-09 13:01:02.000000000","message":"do you want to have this bad type also in this test?","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":136,"context_line":"                              body\u003djson.dumps(request_body))"},{"line_number":137,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_409)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    def test_list_notifications(self):"},{"line_number":140,"context_line":"        expected_elements \u003d \\"},{"line_number":141,"context_line":"            {\u0027elements\u0027: ["},{"line_number":142,"context_line":"                {\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":143,"context_line":"                 \u0027id\u0027: u\u00271\u0027,"},{"line_number":144,"context_line":"                 \u0027type\u0027: u\u0027EMAIL\u0027,"},{"line_number":145,"context_line":"                 \u0027period\u0027: 0,"},{"line_number":146,"context_line":"                 \u0027address\u0027: u\u0027a@b.com\u0027,"},{"line_number":147,"context_line":"                 \u0027links\u0027: [{"},{"line_number":148,"context_line":"                     \u0027href\u0027: \u0027http://falconframework.org/v2.0/notification-methods/1\u0027,"},{"line_number":149,"context_line":"                     \u0027rel\u0027: \u0027self\u0027}]}]}"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        return_value \u003d self.notifications_repo_mock.return_value"},{"line_number":152,"context_line":"        return_value.list_notifications.return_value \u003d \\"},{"line_number":153,"context_line":"            [{\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":154,"context_line":"              \u0027id\u0027: u\u00271\u0027,"},{"line_number":155,"context_line":"              \u0027tenant_id\u0027: u\u00274199b031d5fa401abf9afaf7e58890b7\u0027,"},{"line_number":156,"context_line":"              \u0027type\u0027: u\u0027EMAIL\u0027,"},{"line_number":157,"context_line":"              \u0027period\u0027: 0,"},{"line_number":158,"context_line":"              \u0027address\u0027: u\u0027a@b.com\u0027,"},{"line_number":159,"context_line":"              \u0027created_at\u0027: datetime.datetime(2019, 3, 22, 9, 35, 25),"},{"line_number":160,"context_line":"              \u0027updated_at\u0027: datetime.datetime(2019, 3, 22, 9, 35, 25)}]"},{"line_number":161,"context_line":"        response \u003d self.simulate_request(\u0027/v2.0/notification-methods\u0027,"},{"line_number":162,"context_line":"                                         headers\u003d{\u0027X-Roles\u0027:"},{"line_number":163,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":164,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":165,"context_line":"                                         method\u003d\u0027GET\u0027)"},{"line_number":166,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_200)"},{"line_number":167,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_list_notifications_with_sort_by(self):"},{"line_number":170,"context_line":"        expected_elements \u003d \\"},{"line_number":171,"context_line":"            {\u0027elements\u0027: ["},{"line_number":172,"context_line":"                {\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":173,"context_line":"                 \u0027id\u0027: u\u00271\u0027,"},{"line_number":174,"context_line":"                 \u0027type\u0027: u\u0027EMAIL\u0027,"},{"line_number":175,"context_line":"                 \u0027period\u0027: 0,"},{"line_number":176,"context_line":"                 \u0027address\u0027: u\u0027a@b.com\u0027,"},{"line_number":177,"context_line":"                 \u0027links\u0027: [{"},{"line_number":178,"context_line":"                     \u0027href\u0027: \u0027http://falconframework.org/v2.0/notification-methods/1\u0027,"},{"line_number":179,"context_line":"                     \u0027rel\u0027: \u0027self\u0027}]}]}"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"        return_value \u003d self.notifications_repo_mock.return_value"},{"line_number":182,"context_line":"        return_value.list_notifications.return_value \u003d \\"},{"line_number":183,"context_line":"            [{\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":184,"context_line":"              \u0027id\u0027: u\u00271\u0027,"},{"line_number":185,"context_line":"              \u0027tenant_id\u0027: u\u00274199b031d5fa401abf9afaf7e58890b7\u0027,"},{"line_number":186,"context_line":"              \u0027type\u0027: u\u0027EMAIL\u0027,"},{"line_number":187,"context_line":"              \u0027period\u0027: 0,"},{"line_number":188,"context_line":"              \u0027address\u0027: u\u0027a@b.com\u0027,"},{"line_number":189,"context_line":"              \u0027created_at\u0027: datetime.datetime(2019, 3, 22, 9, 35, 25),"},{"line_number":190,"context_line":"              \u0027updated_at\u0027: datetime.datetime(2019, 3, 22, 9, 35, 25)}]"},{"line_number":191,"context_line":"        response \u003d self.simulate_request(\u0027/v2.0/notification-methods\u0027,"},{"line_number":192,"context_line":"                                         headers\u003d{\u0027X-Roles\u0027:"},{"line_number":193,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":194,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":195,"context_line":"                                         query_string\u003d\u0027sort_by\u003dname\u0027,"},{"line_number":196,"context_line":"                                         method\u003d\u0027GET\u0027)"},{"line_number":197,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_200)"},{"line_number":198,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def test_list_notifications_with_offset(self):"},{"line_number":201,"context_line":"        expected_elements \u003d \\"},{"line_number":202,"context_line":"            {\u0027elements\u0027: ["},{"line_number":203,"context_line":"                {\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":204,"context_line":"                 \u0027id\u0027: u\u00271\u0027,"},{"line_number":205,"context_line":"                 \u0027type\u0027: u\u0027EMAIL\u0027,"},{"line_number":206,"context_line":"                 \u0027period\u0027: 0,"},{"line_number":207,"context_line":"                 \u0027address\u0027: u\u0027a@b.com\u0027,"},{"line_number":208,"context_line":"                 \u0027links\u0027: [{"},{"line_number":209,"context_line":"                     \u0027href\u0027: \u0027http://falconframework.org/v2.0/notification-methods/1\u0027,"},{"line_number":210,"context_line":"                     \u0027rel\u0027: \u0027self\u0027}]}]}"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        return_value \u003d self.notifications_repo_mock.return_value"},{"line_number":213,"context_line":"        return_value.list_notifications.return_value \u003d \\"},{"line_number":214,"context_line":"            [{\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":215,"context_line":"              \u0027id\u0027: u\u00271\u0027,"},{"line_number":216,"context_line":"              \u0027tenant_id\u0027: u\u00274199b031d5fa401abf9afaf7e58890b7\u0027,"},{"line_number":217,"context_line":"              \u0027type\u0027: u\u0027EMAIL\u0027,"},{"line_number":218,"context_line":"              \u0027period\u0027: 0,"},{"line_number":219,"context_line":"              \u0027address\u0027: u\u0027a@b.com\u0027,"},{"line_number":220,"context_line":"              \u0027created_at\u0027: datetime.datetime(2019, 3, 22, 9, 35, 25),"},{"line_number":221,"context_line":"              \u0027updated_at\u0027: datetime.datetime(2019, 3, 22, 9, 35, 25)}]"},{"line_number":222,"context_line":"        response \u003d self.simulate_request(\u0027/v2.0/notification-methods\u0027,"},{"line_number":223,"context_line":"                                         headers\u003d{\u0027X-Roles\u0027:"},{"line_number":224,"context_line":"                                                  CONF.security.default_authorized_roles[0],"},{"line_number":225,"context_line":"                                                  \u0027X-Tenant-Id\u0027: TENANT_ID},"},{"line_number":226,"context_line":"                                         query_string\u003d\u0027offset\u003d10\u0027,"},{"line_number":227,"context_line":"                                         method\u003d\u0027GET\u0027)"},{"line_number":228,"context_line":"        self.assertEqual(self.srmock.status, falcon.HTTP_200)"},{"line_number":229,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def test_list_notifications_with_incorrect_offset(self):"},{"line_number":232,"context_line":"        return_value \u003d self.notifications_repo_mock.return_value"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_aea07ca6","line":229,"range":{"start_line":139,"start_character":0,"end_line":229,"end_character":77},"updated":"2019-04-09 13:01:02.000000000","message":"maybe this 3 tests could be rolled into one only with 3 different `simulate_request` calls. There is a lot of unnecessary copy/paste code here.","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":274,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"    def test_delete_notification(self):"},{"line_number":277,"context_line":"        self.simulate_request(\u0027/v2.0/notification-methods/1\u0027,"},{"line_number":278,"context_line":"                              headers\u003d{\u0027X-Roles\u0027:"},{"line_number":279,"context_line":"                                       CONF.security.default_authorized_roles[0],"},{"line_number":280,"context_line":"                                       \u0027X-Tenant-Id\u0027: TENANT_ID},"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_ce0aa888","line":277,"range":{"start_line":277,"start_character":58,"end_line":277,"end_character":59},"updated":"2019-04-09 13:01:02.000000000","message":"Where exactly notification with id 1 is added? Are you depending on test execution order?","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":286,"context_line":"            {\"id\": \"1\","},{"line_number":287,"context_line":"             \"name\": \"shy_name\","},{"line_number":288,"context_line":"             \"type\": \"EMAIL\","},{"line_number":289,"context_line":"             \"address\": \"james@bond.com\","},{"line_number":290,"context_line":"             \"period\": 0}"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        return_value \u003d self.notifications_type_repo_mock.return_value"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_ce2f08f4","line":289,"range":{"start_line":289,"start_character":25,"end_line":289,"end_character":39},"updated":"2019-04-09 13:01:02.000000000","message":"+007","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":381,"context_line":""},{"line_number":382,"context_line":"        return_value \u003d self.notifications_repo_mock.return_value"},{"line_number":383,"context_line":"        return_value.find_notification_by_name.return_value \u003d \\"},{"line_number":384,"context_line":"            {\u0027name\u0027: u\u0027notifcation\u0027,"},{"line_number":385,"context_line":"             \u0027id\u0027: u\u00271\u0027,"},{"line_number":386,"context_line":"             \u0027tenant_id\u0027: u\u0027444\u0027,"},{"line_number":387,"context_line":"             \u0027type\u0027: u\u0027EMAIL\u0027,"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_ae94fce8","line":384,"range":{"start_line":384,"start_character":23,"end_line":384,"end_character":34},"updated":"2019-04-09 13:01:02.000000000","message":"change all `notifcation` to `notification`","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":21922,"name":"Dobroslaw Zybort","email":"dobroslaw.zybort@ts.fujitsu.com","username":"dobrolaw.zybort"},"change_message_id":"be8442af5dde486714b9d9758b401170f5b39e4b","unresolved":false,"context_lines":[{"line_number":540,"context_line":"             \u0027period\u0027: 0,"},{"line_number":541,"context_line":"             \u0027address\u0027: u\u0027james@bond.com\u0027}"},{"line_number":542,"context_line":""},{"line_number":543,"context_line":"        request_body \u003d {\"address\": \"a@b.com\"}"},{"line_number":544,"context_line":""},{"line_number":545,"context_line":"        response \u003d self.simulate_request(\u0027/v2.0/notification-methods/1\u0027,"},{"line_number":546,"context_line":"                                         headers\u003d{\u0027X-Roles\u0027:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5fc1f717_ee8d24d4","line":543,"range":{"start_line":543,"start_character":8,"end_line":543,"end_character":45},"updated":"2019-04-09 13:01:02.000000000","message":"where is period field?","commit_id":"e13857ff345f3f4175841cc93fef07059e9dc6e8"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":78,"context_line":"                                         body\u003djson.dumps(request_body))"},{"line_number":79,"context_line":"        self.assertEqual(response.status, falcon.HTTP_201)"},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"    def test_create_notifications_with_incorrect_type(self):"},{"line_number":82,"context_line":"        request_body \u003d \\"},{"line_number":83,"context_line":"            {"},{"line_number":84,"context_line":"                \"name\": \"Name\","}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_4d1b9272","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":53},"updated":"2019-06-19 17:34:49.000000000","message":"We could factor out all the common logic here with the above test. Not to worry too much. Merging the APIs is more important.","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":17669,"name":"Doug Szumski","email":"doug@stackhpc.com","username":"DougSzumski"},"change_message_id":"cbf123f482959d26fc96bc394a0976246906859e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.assertEqual(response.status, falcon.HTTP_200)"},{"line_number":167,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_list_notifications_with_sort_by(self):"},{"line_number":170,"context_line":"        expected_elements \u003d \\"},{"line_number":171,"context_line":"            {\u0027elements\u0027: ["},{"line_number":172,"context_line":"                {\u0027name\u0027: u\u0027notification\u0027,"}],"source_content_type":"text/x-python","patch_set":24,"id":"9fb8cfa7_8dad0aec","line":169,"range":{"start_line":169,"start_character":37,"end_line":169,"end_character":44},"updated":"2019-06-19 17:34:49.000000000","message":"Maybe add another test with an invalid sort_by and then assert you get 422? I see you\u0027ve done this for some of the others.","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"c7e74a6745dfd07f87416e3fca9813c853f532b7","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        self.assertEqual(response.status, falcon.HTTP_200)"},{"line_number":167,"context_line":"        self.assertThat(response, base.RESTResponseEquals(expected_elements))"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    def test_list_notifications_with_sort_by(self):"},{"line_number":170,"context_line":"        expected_elements \u003d \\"},{"line_number":171,"context_line":"            {\u0027elements\u0027: ["},{"line_number":172,"context_line":"                {\u0027name\u0027: u\u0027notification\u0027,"}],"source_content_type":"text/x-python","patch_set":24,"id":"7faddb67_2a4ade26","line":169,"range":{"start_line":169,"start_character":37,"end_line":169,"end_character":44},"in_reply_to":"9fb8cfa7_8dad0aec","updated":"2019-07-05 08:31:33.000000000","message":"Done","commit_id":"aa797937efc55e1cbc6cd13af3f0b83ef2cd81a3"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"9a8779e6525794e47c6eeb14ea391e8717b58ffe","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from monasca_api.v2.reference import notificationstype"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d oslo_config.cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"TENANT_ID \u003d u\"fedcba9876543210fedcba9876543210\""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"7faddb67_be035f42","line":27,"range":{"start_line":27,"start_character":7,"end_line":27,"end_character":22},"updated":"2019-07-08 08:35:43.000000000","message":"Corresponding import statement missing?","commit_id":"bf6e5c4d769a9157acbf536b4c8e5316b8351418"},{"author":{"_account_id":26141,"name":"Adrian Czarnecki","email":"adrian.czarnecki@ts.fujitsu.com","username":"czarneckia"},"change_message_id":"f4089e68daf402e77f43f450b7099782bde3e976","unresolved":false,"context_lines":[{"line_number":24,"context_line":"from monasca_api.v2.reference import notificationstype"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"CONF \u003d oslo_config.cfg.CONF"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"TENANT_ID \u003d u\"fedcba9876543210fedcba9876543210\""},{"line_number":30,"context_line":""}],"source_content_type":"text/x-python","patch_set":26,"id":"7faddb67_e10a9624","line":27,"range":{"start_line":27,"start_character":7,"end_line":27,"end_character":22},"in_reply_to":"7faddb67_be035f42","updated":"2019-07-08 09:31:46.000000000","message":"Done","commit_id":"bf6e5c4d769a9157acbf536b4c8e5316b8351418"}]}
