)]}'
{"specs/client-checks-success.rst":[{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"f55c359900a51b18c015139157aa152b5165ec14","unresolved":false,"context_lines":[{"line_number":47,"context_line":"that have schemas. Use expected_success otherwise and change it so that"},{"line_number":48,"context_line":"the expected code is a list. Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":2,"id":"7adec928_1977c73b","line":50,"updated":"2014-05-09 17:24:50.000000000","message":"It was raised on the ml that we might go right to schemas when the check is moved to the client. That would be good but potentially a lot more work for apis that currently have no schema at all.  In any even, doing so is consistent with this proposal as long as a providing a schema is not actually required in order to move a check to the client.","commit_id":"1e4befaaa893e281a87933da43092bf5718407f5"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"301fc8f9eafce66b37385c26a5793b8a652e029d","unresolved":false,"context_lines":[{"line_number":30,"context_line":"the client. We should move all checking to the client except where multiple"},{"line_number":31,"context_line":"success return codes are possible."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"There are two methods on RestClient that handle this:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"validate_response(cls, schema, resp, body)"},{"line_number":36,"context_line":"  This is used with the new schema validation."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"expected_success(self, expected_code, read_code)"},{"line_number":39,"context_line":"  This was an earlier attempt to rationalize response checking but is only used"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_1a1cf576","line":36,"range":{"start_line":33,"start_character":0,"end_line":36,"end_character":46},"updated":"2014-06-10 13:31:20.000000000","message":"Question: the API response may vary depending on loaded extensions, role of the requester, resources defined. \nCould you detail how do you plan to handle this? \nDo we only check the min set of mandatory options and the specific rest is up to the test to check?","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"177e1cab65aecc28ec289b6aee4d3903786b7419","unresolved":false,"context_lines":[{"line_number":33,"context_line":"There are two methods on RestClient that handle this:"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"validate_response(cls, schema, resp, body)"},{"line_number":36,"context_line":"  This is used with the new schema validation."},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"expected_success(self, expected_code, read_code)"},{"line_number":39,"context_line":"  This was an earlier attempt to rationalize response checking but is only used"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_23134967","line":36,"in_reply_to":"1ae5cdf2_1a1cf576","updated":"2014-06-10 16:02:58.000000000","message":"It was response code checking that motivated this proposal and I think I spelled out that the client would check based on a list of allowed 2xx codes. If there is more than one then the caller must check also, as it does now. As for schema or header validation all we can really do is validate the schema there is, which is already being done in nova. So it is what you said and I can\u0027t think of any alternative.","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"46f1c3b01898bf8af73c1460fbf3fa7d02ff5d31","unresolved":false,"context_lines":[{"line_number":47,"context_line":"success code, adding schemas for apis that do not have them yet."},{"line_number":48,"context_line":"Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_322c3a02","line":50,"updated":"2014-06-11 21:14:01.000000000","message":"One quick question are you going to handle this in the rest client? Or on a case by case basis?","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"387fa33410ea495ee3826e873bf0e6397a9bb631","unresolved":false,"context_lines":[{"line_number":47,"context_line":"success code, adding schemas for apis that do not have them yet."},{"line_number":48,"context_line":"Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"7adec928_9fae3e97","line":50,"updated":"2014-05-23 06:37:06.000000000","message":"Some questions:\n\n- Do you want to have this functionality switchable or should it be active all the time? So I see the possibility to have a global config option, a switch per client object and a parameter for each rest call. IMHO we need to have a switch to support old negative tests.\n\n- Should the client raise an exception or use assert?","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"27816e8c0f129629b6fb55cee9d85f4cbcb3b2da","unresolved":false,"context_lines":[{"line_number":47,"context_line":"success code, adding schemas for apis that do not have them yet."},{"line_number":48,"context_line":"Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_54835755","line":50,"in_reply_to":"1ae5cdf2_322c3a02","updated":"2014-06-12 16:05:22.000000000","message":"I think this code needs to go in the service-specific clients as is already done with the schema checking in nova.","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"4932c9ee07d6ff4f5d75dd483a9b5ab7fec5729a","unresolved":false,"context_lines":[{"line_number":47,"context_line":"success code, adding schemas for apis that do not have them yet."},{"line_number":48,"context_line":"Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_db284f35","line":50,"in_reply_to":"1ae5cdf2_9f4ba12a","updated":"2014-06-05 18:47:24.000000000","message":"Perhaps I am missing something but I don\u0027t see the issue here. At present, the client will throw an exception if 4xx is returned, and the old negative tests expect a particular exception. That will not change. This spec talks about changing the client to also check that in the 2xx case, the code is correct and the body is valid. If it is not then an exception will be raised but not the one expected by an old negative test so it will behave the same.","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"7f9de565de31d5084fe34de07ff1492ba227e2f1","unresolved":false,"context_lines":[{"line_number":47,"context_line":"success code, adding schemas for apis that do not have them yet."},{"line_number":48,"context_line":"Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_79841eb1","line":50,"in_reply_to":"1ae5cdf2_db284f35","updated":"2014-06-10 16:48:14.000000000","message":"Ok, it\u0027s might a good idea to mention that this will only been done in case of successful request.","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"4a3c4e4ab89e814a88f85c382a7967cf3400c4cd","unresolved":false,"context_lines":[{"line_number":47,"context_line":"success code, adding schemas for apis that do not have them yet."},{"line_number":48,"context_line":"Then we can remove all checks from the test code"},{"line_number":49,"context_line":"itself except where there are multiple possible 2xx responses. In that case"},{"line_number":50,"context_line":"the caller should also check for a specific value."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"Alternatives"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_9f4ba12a","line":50,"in_reply_to":"7adec928_9fae3e97","updated":"2014-06-02 11:54:33.000000000","message":"That is a very good question about what\u0027s the story on existing negative tests here. Would be good to figure that out.","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"46f1c3b01898bf8af73c1460fbf3fa7d02ff5d31","unresolved":false,"context_lines":[{"line_number":68,"context_line":"----------"},{"line_number":69,"context_line":"Target Milestone for completion:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"- Juno"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Work Items"},{"line_number":74,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_72e402e0","line":71,"updated":"2014-06-11 21:14:01.000000000","message":"Is there anything more specific then that? Or did you mean by the end of the cycle?","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"27816e8c0f129629b6fb55cee9d85f4cbcb3b2da","unresolved":false,"context_lines":[{"line_number":68,"context_line":"----------"},{"line_number":69,"context_line":"Target Milestone for completion:"},{"line_number":70,"context_line":""},{"line_number":71,"context_line":"- Juno"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"Work Items"},{"line_number":74,"context_line":"----------"}],"source_content_type":"text/x-rst","patch_set":3,"id":"1ae5cdf2_f46f0390","line":71,"in_reply_to":"1ae5cdf2_72e402e0","updated":"2014-06-12 16:05:22.000000000","message":"Sorry, meant end of cycle.","commit_id":"9b4a91c6e0f7498d3cbadae5e5e7fa983f345504"}]}
