)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"da6ae88e681a7ae206257779c927b9094f8b3f82","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Adding Gabbi Tests to Events API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This is contains tests both with and without fixtures to establish"},{"line_number":10,"context_line":"an accepted behavior pattern of the Events and Event_Type Endpoints"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I3d7eff9378e3c261ecc4b972393fd24a2ed4f00a"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"ba7be1f8_364e5697","line":9,"updated":"2015-02-23 14:28:19.000000000","message":"s/is//","commit_id":"80e5387793828e1249d644396b45ab7569a313a0"}],"ceilometer/tests/gabbi/fixtures.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"73c6eae14fae0bf9bc7dc8243cd03c8a389d7f3f","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        database_name \u003d \u0027%s-%s\u0027 % (db_url, str(uuid.uuid4()))"},{"line_number":71,"context_line":"        conf.set_override(\u0027connection\u0027, database_name, group\u003d\u0027database\u0027)"},{"line_number":72,"context_line":"        conf.set_override(\u0027metering_connection\u0027, \u0027\u0027, group\u003d\u0027database\u0027)"},{"line_number":73,"context_line":"        conf.set_override(\u0027event_connection\u0027, database_name, group\u003d\u0027database\u0027)"},{"line_number":74,"context_line":"        conf.set_override(\u0027alarm_connection\u0027, \u0027\u0027, group\u003d\u0027database\u0027)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        conf.set_override(\u0027pecan_debug\u0027, True, group\u003d\u0027api\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_ce08d82a","line":73,"updated":"2015-02-17 18:12:47.000000000","message":"Was this required? I would have thought that line 71 would set a default database for all three types of connections.","commit_id":"15f567ba693c81d43b9e091c146a96b4707c7a56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"73c6eae14fae0bf9bc7dc8243cd03c8a389d7f3f","unresolved":false,"context_lines":[{"line_number":77,"context_line":"        notifications_group \u003d cfg.OptGroup(name\u003d\u0027notification\u0027,"},{"line_number":78,"context_line":"                                           title\u003d\u0027Notification options\u0027)"},{"line_number":79,"context_line":"        conf.register_group(notifications_group)"},{"line_number":80,"context_line":"        store_events \u003d cfg.BoolOpt(\u0027store_events\u0027, default\u003dTrue)"},{"line_number":81,"context_line":"        conf.register_opt(store_events, group\u003dnotifications_group)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def stop_fixture(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_ae9d64bd","line":80,"updated":"2015-02-17 18:12:47.000000000","message":"I think you can do this as a set_override as done above.","commit_id":"15f567ba693c81d43b9e091c146a96b4707c7a56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"73c6eae14fae0bf9bc7dc8243cd03c8a389d7f3f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"        # NOTE(chdent): print here for sake of info during testing."},{"line_number":120,"context_line":"        # This will go away eventually."},{"line_number":121,"context_line":"        print(\u0027resource\u0027,"},{"line_number":122,"context_line":"            self.conn.db.resource.remove({\u0027source\u0027: self.source}))"},{"line_number":123,"context_line":"        print(\u0027meter\u0027, self.conn.db.meter.remove({\u0027source\u0027: self.source}))"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_2ea974dd","line":122,"updated":"2015-02-17 18:12:47.000000000","message":"pep8 will may moan about this formatting change","commit_id":"15f567ba693c81d43b9e091c146a96b4707c7a56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"73c6eae14fae0bf9bc7dc8243cd03c8a389d7f3f","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        self.conn.record_events(events)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def stop_fixture(self):"},{"line_number":147,"context_line":"        \"\"\"Destroy the samples.\"\"\""},{"line_number":148,"context_line":"        # NOTE(chdent): print here for sake of info during testing."},{"line_number":149,"context_line":"        # This will go away eventually."}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_2e76d43f","line":147,"updated":"2015-02-17 18:12:47.000000000","message":"Here you could destroy the events, but I actually think it makes more sense for the ConfigFixture to destroy the database as is done in the gnocchi stuff at: https://review.openstack.org/#/c/156601/2/gnocchi/tests/gabbi/fixtures.py,cm\n\nIt probably makes sense to change how things are set up in Ceilometer too (and also add support for other databases) but that would need to be in its own patchset that we discuss elsewhere.","commit_id":"15f567ba693c81d43b9e091c146a96b4707c7a56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"d00f8043eed0afacb6022a347f27d77a91658763","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        self.conn.record_events(events)"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def stop_fixture(self):"},{"line_number":147,"context_line":"        \"\"\"Destroy the samples.\"\"\""},{"line_number":148,"context_line":"        # NOTE(chdent): print here for sake of info during testing."},{"line_number":149,"context_line":"        # This will go away eventually."}],"source_content_type":"text/x-python","patch_set":1,"id":"da86d52c_eea11c47","line":147,"in_reply_to":"da86d52c_2e76d43f","updated":"2015-02-17 18:15:55.000000000","message":"Actually I\u0027m ambivalent about adding support for other databases. We should be able to assume in _these_ tests that the persistence layer works and focus only on the HTTP API.","commit_id":"15f567ba693c81d43b9e091c146a96b4707c7a56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebd20743ae26aa3ae47645506420835deb133c45","unresolved":false,"context_lines":[{"line_number":130,"context_line":"    \"\"\"Instantiate some sample event data for use in testing.\"\"\""},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    def start_fixture(self):"},{"line_number":133,"context_line":"        \"\"\"Create some samples.\"\"\""},{"line_number":134,"context_line":"        conf \u003d fixture_config.Config().conf"},{"line_number":135,"context_line":"        self.conn \u003d storage.get_connection_from_config(conf, \u0027event\u0027)"},{"line_number":136,"context_line":"        events \u003d []"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_53bdae67","line":133,"updated":"2015-02-22 17:24:52.000000000","message":"events","commit_id":"f0e88155f1e11d3221dc2adc5f2f8a1c294590be"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebd20743ae26aa3ae47645506420835deb133c45","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        self.conn.record_events(events)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def stop_fixture(self):"},{"line_number":151,"context_line":"        \"\"\"Destroy the samples.\"\"\""},{"line_number":152,"context_line":"        # NOTE(chdent): print here for sake of info during testing."},{"line_number":153,"context_line":"        # This will go away eventually."},{"line_number":154,"context_line":"        self.conn.db.event.remove({\u0027event_type\u0027: \u0027/^cookies_/\u0027})"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_73c0f2e0","line":151,"updated":"2015-02-22 17:24:52.000000000","message":"events","commit_id":"f0e88155f1e11d3221dc2adc5f2f8a1c294590be"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebd20743ae26aa3ae47645506420835deb133c45","unresolved":false,"context_lines":[{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def stop_fixture(self):"},{"line_number":151,"context_line":"        \"\"\"Destroy the samples.\"\"\""},{"line_number":152,"context_line":"        # NOTE(chdent): print here for sake of info during testing."},{"line_number":153,"context_line":"        # This will go away eventually."},{"line_number":154,"context_line":"        self.conn.db.event.remove({\u0027event_type\u0027: \u0027/^cookies_/\u0027})"}],"source_content_type":"text/x-python","patch_set":4,"id":"ba7be1f8_93b72686","line":152,"updated":"2015-02-22 17:24:52.000000000","message":"comment can go away since the print is not there","commit_id":"f0e88155f1e11d3221dc2adc5f2f8a1c294590be"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"da6ae88e681a7ae206257779c927b9094f8b3f82","unresolved":false,"context_lines":[{"line_number":150,"context_line":"    def stop_fixture(self):"},{"line_number":151,"context_line":"        \"\"\"Destroy the events.\"\"\""},{"line_number":152,"context_line":"        # NOTE(chdent): print here for sake of info during testing."},{"line_number":153,"context_line":"        # This will go away eventually."},{"line_number":154,"context_line":"        self.conn.db.event.remove({\u0027event_type\u0027: \u0027/^cookies_/\u0027})"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba7be1f8_76160e57","line":153,"updated":"2015-02-23 14:28:19.000000000","message":"kill comment","commit_id":"80e5387793828e1249d644396b45ab7569a313a0"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5ce97d37a49f38e88a923950d45a6aa8e99a4a72","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        conf.set_override(\u0027pecan_debug\u0027, True, group\u003d\u0027api\u0027)"},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            conf.set_override(\u0027store_events\u0027, True, group\u003d\u0027notification\u0027)"},{"line_number":79,"context_line":"        except cfg.NoSuchGroupError:"},{"line_number":80,"context_line":"            notifications_group \u003d cfg.OptGroup(name\u003d\u0027notification\u0027,"},{"line_number":81,"context_line":"                                               title\u003d\u0027Notification options\u0027)"},{"line_number":82,"context_line":"            conf.register_group(notifications_group)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_db8f6c73","line":79,"updated":"2015-02-25 19:30:10.000000000","message":"I think you can avoid this handling by importing the option group before the set_override:\n\n    conf.import_opt(\u0027store_events\u0027, \u0027ceilometer.notification\u0027,\n                        group\u003d\u0027notification\u0027)\n\nBecause each ConfigFixture is reset per test suite and each suite is either in a different process or run in sequence, the import should only happen once for each configuration.","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"},{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"7500e20175a764b4451c994ffadefafba060629a","unresolved":false,"context_lines":[{"line_number":76,"context_line":"        conf.set_override(\u0027pecan_debug\u0027, True, group\u003d\u0027api\u0027)"},{"line_number":77,"context_line":"        try:"},{"line_number":78,"context_line":"            conf.set_override(\u0027store_events\u0027, True, group\u003d\u0027notification\u0027)"},{"line_number":79,"context_line":"        except cfg.NoSuchGroupError:"},{"line_number":80,"context_line":"            notifications_group \u003d cfg.OptGroup(name\u003d\u0027notification\u0027,"},{"line_number":81,"context_line":"                                               title\u003d\u0027Notification options\u0027)"},{"line_number":82,"context_line":"            conf.register_group(notifications_group)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_5b829c00","line":79,"in_reply_to":"ba7be1f8_db8f6c73","updated":"2015-02-25 19:39:15.000000000","message":"Done","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5ce97d37a49f38e88a923950d45a6aa8e99a4a72","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            message_id \u003d \u0027fea1b15a-1d47-4175-85a5-a4bb2c72924{}\u0027.format(ix)"},{"line_number":141,"context_line":"            traits \u003d [models.Trait(\u0027type\u0027, 1, name),"},{"line_number":142,"context_line":"                      models.Trait(\u0027ate\u0027, 2, ix)]"},{"line_number":143,"context_line":"            c \u003d models.Event(message_id,"},{"line_number":144,"context_line":"                             \u0027cookies_{}\u0027.format(name),"},{"line_number":145,"context_line":"                             timestamp,"},{"line_number":146,"context_line":"                             traits)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_bbdb987a","line":143,"updated":"2015-02-25 19:30:10.000000000","message":"If we\u0027re being super picky: What\u0027s a \"c\"?","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"},{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"7500e20175a764b4451c994ffadefafba060629a","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            message_id \u003d \u0027fea1b15a-1d47-4175-85a5-a4bb2c72924{}\u0027.format(ix)"},{"line_number":141,"context_line":"            traits \u003d [models.Trait(\u0027type\u0027, 1, name),"},{"line_number":142,"context_line":"                      models.Trait(\u0027ate\u0027, 2, ix)]"},{"line_number":143,"context_line":"            c \u003d models.Event(message_id,"},{"line_number":144,"context_line":"                             \u0027cookies_{}\u0027.format(name),"},{"line_number":145,"context_line":"                             timestamp,"},{"line_number":146,"context_line":"                             traits)"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba7be1f8_7b85a005","line":143,"in_reply_to":"ba7be1f8_bbdb987a","updated":"2015-02-25 19:39:15.000000000","message":"Done","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"}],"ceilometer/tests/gabbi/gabbits/api_event_with_data.yaml":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"5ce97d37a49f38e88a923950d45a6aa8e99a4a72","unresolved":false,"context_lines":[{"line_number":117,"context_line":"      - cookies_sugar"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- name: get event types for good event_type unused api"},{"line_number":120,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"},{"line_number":121,"context_line":"  url: /v2/event_types/cookies_chocolate.chip"},{"line_number":122,"context_line":"  status: 200"},{"line_number":123,"context_line":"  xfail: True"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba7be1f8_9b75f465","line":120,"updated":"2015-02-25 19:30:10.000000000","message":"Is this linking to the right bug?","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"},{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"7500e20175a764b4451c994ffadefafba060629a","unresolved":false,"context_lines":[{"line_number":117,"context_line":"      - cookies_sugar"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"- name: get event types for good event_type unused api"},{"line_number":120,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"},{"line_number":121,"context_line":"  url: /v2/event_types/cookies_chocolate.chip"},{"line_number":122,"context_line":"  status: 200"},{"line_number":123,"context_line":"  xfail: True"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba7be1f8_1bf2e46f","line":120,"in_reply_to":"ba7be1f8_9b75f465","updated":"2015-02-25 19:39:15.000000000","message":"you are correct it is not, I\u0027m not sure if this actually is a bug.  It is the documented behavior to return a 404.","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"}],"ceilometer/tests/gabbi/gabbits/api_events.yaml":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"73c6eae14fae0bf9bc7dc8243cd03c8a389d7f3f","unresolved":false,"context_lines":[{"line_number":7,"context_line":"- name: get event types"},{"line_number":8,"context_line":"  desc: get all the event types in the system"},{"line_number":9,"context_line":"  url: /v2/events"},{"line_number":10,"context_line":"  response_json_paths:"},{"line_number":11,"context_line":"      $.[0].event_type: cookies_chocolate.chip"},{"line_number":12,"context_line":"      $.[0].traits.[0].value: chocolate.chip"},{"line_number":13,"context_line":"      $.[0].traits.[0].name: type"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"da86d52c_ce34584c","line":10,"updated":"2015-02-17 18:12:47.000000000","message":"You seem to have the general idea. However one thing you might want to think about is that in these kinds of tests you\u0027re not trying to test the model-side logic which is creating the output. That ought to be covered elsewhere. What you want to be testing is that the API is using that model logic adequately and packaging it in correct HTTP.\n\nSo in this case you don\u0027t need test all the traits or fully validate the response. What you want to do is confirm the response is there, has the bare minimum of the expected structure and that the response headers are correct.\n\nIn further tests you would want to throw bad requests (bad urls, bad content-types, bad methods, bad query parameters) at the service and confirm that it responds with the expected http response codes.\n\nAnd explore complex queries and corner cases.","commit_id":"15f567ba693c81d43b9e091c146a96b4707c7a56"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebd20743ae26aa3ae47645506420835deb133c45","unresolved":false,"context_lines":[{"line_number":30,"context_line":"      $.[0].event_type: cookies_chocolate.chip"},{"line_number":31,"context_line":"      $.[0].traits.[0].value: chocolate.chip"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"- name: get events that match query bad query returns empty"},{"line_number":34,"context_line":"  desc: get all the event types in the system with bad query returns empty"},{"line_number":35,"context_line":"  url: /v2/events?q.field\u003dbad_field\u0026q.op\u003deq\u0026q.type\u003dstring\u0026q.value\u003dcookies_chocolate.chip"},{"line_number":36,"context_line":"  response_strings:"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ba7be1f8_93e9e682","line":33,"updated":"2015-02-22 17:24:52.000000000","message":"This name is confusing.\n\nIt\u0027s also interesting behavior. By bad field do you mean a field that isn\u0027t present but could be, or never could be? If it\u0027s the latter then I would think this ought to be a 4xx?","commit_id":"f0e88155f1e11d3221dc2adc5f2f8a1c294590be"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"ebd20743ae26aa3ae47645506420835deb133c45","unresolved":false,"context_lines":[{"line_number":57,"context_line":"      - cookies_peanut.butter"},{"line_number":58,"context_line":"      - cookies_sugar"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"- name: get event types for good event_type unused api"},{"line_number":61,"context_line":"  desc: get event types for good event_type returns 404"},{"line_number":62,"context_line":"  url: /v2/event_types/cookies_chocolate.chip"},{"line_number":63,"context_line":"  status: 404"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"ba7be1f8_b3a34a4e","line":60,"updated":"2015-02-22 17:24:52.000000000","message":"I agree that this represents the behavior of the API but I reckon we could generate some fruitful debate on whether this behavior represents good API design. I\u0027d expect to see a resource here that provides links to the traits.\n\nWe should decide which of the following we want to do:\n\n* leave at it is, not worry\n* make this a xfail and report a bug\n\nI don\u0027t have a particularly strong opinion, in part because I keep finding this sort of thing with gabbi all over the place, so I guess it\u0027s not been a huge concern so it may be that my opinions about API hygiene may be misplaced...","commit_id":"f0e88155f1e11d3221dc2adc5f2f8a1c294590be"}],"ceilometer/tests/gabbi/gabbits/api_events_no_data.yaml":[{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"7500e20175a764b4451c994ffadefafba060629a","unresolved":false,"context_lines":[{"line_number":108,"context_line":"      - \"[]\""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"- name: get event types for good event_type unused api"},{"line_number":111,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"},{"line_number":112,"context_line":"  url: /v2/event_types/cookies_chocolate.chip"},{"line_number":113,"context_line":"  status: 200"},{"line_number":114,"context_line":"  xfail: True"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"ba7be1f8_bbae382c","line":111,"updated":"2015-02-25 19:39:15.000000000","message":"should not be linked here.","commit_id":"0e303458540d4a4108600cdf084ffeefcb1b9d6f"}],"ceilometer/tests/gabbi/gabbits/api_events_with_data.yaml":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c8375d7a717bb6ff5d85fdd9c3fd6e53ed73a218","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  response_strings:"},{"line_number":86,"context_line":"      - \"[]\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# this attempts to query the events with the worng data query syntax missing the"},{"line_number":89,"context_line":"# q object but supplying the field list and # a bad field name and expects a 400"},{"line_number":90,"context_line":"# As of 2/26/2015 returns a 500"},{"line_number":91,"context_line":"- name: get events that match bad query via data list"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ba7be1f8_9accdc6b","line":88,"updated":"2015-02-26 18:52:24.000000000","message":"s/worng/wrong/","commit_id":"cf15f30302863ca2bf808f338296a2020321ab96"},{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"244bc13ec37bec22cb49b36de7027b03e5711343","unresolved":false,"context_lines":[{"line_number":85,"context_line":"  response_strings:"},{"line_number":86,"context_line":"      - \"[]\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# this attempts to query the events with the worng data query syntax missing the"},{"line_number":89,"context_line":"# q object but supplying the field list and # a bad field name and expects a 400"},{"line_number":90,"context_line":"# As of 2/26/2015 returns a 500"},{"line_number":91,"context_line":"- name: get events that match bad query via data list"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ba7be1f8_5a6c2408","line":88,"in_reply_to":"ba7be1f8_9accdc6b","updated":"2015-02-26 19:09:24.000000000","message":"Done","commit_id":"cf15f30302863ca2bf808f338296a2020321ab96"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c8375d7a717bb6ff5d85fdd9c3fd6e53ed73a218","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      - \"[]\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# this attempts to query the events with the worng data query syntax missing the"},{"line_number":89,"context_line":"# q object but supplying the field list and # a bad field name and expects a 400"},{"line_number":90,"context_line":"# As of 2/26/2015 returns a 500"},{"line_number":91,"context_line":"- name: get events that match bad query via data list"},{"line_number":92,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ba7be1f8_3ae3f0d9","line":89,"updated":"2015-02-26 18:52:24.000000000","message":"s/and # a bad/and a bad/","commit_id":"cf15f30302863ca2bf808f338296a2020321ab96"},{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"244bc13ec37bec22cb49b36de7027b03e5711343","unresolved":false,"context_lines":[{"line_number":86,"context_line":"      - \"[]\""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# this attempts to query the events with the worng data query syntax missing the"},{"line_number":89,"context_line":"# q object but supplying the field list and # a bad field name and expects a 400"},{"line_number":90,"context_line":"# As of 2/26/2015 returns a 500"},{"line_number":91,"context_line":"- name: get events that match bad query via data list"},{"line_number":92,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ba7be1f8_7a6f28fc","line":89,"in_reply_to":"ba7be1f8_3ae3f0d9","updated":"2015-02-26 19:09:24.000000000","message":"Done","commit_id":"cf15f30302863ca2bf808f338296a2020321ab96"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"c8375d7a717bb6ff5d85fdd9c3fd6e53ed73a218","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# this attempts to query the events with the worng data query syntax missing the"},{"line_number":89,"context_line":"# q object but supplying the field list and # a bad field name and expects a 400"},{"line_number":90,"context_line":"# As of 2/26/2015 returns a 500"},{"line_number":91,"context_line":"- name: get events that match bad query via data list"},{"line_number":92,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"},{"line_number":93,"context_line":"  url: /v2/events"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ba7be1f8_faeb18a1","line":90,"updated":"2015-02-26 18:52:24.000000000","message":"So surely the expected status for this asserted on line 102 should be 500 as opposed to 400?\n\nAlso, I\u0027m not loving the direct encoding of dates in the test comments (as these are detached from the branching structure).","commit_id":"cf15f30302863ca2bf808f338296a2020321ab96"},{"author":{"_account_id":14445,"name":"Jason Myers","email":"jason@jasonamyers.com","username":"jasonamyers"},"change_message_id":"244bc13ec37bec22cb49b36de7027b03e5711343","unresolved":false,"context_lines":[{"line_number":87,"context_line":""},{"line_number":88,"context_line":"# this attempts to query the events with the worng data query syntax missing the"},{"line_number":89,"context_line":"# q object but supplying the field list and # a bad field name and expects a 400"},{"line_number":90,"context_line":"# As of 2/26/2015 returns a 500"},{"line_number":91,"context_line":"- name: get events that match bad query via data list"},{"line_number":92,"context_line":"  desc: https://bugs.launchpad.net/ceilometer/+bug/1423634"},{"line_number":93,"context_line":"  url: /v2/events"}],"source_content_type":"text/x-yaml","patch_set":12,"id":"ba7be1f8_3a377000","line":90,"in_reply_to":"ba7be1f8_faeb18a1","updated":"2015-02-26 19:09:24.000000000","message":"I\u0027ll remove the comment.  This should return a 400; however, it returns a 500.  So for now we build the test properly, and mark it as xfail: True","commit_id":"cf15f30302863ca2bf808f338296a2020321ab96"}]}
