)]}'
{"tempest/api/identity/admin/v3/test_list_users.py":[{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"6bdd19d10c0e338f4018cdea38cb15fbd22098b7","unresolved":false,"context_lines":[{"line_number":31,"context_line":"        cls.data.setup_test_domain()"},{"line_number":32,"context_line":"        # Create user with Domain"},{"line_number":33,"context_line":"        cls.u1_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":34,"context_line":"        resp, cls.u1 \u003d cls.client.create_user("},{"line_number":35,"context_line":"            cls.u1_name, password\u003dcls.alt_password,"},{"line_number":36,"context_line":"            email\u003dcls.alt_email, domain_id\u003dcls.data.domain[\u0027id\u0027])"},{"line_number":37,"context_line":"        cls.data.v3_users.append(cls.u1)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_f63e528b","line":34,"updated":"2014-05-16 09:39:46.000000000","message":"unused variable \u0027resp\u0027.","commit_id":"bfbd834ee5429389538f3c276e858fc27e03c74a"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"6bdd19d10c0e338f4018cdea38cb15fbd22098b7","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        cls.user_ids.append(cls.u1[\u0027id\u0027])"},{"line_number":39,"context_line":"        # Create user with enabled"},{"line_number":40,"context_line":"        cls.u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":41,"context_line":"        resp, cls.u2 \u003d cls.client.create_user("},{"line_number":42,"context_line":"            cls.u2_name, password\u003dcls.alt_password,"},{"line_number":43,"context_line":"            email\u003dcls.alt_email, enabled\u003dFalse)"},{"line_number":44,"context_line":"        cls.data.v3_users.append(cls.u2)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_16401e06","line":41,"updated":"2014-05-16 09:39:46.000000000","message":"ditto","commit_id":"bfbd834ee5429389538f3c276e858fc27e03c74a"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"6bdd19d10c0e338f4018cdea38cb15fbd22098b7","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        cls.user_ids.append(cls.u2[\u0027id\u0027])"},{"line_number":46,"context_line":"        # Create a default user"},{"line_number":47,"context_line":"        cls.u3_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":48,"context_line":"        resp, cls.u3 \u003d cls.client.create_user("},{"line_number":49,"context_line":"            cls.u3_name, password\u003dcls.alt_password,"},{"line_number":50,"context_line":"            email\u003dcls.alt_email)"},{"line_number":51,"context_line":"        cls.data.v3_users.append(cls.u3)"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_36451a17","line":48,"updated":"2014-05-16 09:39:46.000000000","message":"ditto","commit_id":"bfbd834ee5429389538f3c276e858fc27e03c74a"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"6bdd19d10c0e338f4018cdea38cb15fbd22098b7","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":101,"context_line":"    def test_get_user(self):"},{"line_number":102,"context_line":"        # Get a user detail"},{"line_number":103,"context_line":"        resp, user \u003d self.client.get_user(self.u1[\u0027id\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(self.u1[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_b6504ad5","line":103,"updated":"2014-05-16 09:39:46.000000000","message":"ditto","commit_id":"bfbd834ee5429389538f3c276e858fc27e03c74a"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"8b1cb8ad2e77ddc81355694567a956bdad0f1b3e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":101,"context_line":"    def test_get_user(self):"},{"line_number":102,"context_line":"        # Get a user detail"},{"line_number":103,"context_line":"        _, user \u003d self.client.get_user(self.u1[\u0027id\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(self.u1[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_358a641b","line":103,"updated":"2014-06-04 07:49:59.000000000","message":"Its better to receive the response code and validate it for verification instead of ignoring it.","commit_id":"eb1a0bdbdd53b0ccd02518ac4ca335e5f5c43e78"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"8b1cb8ad2e77ddc81355694567a956bdad0f1b3e","unresolved":false,"context_lines":[{"line_number":101,"context_line":"    def test_get_user(self):"},{"line_number":102,"context_line":"        # Get a user detail"},{"line_number":103,"context_line":"        _, user \u003d self.client.get_user(self.u1[\u0027id\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(self.u1[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"class UsersV3TestXML(UsersV3TestJSON):"}],"source_content_type":"text/x-python","patch_set":8,"id":"1ae5cdf2_d5a14095","line":104,"updated":"2014-06-04 07:49:59.000000000","message":"While fetching the details of the users, just verifying the ID is not enough. IMO other details should also be verified.\nlike : name, email, domain_id.","commit_id":"eb1a0bdbdd53b0ccd02518ac4ca335e5f5c43e78"},{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"131a9c8908c12e88bac2502dda448d94416dcfdd","unresolved":false,"context_lines":[{"line_number":102,"context_line":"        # Get a user detail"},{"line_number":103,"context_line":"        resp, user \u003d self.client.get_user(self.u1[\u0027id\u0027])"},{"line_number":104,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":105,"context_line":"        self.assertEqual(self.u1[\u0027id\u0027], user[\u0027id\u0027])"},{"line_number":106,"context_line":"        self.assertEqual(self.u1_name, user[\u0027name\u0027])"},{"line_number":107,"context_line":"        self.assertEqual(self.alt_email, user[\u0027email\u0027])"},{"line_number":108,"context_line":"        self.assertEqual(self.data.domain[\u0027id\u0027], user[\u0027domain_id\u0027])"}],"source_content_type":"text/x-python","patch_set":9,"id":"1ae5cdf2_ee8d86d4","line":105,"updated":"2014-06-04 11:41:03.000000000","message":"use a loop instead.\nlike :\nexpected \u003d {\u0027id\u0027: self.u1[\u0027id\u0027], \u0027name\u0027: self.u1_name, \u0027email\u0027: self.alt_email, \u0027domain_id\u0027: self.data.domain[\u0027id\u0027]}\n\nfor key, value in expected.iteritems():\n    self.assertEqual(value, user[key])","commit_id":"e2e6ea7e3d12bacea1867a10e6214cec5b351209"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7620c0323fbff4c0e44dbf19f2bf72f5e812dbcd","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            cls.u3_name, password\u003dcls.alt_password,"},{"line_number":50,"context_line":"            email\u003dcls.alt_email)"},{"line_number":51,"context_line":"        cls.data.v3_users.append(cls.u3)"},{"line_number":52,"context_line":"        cls.user_ids.append(cls.u3[\u0027id\u0027])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":55,"context_line":"    def test_list_user_domains(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_3b822a00","line":52,"updated":"2014-06-05 08:42:19.000000000","message":"Suggesstion to reduce variable and repeated code.\r\n\r\n-create a list of dict which save all data - name, user data\r\n- use for loop to create users\r\n\r\npseudo code -\r\ncls.users \u003d []\r\nuser \u003d {`name`: `data`}\r\nparam \u003d {domain_id\u003dcls.data.domain[\u0027id\u0027], enabled\u003dFalse, None }\r\nfor i in param :\r\n    user[`name`] \u003d data_utils.rand_name(\u0027test_user_\u0027)\r\n    _, user[`data`] \u003d cls.client.create_user(\r\n        user[`name`] , password\u003dcls.alt_password,\r\n        email\u003dcls.alt_email, i)\r\n    cls.data.v3_users.append(user[`data`])\r\n    cls.users.append(user)","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"8e97e309c98ee160ab1dec252f51d5e9632bd89b","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            cls.u3_name, password\u003dcls.alt_password,"},{"line_number":50,"context_line":"            email\u003dcls.alt_email)"},{"line_number":51,"context_line":"        cls.data.v3_users.append(cls.u3)"},{"line_number":52,"context_line":"        cls.user_ids.append(cls.u3[\u0027id\u0027])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":55,"context_line":"    def test_list_user_domains(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_6f4307af","line":52,"in_reply_to":"1ae5cdf2_3b822a00","updated":"2014-06-05 13:44:11.000000000","message":"Hi Ghanshyam Mann,\n\nI will try to implement in next patch set. I am working on it. Based on the above pseudo code, I have started coding, but I am facing issue while passing key and value from param dict. It is taking key as a string, which has to be passed as an argument to the create_user method.\n\nThanks,\nHarika","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09f6f16960f1e18725f3c13071bd0ab9a48707db","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            cls.u3_name, password\u003dcls.alt_password,"},{"line_number":50,"context_line":"            email\u003dcls.alt_email)"},{"line_number":51,"context_line":"        cls.data.v3_users.append(cls.u3)"},{"line_number":52,"context_line":"        cls.user_ids.append(cls.u3[\u0027id\u0027])"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":55,"context_line":"    def test_list_user_domains(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_2eaa93d4","line":52,"in_reply_to":"1ae5cdf2_6f4307af","updated":"2014-06-09 06:03:07.000000000","message":"I see. That can work with changes in create_user() which takes keyword arg. But it does not make sense to do it in this patch. So I m ok with existing code.\nThose optimization can be done later.","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7620c0323fbff4c0e44dbf19f2bf72f5e812dbcd","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":93,"context_line":"        for u in body:"},{"line_number":94,"context_line":"            fetched_ids.append(u[\u0027id\u0027])"},{"line_number":95,"context_line":"        missing_users \u003d [u for u in self.user_ids if u not in fetched_ids]"},{"line_number":96,"context_line":"        self.assertEqual(0, len(missing_users),"},{"line_number":97,"context_line":"                         \"Failed to find user %s in fetched list\" %"},{"line_number":98,"context_line":"                         \u0027, \u0027.join(m_user for m_user in missing_users))"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_5bb376e8","line":95,"updated":"2014-06-05 08:42:19.000000000","message":"u can make list of ids from self.users as it is needed by this test only.","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"8e97e309c98ee160ab1dec252f51d5e9632bd89b","unresolved":false,"context_lines":[{"line_number":92,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":93,"context_line":"        for u in body:"},{"line_number":94,"context_line":"            fetched_ids.append(u[\u0027id\u0027])"},{"line_number":95,"context_line":"        missing_users \u003d [u for u in self.user_ids if u not in fetched_ids]"},{"line_number":96,"context_line":"        self.assertEqual(0, len(missing_users),"},{"line_number":97,"context_line":"                         \"Failed to find user %s in fetched list\" %"},{"line_number":98,"context_line":"                         \u0027, \u0027.join(m_user for m_user in missing_users))"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_cf0b3b7b","line":95,"in_reply_to":"1ae5cdf2_5bb376e8","updated":"2014-06-05 13:44:11.000000000","message":"Yes, I will change the code accordingly in next patch.","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7d313684fd260aeb0e7faa7d419da7c221891292","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        _, cls.u3 \u003d cls.client.create_user("},{"line_number":46,"context_line":"            cls.u3_name, password\u003dcls.alt_password,"},{"line_number":47,"context_line":"            email\u003dcls.alt_email)"},{"line_number":48,"context_line":"        cls.data.v3_users.append(cls.u3)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":51,"context_line":"    def test_list_user_domains(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_3eadb331","line":48,"updated":"2014-06-13 05:59:12.000000000","message":"You can make below variable as local instead of class variable.\n-cls.alt_user\n-cls.alt_password\n-cls.alt_email\n-cls.u1_name\n-cls.u1\n-cls.u2_name\n-cls.u2\n-cls.u3_name\n-cls.u4","commit_id":"dc9ac2185bfe5c236d57952039e87c71d59a441e"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"2c105d68b3e4ee6c66ef29fa31a2eefb1ab4d5b6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"        _, cls.u3 \u003d cls.client.create_user("},{"line_number":46,"context_line":"            cls.u3_name, password\u003dcls.alt_password,"},{"line_number":47,"context_line":"            email\u003dcls.alt_email)"},{"line_number":48,"context_line":"        cls.data.v3_users.append(cls.u3)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":51,"context_line":"    def test_list_user_domains(self):"}],"source_content_type":"text/x-python","patch_set":11,"id":"1ae5cdf2_f207f715","line":48,"in_reply_to":"1ae5cdf2_3eadb331","updated":"2014-06-13 11:46:18.000000000","message":"Done","commit_id":"dc9ac2185bfe5c236d57952039e87c71d59a441e"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"0d1a5ec1f89f48f819f09a319b795fe0089d231d","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            u1_name, password\u003dalt_password,"},{"line_number":35,"context_line":"            email\u003dcls.alt_email, domain_id\u003dcls.data.domain[\u0027id\u0027])"},{"line_number":36,"context_line":"        cls.data.v3_users.append(u1)"},{"line_number":37,"context_line":"        # Create user with enabled"},{"line_number":38,"context_line":"        u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":39,"context_line":"        _, u2 \u003d cls.client.create_user("},{"line_number":40,"context_line":"            u2_name, password\u003dalt_password,"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_f35a674f","line":37,"updated":"2014-06-30 19:58:28.000000000","message":"not enabled","commit_id":"5d125e23ce8262b9d16f46e796def2dbdc0597c3"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"2f9918cab1a2460b2981ebbbb25094e2ccd296d8","unresolved":false,"context_lines":[{"line_number":34,"context_line":"            u1_name, password\u003dalt_password,"},{"line_number":35,"context_line":"            email\u003dcls.alt_email, domain_id\u003dcls.data.domain[\u0027id\u0027])"},{"line_number":36,"context_line":"        cls.data.v3_users.append(u1)"},{"line_number":37,"context_line":"        # Create user with enabled"},{"line_number":38,"context_line":"        u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":39,"context_line":"        _, u2 \u003d cls.client.create_user("},{"line_number":40,"context_line":"            u2_name, password\u003dalt_password,"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_ca411a0d","line":37,"in_reply_to":"baada198_f35a674f","updated":"2014-07-01 06:53:44.000000000","message":"Done","commit_id":"5d125e23ce8262b9d16f46e796def2dbdc0597c3"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"0d1a5ec1f89f48f819f09a319b795fe0089d231d","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            self.data.v3_users[2][\u0027id\u0027], map(lambda x: x[\u0027id\u0027], body))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":65,"context_line":"    def test_list_users_with_enabled(self):"},{"line_number":66,"context_line":"        # List the users with enabled"},{"line_number":67,"context_line":"        params \u003d {\u0027enabled\u0027: False}"},{"line_number":68,"context_line":"        resp, body \u003d self.client.get_users(params)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_b340ef57","line":65,"updated":"2014-06-30 19:58:28.000000000","message":"test_list_users_not_enabled","commit_id":"5d125e23ce8262b9d16f46e796def2dbdc0597c3"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"2f9918cab1a2460b2981ebbbb25094e2ccd296d8","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            self.data.v3_users[2][\u0027id\u0027], map(lambda x: x[\u0027id\u0027], body))"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":65,"context_line":"    def test_list_users_with_enabled(self):"},{"line_number":66,"context_line":"        # List the users with enabled"},{"line_number":67,"context_line":"        params \u003d {\u0027enabled\u0027: False}"},{"line_number":68,"context_line":"        resp, body \u003d self.client.get_users(params)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_4abeea00","line":65,"in_reply_to":"baada198_b340ef57","updated":"2014-07-01 06:53:44.000000000","message":"Done","commit_id":"5d125e23ce8262b9d16f46e796def2dbdc0597c3"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"0d1a5ec1f89f48f819f09a319b795fe0089d231d","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":65,"context_line":"    def test_list_users_with_enabled(self):"},{"line_number":66,"context_line":"        # List the users with enabled"},{"line_number":67,"context_line":"        params \u003d {\u0027enabled\u0027: False}"},{"line_number":68,"context_line":"        resp, body \u003d self.client.get_users(params)"},{"line_number":69,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_d32483c8","line":66,"updated":"2014-06-30 19:58:28.000000000","message":"Ditto","commit_id":"5d125e23ce8262b9d16f46e796def2dbdc0597c3"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"2f9918cab1a2460b2981ebbbb25094e2ccd296d8","unresolved":false,"context_lines":[{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":65,"context_line":"    def test_list_users_with_enabled(self):"},{"line_number":66,"context_line":"        # List the users with enabled"},{"line_number":67,"context_line":"        params \u003d {\u0027enabled\u0027: False}"},{"line_number":68,"context_line":"        resp, body \u003d self.client.get_users(params)"},{"line_number":69,"context_line":"        self.assertEqual(200, resp.status)"}],"source_content_type":"text/x-python","patch_set":12,"id":"baada198_8a3722b0","line":66,"in_reply_to":"baada198_d32483c8","updated":"2014-07-01 06:53:44.000000000","message":"Done","commit_id":"5d125e23ce8262b9d16f46e796def2dbdc0597c3"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"d8a18ec9fb6fb3fa54de32bdc864feea235eee57","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        u1_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":33,"context_line":"        _, u1 \u003d cls.client.create_user("},{"line_number":34,"context_line":"            u1_name, password\u003dalt_password,"},{"line_number":35,"context_line":"            email\u003dcls.alt_email, domain_id\u003dcls.data.domain[\u0027id\u0027])"},{"line_number":36,"context_line":"        cls.data.v3_users.append(u1)"},{"line_number":37,"context_line":"        # Create user with not enabled"},{"line_number":38,"context_line":"        u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_8306241f","line":35,"updated":"2014-07-01 11:15:21.000000000","message":"Need to check the result of create_user?","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"},{"author":{"_account_id":1192,"name":"David Kranz","email":"dkranz@redhat.com","username":"david-kranz"},"change_message_id":"b98f8b35e973e72d16ab391b779188a0832d376a","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        u1_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":33,"context_line":"        _, u1 \u003d cls.client.create_user("},{"line_number":34,"context_line":"            u1_name, password\u003dalt_password,"},{"line_number":35,"context_line":"            email\u003dcls.alt_email, domain_id\u003dcls.data.domain[\u0027id\u0027])"},{"line_number":36,"context_line":"        cls.data.v3_users.append(u1)"},{"line_number":37,"context_line":"        # Create user with not enabled"},{"line_number":38,"context_line":"        u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_e9f9774e","line":35,"in_reply_to":"baada198_8306241f","updated":"2014-07-01 15:54:22.000000000","message":"This check should be done in the client. I was going to hit keystone next for client checking.","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"4f50fbfa3f06e931c33fdb36d7d14cb64f9d16cc","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        u1_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":33,"context_line":"        _, u1 \u003d cls.client.create_user("},{"line_number":34,"context_line":"            u1_name, password\u003dalt_password,"},{"line_number":35,"context_line":"            email\u003dcls.alt_email, domain_id\u003dcls.data.domain[\u0027id\u0027])"},{"line_number":36,"context_line":"        cls.data.v3_users.append(u1)"},{"line_number":37,"context_line":"        # Create user with not enabled"},{"line_number":38,"context_line":"        u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_75d44220","line":35,"in_reply_to":"baada198_e9f9774e","updated":"2014-07-02 05:53:33.000000000","message":"In Addition to David\u0027s feedback, generally; we validate the response code of the rest API call to the purpose of the test. But few reviewers these days are looking for response code validation for each rest API call. Hence as David said it should be a code change in client side.","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"d8a18ec9fb6fb3fa54de32bdc864feea235eee57","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        u2_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":39,"context_line":"        _, u2 \u003d cls.client.create_user("},{"line_number":40,"context_line":"            u2_name, password\u003dalt_password,"},{"line_number":41,"context_line":"            email\u003dcls.alt_email, enabled\u003dFalse)"},{"line_number":42,"context_line":"        cls.data.v3_users.append(u2)"},{"line_number":43,"context_line":"        # Create a default user"},{"line_number":44,"context_line":"        u3_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_a303280e","line":41,"updated":"2014-07-01 11:15:21.000000000","message":"ditto","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"d8a18ec9fb6fb3fa54de32bdc864feea235eee57","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        u3_name \u003d data_utils.rand_name(\u0027test_user_\u0027)"},{"line_number":45,"context_line":"        _, u3 \u003d cls.client.create_user("},{"line_number":46,"context_line":"            u3_name, password\u003dalt_password,"},{"line_number":47,"context_line":"            email\u003dcls.alt_email)"},{"line_number":48,"context_line":"        cls.data.v3_users.append(u3)"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_ceff6300","line":47,"updated":"2014-07-01 11:15:21.000000000","message":"ditto","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"541a46579920b6d768311b41a3f8d4f537da657c","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self.assertNotIn("},{"line_number":88,"context_line":"            self.data.v3_users[1][\u0027name\u0027], map(lambda x: x[\u0027name\u0027], body))"},{"line_number":89,"context_line":"        self.assertNotIn("},{"line_number":90,"context_line":"            self.data.v3_users[2][\u0027name\u0027], map(lambda x: x[\u0027name\u0027], body))"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":93,"context_line":"    def test_list_users(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"baada198_185f0577","line":90,"updated":"2014-07-08 10:54:50.000000000","message":"Tests test_list_user_domains,test_list_users_with_not_enabled and test_list_users_with_name have almost the same structure. I think it is better to make a help method:\n     def _list_users_with_params(params, key):\n         resp, body \u003d self.client.get_users(params)\n         self.assertEqual(200, resp.status)\n         self.assertIn(self.data.v3_users[0][key], map(lambda x: x[key], body))\n         self.assertNotIn(self.data.v3_users[1][key], map(lambda x: x[key], body))\n         self.assertNotIn(self.data.v3_users[2][key], map(lambda x: x[key], body))\nThen in tests\n     def test_list_projects_with_name(self):\n          self._list_projects_with_params({\u0027name\u0027: self.p1_name}, \u0027name\u0027)\n\nAnd change enable parameter for self.data.v3_users[0] to False and self.data.v3_users[0] to True","commit_id":"fc1943b220c1391120d9c928f70f887aa9b847ef"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"2ea6e851069e42608d3176865d4240f50b6380c9","unresolved":false,"context_lines":[{"line_number":87,"context_line":"        self.assertNotIn("},{"line_number":88,"context_line":"            self.data.v3_users[1][\u0027name\u0027], map(lambda x: x[\u0027name\u0027], body))"},{"line_number":89,"context_line":"        self.assertNotIn("},{"line_number":90,"context_line":"            self.data.v3_users[2][\u0027name\u0027], map(lambda x: x[\u0027name\u0027], body))"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"    @test.attr(type\u003d\u0027gate\u0027)"},{"line_number":93,"context_line":"    def test_list_users(self):"}],"source_content_type":"text/x-python","patch_set":15,"id":"baada198_4396654d","line":90,"in_reply_to":"baada198_185f0577","updated":"2014-07-11 13:16:55.000000000","message":"Done","commit_id":"fc1943b220c1391120d9c928f70f887aa9b847ef"},{"author":{"_account_id":7249,"name":"Ann Taraday","email":"akamyshnikova@mirantis.com","username":"AKamyshnikova"},"change_message_id":"541a46579920b6d768311b41a3f8d4f537da657c","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        resp, body \u003d self.client.get_users()"},{"line_number":97,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":98,"context_line":"        for u in body:"},{"line_number":99,"context_line":"            fetched_ids.append(u[\u0027id\u0027])"},{"line_number":100,"context_line":"        missing_users \u003d [u[\u0027id\u0027] for u in self.data.v3_users"},{"line_number":101,"context_line":"                         if u[\u0027id\u0027] not in fetched_ids]"},{"line_number":102,"context_line":"        self.assertEqual(0, len(missing_users),"}],"source_content_type":"text/x-python","patch_set":15,"id":"baada198_98d955f7","line":99,"updated":"2014-07-08 10:54:50.000000000","message":"Lines 94, 98 and 99 could be replased with\n\n     fetched_ids \u003d [u[\u0027id\u0027] for u in body]","commit_id":"fc1943b220c1391120d9c928f70f887aa9b847ef"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"2ea6e851069e42608d3176865d4240f50b6380c9","unresolved":false,"context_lines":[{"line_number":96,"context_line":"        resp, body \u003d self.client.get_users()"},{"line_number":97,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":98,"context_line":"        for u in body:"},{"line_number":99,"context_line":"            fetched_ids.append(u[\u0027id\u0027])"},{"line_number":100,"context_line":"        missing_users \u003d [u[\u0027id\u0027] for u in self.data.v3_users"},{"line_number":101,"context_line":"                         if u[\u0027id\u0027] not in fetched_ids]"},{"line_number":102,"context_line":"        self.assertEqual(0, len(missing_users),"}],"source_content_type":"text/x-python","patch_set":15,"id":"baada198_6393695b","line":99,"in_reply_to":"baada198_98d955f7","updated":"2014-07-11 13:16:55.000000000","message":"Done","commit_id":"fc1943b220c1391120d9c928f70f887aa9b847ef"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"29f76a3ea9a16b372109f09148882dfd445456f6","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":27,"context_line":"        self.assertIn(self.data.v3_users[0][key], map(lambda x: x[key], body))"},{"line_number":28,"context_line":"        self.assertNotIn(self.data.v3_users[1][key],"},{"line_number":29,"context_line":"                         map(lambda x: x[key], body))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":17,"id":"baada198_d8f1946b","line":29,"updated":"2014-07-11 02:18:05.000000000","message":"This internal method seems a little difficult because the relation between the method and the callers is sticky.\n\nIn this code, we need to know/keep\n\n - self.data.v3_users[0] is a domain user.\n - self.data.v3_users[1] is not a domain user.\n - the argument \u0027param\u0027 should be for getting a domain user info\n\nSo how about changing this patch to\n\n - set a domain user as self.domain_user\n - set a non-domain user as self.non_domain_user\n - pass self.domain_user/self.non_domain_user also to _list_users_with_params() clearly\n\n?","commit_id":"e4d5363577c1ee9e0b88b3d09b38df3f70af0c36"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"b65b8725efee3f6dccbe7466d1eb45ee7d62a859","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        self.assertEqual(200, resp.status)"},{"line_number":27,"context_line":"        self.assertIn(self.data.v3_users[0][key], map(lambda x: x[key], body))"},{"line_number":28,"context_line":"        self.assertNotIn(self.data.v3_users[1][key],"},{"line_number":29,"context_line":"                         map(lambda x: x[key], body))"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    @classmethod"},{"line_number":32,"context_line":"    def setUpClass(cls):"}],"source_content_type":"text/x-python","patch_set":17,"id":"baada198_437d851b","line":29,"in_reply_to":"baada198_d8f1946b","updated":"2014-07-11 13:27:49.000000000","message":"Done","commit_id":"e4d5363577c1ee9e0b88b3d09b38df3f70af0c36"}],"tempest/api/identity/admin/v3/test_users.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"7620c0323fbff4c0e44dbf19f2bf72f5e812dbcd","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.assertEqual(201, resp.status)"},{"line_number":68,"context_line":"        self.assertEqual(name, user[\u0027name\u0027])"},{"line_number":69,"context_line":"        self.assertEqual(self.data.domain[\u0027id\u0027], user[\u0027domain_id\u0027])"},{"line_number":70,"context_line":"        self.assertEqual(self.alt_email, user[\u0027email\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":73,"context_line":"    def test_user_authentication(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_fb2e02fa","line":70,"updated":"2014-06-05 08:42:19.000000000","message":"Above 3 test can be merged on same line as comment in test_list_users.py .","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"79c20d4d1c49b53159fe1b0c9b3badd875d289a5","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.assertEqual(201, resp.status)"},{"line_number":68,"context_line":"        self.assertEqual(name, user[\u0027name\u0027])"},{"line_number":69,"context_line":"        self.assertEqual(self.data.domain[\u0027id\u0027], user[\u0027domain_id\u0027])"},{"line_number":70,"context_line":"        self.assertEqual(self.alt_email, user[\u0027email\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":73,"context_line":"    def test_user_authentication(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_3059e95b","line":70,"in_reply_to":"1ae5cdf2_4ec35f8a","updated":"2014-06-10 02:01:57.000000000","message":"There is a feedback to make another commit on code changes related to test_users.py file. Hence will submit these modifications in the corresponding commit.","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"09f6f16960f1e18725f3c13071bd0ab9a48707db","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.assertEqual(201, resp.status)"},{"line_number":68,"context_line":"        self.assertEqual(name, user[\u0027name\u0027])"},{"line_number":69,"context_line":"        self.assertEqual(self.data.domain[\u0027id\u0027], user[\u0027domain_id\u0027])"},{"line_number":70,"context_line":"        self.assertEqual(self.alt_email, user[\u0027email\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":73,"context_line":"    def test_user_authentication(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_4ec35f8a","line":70,"in_reply_to":"1ae5cdf2_6f1a27c7","updated":"2014-06-09 06:03:07.000000000","message":"ditto.\nBut I would like to verify those created users in these test. Add a helper method _verfiy_user() which gets the user with input id to verify that created user exist in get/list.\nUse that helper method in all three tests.","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"8e97e309c98ee160ab1dec252f51d5e9632bd89b","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.assertEqual(201, resp.status)"},{"line_number":68,"context_line":"        self.assertEqual(name, user[\u0027name\u0027])"},{"line_number":69,"context_line":"        self.assertEqual(self.data.domain[\u0027id\u0027], user[\u0027domain_id\u0027])"},{"line_number":70,"context_line":"        self.assertEqual(self.alt_email, user[\u0027email\u0027])"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"},{"line_number":73,"context_line":"    def test_user_authentication(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1ae5cdf2_6f1a27c7","line":70,"in_reply_to":"1ae5cdf2_fb2e02fa","updated":"2014-06-05 13:44:11.000000000","message":"Yes,I will made the code change accordingly in next patch","commit_id":"31d08de3b9a8b43ca77dad6242ca912da2acb5e8"}],"tempest/api/identity/admin/v3/test_users_negative.py":[{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"f4e99d060877023d0f927179699e37abcb14051e","unresolved":false,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import uuid"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tempest.api.identity import base"}],"source_content_type":"text/x-python","patch_set":4,"id":"7adec928_56e9c6e4","line":15,"updated":"2014-05-16 09:47:25.000000000","message":"We are still in moratorium on new negative tests.\n\nhttp://lists.openstack.org/pipermail/openstack-dev/2013-November/018748.html","commit_id":"bfbd834ee5429389538f3c276e858fc27e03c74a"}],"tempest/api/identity/base.py":[{"author":{"_account_id":10966,"name":"Abhijeet Jain","email":"abhijeetjpjain@gmail.com","username":"Abhijeet.Jain"},"change_message_id":"3ef098d8109bb7faefc5e554b03c6e53b602b409","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            \"\"\"Set up a test domain.\"\"\""},{"line_number":190,"context_line":"            self.test_domain \u003d data_utils.rand_name(\u0027test_domain_\u0027)"},{"line_number":191,"context_line":"            self.test_description \u003d data_utils.rand_name(\u0027desc_\u0027)"},{"line_number":192,"context_line":"            resp, self.domain \u003d self.client.create_domain("},{"line_number":193,"context_line":"                name\u003dself.test_domain,"},{"line_number":194,"context_line":"                description\u003dself.test_description)"},{"line_number":195,"context_line":"            self.domains.append(self.domain)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7adec928_66afed94","line":192,"updated":"2014-05-16 13:30:45.000000000","message":"unused variable \u0027resp\u0027","commit_id":"974ba4a9ffe55594591d638fe72fa78f9c53e35f"},{"author":{"_account_id":5292,"name":"Christopher Yeoh","email":"cbkyeoh@gmail.com","username":"cyeoh-0"},"change_message_id":"d8a18ec9fb6fb3fa54de32bdc864feea235eee57","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        def setup_test_domain(self):"},{"line_number":190,"context_line":"            \"\"\"Set up a test domain.\"\"\""},{"line_number":191,"context_line":"            self.test_domain \u003d data_utils.rand_name(\u0027test_domain_\u0027)"},{"line_number":192,"context_line":"            self.test_description \u003d data_utils.rand_name(\u0027desc_\u0027)"},{"line_number":193,"context_line":"            _, self.domain \u003d self.client.create_domain("},{"line_number":194,"context_line":"                name\u003dself.test_domain,"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_a38de87d","line":191,"updated":"2014-07-01 11:15:21.000000000","message":"nit - rand_name already adds a \u0027-\u0027 suffix so do you need to add \u0027_\u0027 here?\n\n(I think historically it didn\u0027t so others in this file manually add a suffix","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"4f50fbfa3f06e931c33fdb36d7d14cb64f9d16cc","unresolved":false,"context_lines":[{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        def setup_test_domain(self):"},{"line_number":190,"context_line":"            \"\"\"Set up a test domain.\"\"\""},{"line_number":191,"context_line":"            self.test_domain \u003d data_utils.rand_name(\u0027test_domain_\u0027)"},{"line_number":192,"context_line":"            self.test_description \u003d data_utils.rand_name(\u0027desc_\u0027)"},{"line_number":193,"context_line":"            _, self.domain \u003d self.client.create_domain("},{"line_number":194,"context_line":"                name\u003dself.test_domain,"}],"source_content_type":"text/x-python","patch_set":13,"id":"baada198_351baa1c","line":191,"in_reply_to":"baada198_a38de87d","updated":"2014-07-02 05:53:33.000000000","message":"Done","commit_id":"77978590727352188cc5477b10f2e0256cc2b27a"}],"tempest/services/identity/v3/json/identity_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"cb1564ebaf7968445cbd0bb199a1d98e891f933a","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        body \u003d json.loads(body)"},{"line_number":82,"context_line":"        return resp, body[\u0027projects\u0027]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def get_users(self, params\u003dNone):"},{"line_number":85,"context_line":"        \"\"\"Get the list of users.\"\"\""},{"line_number":86,"context_line":"        url \u003d \u0027users\u0027"},{"line_number":87,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_b29a146c","line":84,"updated":"2014-06-04 00:07:09.000000000","message":"I think using kwargs here would make more sense then passing in a dictionary.","commit_id":"3cf8ea740fd5fd177f4907b70b851862635773df"},{"author":{"_account_id":6455,"name":"Harika Vakadi","email":"harika_vakadi@persistent.co.in","username":"harika-vakadi"},"change_message_id":"a16a89219280ea9c4f7b9c3efb19bd15a004200e","unresolved":false,"context_lines":[{"line_number":81,"context_line":"        body \u003d json.loads(body)"},{"line_number":82,"context_line":"        return resp, body[\u0027projects\u0027]"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def get_users(self, params\u003dNone):"},{"line_number":85,"context_line":"        \"\"\"Get the list of users.\"\"\""},{"line_number":86,"context_line":"        url \u003d \u0027users\u0027"},{"line_number":87,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_f55f1c0d","line":84,"in_reply_to":"1ae5cdf2_b29a146c","updated":"2014-06-04 07:37:33.000000000","message":"Hi Matthew,\n\n\"params\u003dNone\" is being used in similar methods like list_servers in /services/compute/json/servers_client.py.Where in, we will send the filter parameter or string to be appended to the URI.\n\nAnd kwargs is generally used to send optional arguments in request body.\n\nPlease correct me if I am wrong.\n\nRegards,\nHarika","commit_id":"3cf8ea740fd5fd177f4907b70b851862635773df"}],"tempest/services/identity/v3/xml/identity_client.py":[{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"cb1564ebaf7968445cbd0bb199a1d98e891f933a","unresolved":false,"context_lines":[{"line_number":143,"context_line":"        body \u003d self._parse_projects(etree.fromstring(body))"},{"line_number":144,"context_line":"        return resp, body"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"    def get_users(self, params\u003dNone):"},{"line_number":147,"context_line":"        \"\"\"Get the list of users.\"\"\""},{"line_number":148,"context_line":"        url \u003d \u0027users\u0027"},{"line_number":149,"context_line":"        if params:"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_d28a401a","line":146,"updated":"2014-06-04 00:07:09.000000000","message":"same here","commit_id":"3cf8ea740fd5fd177f4907b70b851862635773df"}]}
