)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5586,"name":"Ivan-Zhu","email":"zhubo198511@gmail.com","username":"ivan-zhu"},"change_message_id":"b49cdf65615095baf0b528b9da137a64e99934d5","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add basic Keystone CLI tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"New cli.output_parser helpers for parsing \u0027ascii-tables\u0027"},{"line_number":10,"context_line":" offten used in CLIs output."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"New basic tests for keystone cli, verifies only read-only"},{"line_number":13,"context_line":" actions (return codes and basic structure of output)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAN3%2F%2F3ck%3D","line":10,"updated":"2013-03-08 09:08:52.000000000","message":"often","commit_id":"1bf2e5dfea8b20f9c197912c74a2f127a9533ea5"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"9160439c7f5eeeec8f7d1cc77366410ea252ebf3","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add basic Keystone CLI tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"New cli.output_parser helpers for parsing \u0027ascii-tables\u0027"},{"line_number":10,"context_line":" offten used in CLIs output."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"New basic tests for keystone cli, verifies only read-only"},{"line_number":13,"context_line":" actions (return codes and basic structure of output)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAN3%2F%2FvXI%3D","line":10,"in_reply_to":"AAAAN3%2F%2F3ck%3D","updated":"2013-03-14 11:23:05.000000000","message":"Done","commit_id":"1bf2e5dfea8b20f9c197912c74a2f127a9533ea5"}],"cli/output_parser.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"26cd2e17ff4c55dfd5f62460aba50ece8160d9f7","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    start \u003d False"},{"line_number":87,"context_line":"    header \u003d False"},{"line_number":88,"context_line":"    end \u003d False"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    if not isinstance(output_lines, list):"},{"line_number":91,"context_line":"        output_lines \u003d output_lines.split(\u0027\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F6WM%3D","line":88,"updated":"2013-03-06 19:51:40.000000000","message":"Not used variable.","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"ac9e8a6459fda641bbef6799222e1f0baba6e502","unresolved":false,"context_lines":[{"line_number":85,"context_line":""},{"line_number":86,"context_line":"    start \u003d False"},{"line_number":87,"context_line":"    header \u003d False"},{"line_number":88,"context_line":"    end \u003d False"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":"    if not isinstance(output_lines, list):"},{"line_number":91,"context_line":"        output_lines \u003d output_lines.split(\u0027\\n\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F5UQ%3D","line":88,"in_reply_to":"AAAAN3%2F%2F6WM%3D","updated":"2013-03-07 08:15:25.000000000","message":"Done","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":1794,"name":"Donald Ngo","email":"donald.ngo@hp.com","username":"donald-ngo"},"change_message_id":"20d1779da4b8fd9b856024b12c9c2a6334eae137","unresolved":false,"context_lines":[{"line_number":28,"context_line":"delimiter_line \u003d re.compile(\u0027^\\+\\-[\\+\\-]+\\-\\+$\u0027)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def details_multiple(output_lines, with_label\u003dFalse):"},{"line_number":32,"context_line":"    \"\"\"Return list of dicts with item details from cli output tables."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    If with_label is True, key \u0027__label\u0027 is added to each items dict."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2Fzuk%3D","line":31,"updated":"2013-03-11 21:03:16.000000000","message":"This code can only be used by tables that have two headers that have the name \"Property\" and \"Value\".\n\nWould probably be good to refactor so we can pass in these values and make it more robust.","commit_id":"1bf2e5dfea8b20f9c197912c74a2f127a9533ea5"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"9160439c7f5eeeec8f7d1cc77366410ea252ebf3","unresolved":false,"context_lines":[{"line_number":28,"context_line":"delimiter_line \u003d re.compile(\u0027^\\+\\-[\\+\\-]+\\-\\+$\u0027)"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"def details_multiple(output_lines, with_label\u003dFalse):"},{"line_number":32,"context_line":"    \"\"\"Return list of dicts with item details from cli output tables."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    If with_label is True, key \u0027__label\u0027 is added to each items dict."}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FvXo%3D","line":31,"in_reply_to":"AAAAN3%2F%2Fzuk%3D","updated":"2013-03-14 11:23:05.000000000","message":"Actually don\u0027t know about table showing single item info with different columns ... where I can get such?\n\nAnd column names are here just for checking \u0027sanity\u0027 - to verify this method is not applied to *-list tables etc.\nSo probably better would be to add argument \u0027validate_headers/columns\u003dTrue\u0027 to allow more freedom / general usage? Or to remove this column-name check at all?","commit_id":"1bf2e5dfea8b20f9c197912c74a2f127a9533ea5"}],"cli/simple_read_only/test_keystone.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"26cd2e17ff4c55dfd5f62460aba50ece8160d9f7","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import logging"},{"line_number":19,"context_line":"import pprint"},{"line_number":20,"context_line":"import re"},{"line_number":21,"context_line":"import subprocess"},{"line_number":22,"context_line":"import testtools"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F6WI%3D","line":19,"updated":"2013-03-06 19:51:40.000000000","message":"Not used imports.","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"ac9e8a6459fda641bbef6799222e1f0baba6e502","unresolved":false,"context_lines":[{"line_number":16,"context_line":"#    under the License."},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"import logging"},{"line_number":19,"context_line":"import pprint"},{"line_number":20,"context_line":"import re"},{"line_number":21,"context_line":"import subprocess"},{"line_number":22,"context_line":"import testtools"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F5UM%3D","line":19,"in_reply_to":"AAAAN3%2F%2F6WI%3D","updated":"2013-03-07 08:15:25.000000000","message":"Done","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f7b5b199c8760e9a44ae5510a59ecd544709b1a3","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import testtools"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import cli"},{"line_number":25,"context_line":"from cli import output_parser"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from tempest.openstack.common import cfg"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F6ZY%3D","line":25,"updated":"2013-03-06 21:32:27.000000000","message":"This isn\u0027t used here?","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"ac9e8a6459fda641bbef6799222e1f0baba6e502","unresolved":false,"context_lines":[{"line_number":22,"context_line":"import testtools"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import cli"},{"line_number":25,"context_line":"from cli import output_parser"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"from tempest.openstack.common import cfg"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F5UI%3D","line":25,"in_reply_to":"AAAAN3%2F%2F6ZY%3D","updated":"2013-03-07 08:15:25.000000000","message":"Done","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f7b5b199c8760e9a44ae5510a59ecd544709b1a3","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    it\u0027s own, verifies only structure of output if present."},{"line_number":39,"context_line":"    \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def assertTableStruct(self, items, field_names):"},{"line_number":42,"context_line":"        \"\"\"Verify that all items has keys listed in field_names.\"\"\""},{"line_number":43,"context_line":"        for item in items:"},{"line_number":44,"context_line":"            for field in field_names:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F6ZQ%3D","line":41,"updated":"2013-03-06 21:32:27.000000000","message":"This should be moved into the base class","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"ac9e8a6459fda641bbef6799222e1f0baba6e502","unresolved":false,"context_lines":[{"line_number":38,"context_line":"    it\u0027s own, verifies only structure of output if present."},{"line_number":39,"context_line":"    \"\"\""},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def assertTableStruct(self, items, field_names):"},{"line_number":42,"context_line":"        \"\"\"Verify that all items has keys listed in field_names.\"\"\""},{"line_number":43,"context_line":"        for item in items:"},{"line_number":44,"context_line":"            for field in field_names:"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F5UE%3D","line":41,"in_reply_to":"AAAAN3%2F%2F6ZQ%3D","updated":"2013-03-07 08:15:25.000000000","message":"Done","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"f7b5b199c8760e9a44ae5510a59ecd544709b1a3","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            if match:"},{"line_number":113,"context_line":"                commands.append(match.group(1))"},{"line_number":114,"context_line":"        commands \u003d set(commands)"},{"line_number":115,"context_line":"        #NOTE(psedlak): do we want to check presence of all commands in help?"},{"line_number":116,"context_line":"        wanted_commands \u003d set((\u0027catalog\u0027, \u0027endpoint-list\u0027, \u0027help\u0027,"},{"line_number":117,"context_line":"                               \u0027token-get\u0027, \u0027discover\u0027, \u0027bootstrap\u0027))"},{"line_number":118,"context_line":"        self.assertFalse(wanted_commands - commands)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAN3%2F%2F6Y4%3D","line":115,"updated":"2013-03-06 21:32:27.000000000","message":"No, as someone should be able to add a command without being forced to update this test (since this is cross repo it gets tricky)","commit_id":"89734f06197b3ffe0e2a4f2d14389e33d8c97797"},{"author":{"_account_id":2218,"name":"Adam Young","email":"adam@younglogic.com","username":"ayoung"},"change_message_id":"1fc9c745e883fb71d260fdd6b15701e40a192fb0","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \"\"\"Basic, read-only tests for Keystone CLI client."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    Checks return values and output of read-only commands."},{"line_number":32,"context_line":"    These tests does not presume any content, nor does create"},{"line_number":33,"context_line":"    it\u0027s own, verifies only structure of output if present."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2F0Pc%3D","line":32,"updated":"2013-03-12 04:36:00.000000000","message":"\"These tests do do not\" ... \"nor do they create their own.  They only verify the structure...\"","commit_id":"1bf2e5dfea8b20f9c197912c74a2f127a9533ea5"},{"author":{"_account_id":6683,"name":"Pavel Sedlák","email":"psedlak@redhat.com","username":"psedlak"},"change_message_id":"9160439c7f5eeeec8f7d1cc77366410ea252ebf3","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    \"\"\"Basic, read-only tests for Keystone CLI client."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    Checks return values and output of read-only commands."},{"line_number":32,"context_line":"    These tests does not presume any content, nor does create"},{"line_number":33,"context_line":"    it\u0027s own, verifies only structure of output if present."},{"line_number":34,"context_line":"    \"\"\""},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAN3%2F%2FvXE%3D","line":32,"in_reply_to":"AAAAN3%2F%2F0Pc%3D","updated":"2013-03-14 11:23:05.000000000","message":"Done","commit_id":"1bf2e5dfea8b20f9c197912c74a2f127a9533ea5"}]}
