)]}'
{"tempest/cli/simple_read_only/test_trove.py":[{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"40edbbe2cf64f497ba7e6e1171d65d33de243973","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_8af8e1c5","line":1,"updated":"2014-05-22 05:48:17.000000000","message":"u may change the year to 2014","commit_id":"7eeb080474ab0494e82989add00802cd0183ef9c"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"40edbbe2cf64f497ba7e6e1171d65d33de243973","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import tempest.cli"},{"line_number":21,"context_line":"from tempest import config"},{"line_number":22,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":23,"context_line":"import tempest.test"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_8ae62115","line":23,"updated":"2014-05-22 05:48:17.000000000","message":"Why did you import these when not used.\n\ntempest.cli\n\ntempest.test","commit_id":"7eeb080474ab0494e82989add00802cd0183ef9c"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"5491bafa54cdcd430a0e3fd5f75370ccb6ccad55","unresolved":false,"context_lines":[{"line_number":20,"context_line":"import tempest.cli"},{"line_number":21,"context_line":"from tempest import config"},{"line_number":22,"context_line":"from tempest.openstack.common import log as logging"},{"line_number":23,"context_line":"import tempest.test"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"CONF \u003d config.CONF"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_ca9e6963","line":23,"in_reply_to":"7adec928_8ae62115","updated":"2014-05-22 05:51:26.000000000","message":"Sorry, My bad.\nI din\u0027t notice that\ntempest.cli is used.\n\nbut what about tempest.test","commit_id":"7eeb080474ab0494e82989add00802cd0183ef9c"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"40edbbe2cf64f497ba7e6e1171d65d33de243973","unresolved":false,"context_lines":[{"line_number":49,"context_line":"        super(SimpleReadOnlyTroveClientTest, cls).setUpClass()"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"    def test_flavor_list(self):"},{"line_number":52,"context_line":"        flavor_list \u003d self.trove(\u0027flavor-list\u0027)"},{"line_number":53,"context_line":"        self.assertIn(\"tiny\", flavor_list)"},{"line_number":54,"context_line":"        self.assertIn(\"small\", flavor_list)"},{"line_number":55,"context_line":"        self.assertIn(\"micro\", flavor_list)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_4a41790a","line":52,"updated":"2014-05-22 05:48:17.000000000","message":"There is so many redundancy in the code.\n\nmake a help function like :\n\ndo _in_check(self, list, keys):\n    for key in keys:\n        self.assertIn(key, list)\n\nand call this function here :\nself._in_check(flavor_list, [\u0027tiny\u0027, \u0027small\u0027, \u0027micro\u0027])","commit_id":"7eeb080474ab0494e82989add00802cd0183ef9c"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"40edbbe2cf64f497ba7e6e1171d65d33de243973","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    def test_flavor_show(self):"},{"line_number":58,"context_line":"        # Get falvor details for m1.tiny flavor (id\u003d1)"},{"line_number":59,"context_line":"        flavor_show_ret \u003d self.trove(\u0027flavor-show\u0027, params\u003d\u00271\u0027)"},{"line_number":60,"context_line":"        self.assertIn(\"tiny\", flavor_show_ret)"},{"line_number":61,"context_line":"        self.assertIn(\"id\", flavor_show_ret)"},{"line_number":62,"context_line":"        self.assertIn(\"name\", flavor_show_ret)"},{"line_number":63,"context_line":"        self.assertIn(\"ram\", flavor_show_ret)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_0a5e91e9","line":60,"updated":"2014-05-22 05:48:17.000000000","message":"call help function here.\nself._in_check(flavor_show_ret, [\u0027id\u0027, \u0027name\u0027, \u0027ram\u0027])","commit_id":"7eeb080474ab0494e82989add00802cd0183ef9c"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"40edbbe2cf64f497ba7e6e1171d65d33de243973","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def test_limit_list(self):"},{"line_number":66,"context_line":"        limit_list \u003d self.trove(\u0027limit-list\u0027)"},{"line_number":67,"context_line":"        self.assertIn(\"max_backups\", limit_list)"},{"line_number":68,"context_line":"        self.assertIn(\"max_instances\", limit_list)"},{"line_number":69,"context_line":"        self.assertIn(\"max_volume\", limit_list)"},{"line_number":70,"context_line":"        self.assertIn(\"verb\", limit_list)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7adec928_4a0fb9e1","line":67,"updated":"2014-05-22 05:48:17.000000000","message":"and here too. :\nself._in_check(limit_list, [\u0027max_instances\u0027, \u0027max_volume\u0027, \u0027verb\u0027])","commit_id":"7eeb080474ab0494e82989add00802cd0183ef9c"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"4418b252e04142baff1474cb836a8eb2945b2a01","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_flavor_list(self):"},{"line_number":49,"context_line":"        flavor_list_ret \u003d self.trove(\u0027flavor-list\u0027)"},{"line_number":50,"context_line":"        self._in_check(flavor_list_ret, [\u0027tiny\u0027, \u0027small\u0027, \u0027micro\u0027])"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_flavor_show(self):"},{"line_number":53,"context_line":"        # Get falvor details for m1.tiny flavor (id\u003d1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_32e20da0","line":50,"updated":"2014-05-27 10:51:04.000000000","message":"I think you don\u0027t need self._in_check method. You can write something like this\n\n    flavor_list_ret \u003d self.parser.listing(self.trove(\u0027flavor-list\u0027))\n    self.assertTableStruct(flavor_list_ret, [\u0027tiny\u0027, \u0027small\u0027, \u0027micro\u0027])\n\nhttps://github.com/openstack/tempest/blob/master/tempest/cli/simple_read_only/test_keystone.py#L73\nhttps://github.com/openstack/tempest/blob/master/tempest/cli/simple_read_only/test_neutron.py#L68\nhttps://github.com/openstack/tempest/blob/master/tempest/cli/simple_read_only/test_sahara.py#L50","commit_id":"ca9755f73a2bfa56bf2e810c0c45dc6918f9f3fe"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"b80a604ca2d364db5f705df8a8e7e48f053c1314","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def test_flavor_list(self):"},{"line_number":49,"context_line":"        flavor_list_ret \u003d self.trove(\u0027flavor-list\u0027)"},{"line_number":50,"context_line":"        self._in_check(flavor_list_ret, [\u0027tiny\u0027, \u0027small\u0027, \u0027micro\u0027])"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_flavor_show(self):"},{"line_number":53,"context_line":"        # Get falvor details for m1.tiny flavor (id\u003d1)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ae8d1ca_c97cd475","line":50,"in_reply_to":"3ae8d1ca_32e20da0","updated":"2014-05-27 17:10:42.000000000","message":"Ah, I understood that you did here :)","commit_id":"ca9755f73a2bfa56bf2e810c0c45dc6918f9f3fe"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"d65fa2db9f7eff3ef22e36431cf7ca0db7eb974a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    * with and without optional parameters"},{"line_number":33,"context_line":"    * initially just check return codes, and later test command outputs"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    \"\"\""},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"    @classmethod"},{"line_number":38,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3ae8d1ca_9d12f8b2","line":35,"updated":"2014-05-28 01:11:02.000000000","message":"One of the reasons why the CLI tests were written in the first place was to make sure optional arguments don\u0027t cause the client to stacktrace\n\nhttp://git.openstack.org/cgit/openstack/tempest/tree/tempest/cli/simple_read_only/test_nova.py#n191\n\nIt would be nice to get the equivalent tests in the first pass of this (as they should be pretty simple tests).","commit_id":"700e6efb7686396d306919fcd1a3713910a8b905"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"78e01df09e5c67ef0a35e753c473f73570e0e50a","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_cff49fd1","line":1,"updated":"2014-05-28 22:20:06.000000000","message":"Ashish, unless you are employed by the OpenStack foundation this is not accurate.\n\nhttps://wiki.openstack.org/wiki/LegalIssuesFAQ#OpenStack_Foundation_Copyright_Headers\n\n\nThis line isn\u0027t needed either, the important part is the Apache 2 header below","commit_id":"67ba868eea88ec8ee1040d529c5ae945a9832c19"},{"author":{"_account_id":11019,"name":"Ashish Nigam","email":"ashish.nigam1@globallogic.com","username":"ashishsnigam"},"change_message_id":"6b4a810cb71eb6ce302624f4a90b2aa90f208245","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2014 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":5,"id":"3ae8d1ca_61863767","line":1,"in_reply_to":"3ae8d1ca_cff49fd1","updated":"2014-05-29 05:54:29.000000000","message":"Done","commit_id":"67ba868eea88ec8ee1040d529c5ae945a9832c19"},{"author":{"_account_id":1849,"name":"Joe Gordon","email":"joe.gordon0@gmail.com","username":"jogo"},"change_message_id":"bdb12305a7e4222c381571cdc35cb94636493bba","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# All Rights Reserved."},{"line_number":2,"context_line":"#"},{"line_number":3,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":4,"context_line":"#    not use this file except in compliance with the License. You may obtain"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_54de8440","line":1,"updated":"2014-05-30 23:45:17.000000000","message":"this line doesn\u0027t make sense if its not associated with a copyright holder, so this line should be removed as well.","commit_id":"d2a5c71fa0c68be3cff7c880921a3727fa166c6f"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"7e5c3e5f0ab406daeb2e1ffd89356031933ed1d2","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    This should test commands:"},{"line_number":27,"context_line":"    * as a regular user"},{"line_number":28,"context_line":"    * as a admin user"},{"line_number":29,"context_line":"    * with and without optional parameters"},{"line_number":30,"context_line":"    * initially just check return codes, and later test command outputs"},{"line_number":31,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_bc57f9c8","line":28,"updated":"2014-06-05 20:41:19.000000000","message":"should be *an* admin user","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"ff1767e6d90c541ca5349bcfb3cdad561c463241","unresolved":false,"context_lines":[{"line_number":38,"context_line":"            raise cls.skipException(msg)"},{"line_number":39,"context_line":"        super(SimpleReadOnlyTroveClientTest, cls).setUpClass()"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _in_check(self, cli_response, expected_values):"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        Function to check if expected values in CLI response."},{"line_number":44,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_3212a809","line":41,"updated":"2014-06-18 05:16:35.000000000","message":"You can move this method to cli/__init__.py file so that it could be used by other CLI tets as well in similar case.","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"7be167f829e448f30f0b4b0ed55421fd07588c7c","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _in_check(self, cli_response, expected_values):"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        Function to check if expected values in CLI response."},{"line_number":44,"context_line":"        \"\"\""},{"line_number":45,"context_line":"        values \u003d []"},{"line_number":46,"context_line":"        for item in cli_response:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_d9a6eec0","line":43,"updated":"2014-06-18 16:48:23.000000000","message":"I think it should be something like this\n\n    This function checks if expected values are in CLI response.","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"ff1767e6d90c541ca5349bcfb3cdad561c463241","unresolved":false,"context_lines":[{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def _in_check(self, cli_response, expected_values):"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        Function to check if expected values in CLI response."},{"line_number":44,"context_line":"        \"\"\""},{"line_number":45,"context_line":"        values \u003d []"},{"line_number":46,"context_line":"        for item in cli_response:"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_f2912047","line":43,"updated":"2014-06-18 05:16:35.000000000","message":"Sentence should modified or corrected.","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"7e5c3e5f0ab406daeb2e1ffd89356031933ed1d2","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def _in_check(self, cli_response, expected_values):"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        Function to check if expected values in CLI response."},{"line_number":44,"context_line":"        \"\"\""},{"line_number":45,"context_line":"        values \u003d []"},{"line_number":46,"context_line":"        for item in cli_response:"},{"line_number":47,"context_line":"            values.extend(item.values())"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_bcb37908","line":44,"updated":"2014-06-05 20:41:19.000000000","message":"This could be a single line\n        \"\"\"Function to check if expected values are in CLI response.\"\"\"\nNote the additional *are*","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"e9bb62b59868a941fdfe8e8861a3538dfd4a1461","unresolved":false,"context_lines":[{"line_number":41,"context_line":"    def _in_check(self, cli_response, expected_values):"},{"line_number":42,"context_line":"        \"\"\""},{"line_number":43,"context_line":"        Function to check if expected values in CLI response."},{"line_number":44,"context_line":"        \"\"\""},{"line_number":45,"context_line":"        values \u003d []"},{"line_number":46,"context_line":"        for item in cli_response:"},{"line_number":47,"context_line":"            values.extend(item.values())"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_1bcd3bbb","line":44,"in_reply_to":"1ae5cdf2_bcb37908","updated":"2014-06-23 04:30:05.000000000","message":"Peter: Yes you are right :)","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"7e5c3e5f0ab406daeb2e1ffd89356031933ed1d2","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        self._in_check(resp, exp_values)"},{"line_number":58,"context_line":""},{"line_number":59,"context_line":"    def test_flavor_show(self):"},{"line_number":60,"context_line":"        # Get falvor details for m1.tiny flavor (id\u003d1)"},{"line_number":61,"context_line":"        resp \u003d self.parser.listing(self.trove(\u0027flavor-show\u0027, params\u003d\u00271\u0027))"},{"line_number":62,"context_line":"        exp_names \u003d [\u0027Property\u0027, \u0027Value\u0027]"},{"line_number":63,"context_line":"        exp_values \u003d [\u0027m1.tiny\u0027, \u0027512\u0027, \u00271\u0027]"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_3c75a931","line":60,"updated":"2014-06-05 20:41:19.000000000","message":"falvor should be spelled flavor","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"ff1767e6d90c541ca5349bcfb3cdad561c463241","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.trove(\u0027bash-completion\u0027)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_help(self):"},{"line_number":78,"context_line":"        self.trove(\u0027help\u0027)"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    # Optional arguments:"},{"line_number":81,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_12ddac42","line":78,"updated":"2014-06-18 05:16:35.000000000","message":"Help output should be verified.","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":8205,"name":"Mh Raies","email":"raiesmh08@gmail.com","username":"raiesmh08"},"change_message_id":"ff1767e6d90c541ca5349bcfb3cdad561c463241","unresolved":false,"context_lines":[{"line_number":80,"context_line":"    # Optional arguments:"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    def test_version(self):"},{"line_number":83,"context_line":"        self.trove(\u0027\u0027, flags\u003d\u0027--version\u0027)"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def test_debug_list(self):"},{"line_number":86,"context_line":"        self.trove(\u0027list\u0027, flags\u003d\u0027--debug\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ae5cdf2_72e190fb","line":83,"updated":"2014-06-18 05:16:35.000000000","message":"Output of the version needed to verify.","commit_id":"d24d48834d684445686064f2a26823f895a4f3e8"},{"author":{"_account_id":10215,"name":"Peter Stachowski","email":"peter@tesora.com","username":"peterstac"},"change_message_id":"a1b574c43f4b5aaca5f5bb8969fc1f7d8cca997d","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    # Optional arguments:"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    def test_version(self):"},{"line_number":96,"context_line":"        self.trove(\u0027\u0027, flags\u003d\u0027--version\u0027)"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"    def test_debug_list(self):"},{"line_number":99,"context_line":"        self.trove(\u0027list\u0027, flags\u003d\u0027--debug\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_0d2b1083","line":96,"updated":"2014-07-09 16:46:20.000000000","message":"We should check that there is an actual value returned from this (a single line, non-zero length).  I just fixed a bug where \u0027trove-manage --version\u0027 was returning an empty string...\n\nSorry I didn\u0027t catch this earlier, but I think this is what Mh Raies was referring to in their patch set 7 comment.","commit_id":"c79eef864822daf87d9b793a4b6a03655e3aef35"}]}
