)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"9e9e9e3e8e673cf06a9642083e39af17641394f9","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add domain functional tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds functional tests for domains. For now, the tests are created under"},{"line_number":10,"context_line":"a single class. Once we have a gate that runs against LDAP,"},{"line_number":11,"context_line":"we will create a class that only contains readonly tests and"},{"line_number":12,"context_line":"a tox call for it (e.g tox -e functional-readonly)."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aa08908_7be04ffb","line":10,"range":{"start_line":10,"start_character":16,"end_line":10,"end_character":58},"updated":"2016-06-15 17:44:40.000000000","message":"I didn\u0027t get the relation between this domains tests and a gate that runs against LDAP, can you add more details about this?","commit_id":"c92a37edd579892a6931ad788b6cf30dafa09904"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5c0456822db84381cb819aa6344c5063ba6e9219","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add domain functional tests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Adds functional tests for domains. For now, the tests are created under"},{"line_number":10,"context_line":"a single class. Once we have a gate that runs against LDAP,"},{"line_number":11,"context_line":"we will create a class that only contains readonly tests and"},{"line_number":12,"context_line":"a tox call for it (e.g tox -e functional-readonly)."},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"7aa08908_011a517c","line":10,"range":{"start_line":10,"start_character":16,"end_line":10,"end_character":58},"in_reply_to":"7aa08908_7be04ffb","updated":"2016-06-16 12:46:28.000000000","message":"as per the rest of this statement, we will need a \"class that only contains readonly tests\" (because LDAP support is gonna be readonly soon)","commit_id":"c92a37edd579892a6931ad788b6cf30dafa09904"}],"keystoneclient/tests/functional/v3/client_fixtures.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"eb10cf6073d281673543b9a058f2647cefc4ec8b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def setUp(self):"},{"line_number":61,"context_line":"        super(Domain, self).setUp()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Only disabled domains can be updated or deleted"},{"line_number":64,"context_line":"        self.ref \u003d {\u0027name\u0027: RESOURCE_NAME_PREFIX + uuid.uuid4().hex,"},{"line_number":65,"context_line":"                    \u0027description\u0027: uuid.uuid4().hex,"},{"line_number":66,"context_line":"                    \u0027enabled\u0027: False}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_b49b7d16","line":63,"range":{"start_line":63,"start_character":36,"end_line":63,"end_character":46},"updated":"2016-06-17 13:59:25.000000000","message":"This is not true for updates. \n\nAlso, I think a better approach is to create an enabled domain and disable it right before deleting on cleanup. To accomplish this, add\n\n    self.addCleanup(self.client.domains.update, self.entity, enabled\u003dFalse)\n   \n\n*after* the addCleanup in L68. You need to add it after because cleanups are executed in the reverse order they\u0027re added [1].\n\n[1] https://docs.python.org/2.7/library/unittest.html#unittest.TestCase.addCleanup","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"4d1de677f2eb4432e01d853436d7288d0e702a7a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def setUp(self):"},{"line_number":61,"context_line":"        super(Domain, self).setUp()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Only disabled domains can be updated or deleted"},{"line_number":64,"context_line":"        self.ref \u003d {\u0027name\u0027: RESOURCE_NAME_PREFIX + uuid.uuid4().hex,"},{"line_number":65,"context_line":"                    \u0027description\u0027: uuid.uuid4().hex,"},{"line_number":66,"context_line":"                    \u0027enabled\u0027: False}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_924ace81","line":63,"range":{"start_line":63,"start_character":36,"end_line":63,"end_character":46},"in_reply_to":"7aa08908_12737e81","updated":"2016-06-17 15:29:43.000000000","message":"Done","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8f1f6ad3658cff090fb6fedf12f0aa5a8f3c2cd8","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def setUp(self):"},{"line_number":61,"context_line":"        super(Domain, self).setUp()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Only disabled domains can be updated or deleted"},{"line_number":64,"context_line":"        self.ref \u003d {\u0027name\u0027: RESOURCE_NAME_PREFIX + uuid.uuid4().hex,"},{"line_number":65,"context_line":"                    \u0027description\u0027: uuid.uuid4().hex,"},{"line_number":66,"context_line":"                    \u0027enabled\u0027: False}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_12737e81","line":63,"range":{"start_line":63,"start_character":36,"end_line":63,"end_character":46},"in_reply_to":"7aa08908_b49b7d16","updated":"2016-06-17 14:39:30.000000000","message":"++","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"4d1de677f2eb4432e01d853436d7288d0e702a7a","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    def setUp(self):"},{"line_number":61,"context_line":"        super(Domain, self).setUp()"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        # Only disabled domains can be updated or deleted"},{"line_number":64,"context_line":"        self.ref \u003d {\u0027name\u0027: RESOURCE_NAME_PREFIX + uuid.uuid4().hex,"},{"line_number":65,"context_line":"                    \u0027description\u0027: uuid.uuid4().hex,"},{"line_number":66,"context_line":"                    \u0027enabled\u0027: False}"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_527ea6af","line":63,"range":{"start_line":63,"start_character":36,"end_line":63,"end_character":46},"in_reply_to":"7aa08908_b49b7d16","updated":"2016-06-17 15:29:43.000000000","message":"Done","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"28c0df4d21def463d74115ee9e6139be74d3dfe9","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        self.addCleanup(self.client.domains.delete, self.entity)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        # Only disabled domains can be deleted"},{"line_number":70,"context_line":"        self.addCleanup(self.client.domains.update, self.entity, enabled\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_e109ba32","line":70,"updated":"2016-06-17 16:29:08.000000000","message":"think would be clearer if you put the cleanup together and explain in the comment the reverse behavior, this can be confusing sometimes.","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"b9ff839839a9d62bc1a2e81c488e201d446a7f7e","unresolved":false,"context_lines":[{"line_number":64,"context_line":"                    \u0027description\u0027: uuid.uuid4().hex,"},{"line_number":65,"context_line":"                    \u0027enabled\u0027: True}"},{"line_number":66,"context_line":"        self.entity \u003d self.client.domains.create(**self.ref)"},{"line_number":67,"context_line":"        self.addCleanup(self.client.domains.delete, self.entity)"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"        # Only disabled domains can be deleted"},{"line_number":70,"context_line":"        self.addCleanup(self.client.domains.update, self.entity, enabled\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_e9b24095","line":70,"range":{"start_line":67,"start_character":0,"end_line":70,"end_character":79},"updated":"2016-06-17 17:47:47.000000000","message":"comment from previous patchset still applies","commit_id":"f848724454b14343f742ba7968d89adb682507f8"}],"keystoneclient/tests/functional/v3/test_domains.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2d5e98ceafb60141908e9b707012677c688a84ee","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from keystoneclient.tests.functional.v3 import client_fixtures as fixtures"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class DomainsTestCase(base.V3ClientTestCase):  "},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def check_domain(self, domain, domain_ref\u003dNone):   "},{"line_number":22,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_cfa619aa","line":19,"range":{"start_line":19,"start_character":45,"end_line":19,"end_character":47},"updated":"2016-06-14 17:53:58.000000000","message":"there are a few trailing spaces in this file. They need to be removed, otherwise pep8 will fail","commit_id":"ed40bba40c2c9347ac113b7f2b7becb42231d2ef"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"a56f6c213143d6451a49e56e90ab0d1c9cac1189","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class DomainsTestCase(base.V3ClientTestCase):  "},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def check_domain(self, domain, domain_ref\u003dNone):   "},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        self.assertIsNotNone(domain.id)"},{"line_number":24,"context_line":"        self.assertIsNotNone(domain.enabled)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_6bc71245","line":21,"range":{"start_line":21,"start_character":52,"end_line":21,"end_character":55},"updated":"2016-06-14 20:13:52.000000000","message":"remove the white space here","commit_id":"ed40bba40c2c9347ac113b7f2b7becb42231d2ef"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"905e2998c9d4e832c529a642b70a2d4d90946b3e","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def check_domain(self, domain, domain_ref\u003dNone):   "},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"        self.assertIsNotNone(domain.id)"},{"line_number":24,"context_line":"        self.assertIsNotNone(domain.enabled)"},{"line_number":25,"context_line":"        self.assertIn(\u0027self\u0027, domain.links)"},{"line_number":26,"context_line":"        self.assertIn(\u0027/domains/\u0027 + domain.id, domain.links[\u0027self\u0027])"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_6193b9a3","line":23,"range":{"start_line":23,"start_character":8,"end_line":23,"end_character":39},"updated":"2016-06-14 18:07:20.000000000","message":"you already checked this assert here, why repeat it on lines 42","commit_id":"ed40bba40c2c9347ac113b7f2b7becb42231d2ef"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"2d5e98ceafb60141908e9b707012677c688a84ee","unresolved":false,"context_lines":[{"line_number":31,"context_line":"            # There is no guarantee the attributes below are present in domain"},{"line_number":32,"context_line":"            if hasattr(domain_ref, \u0027description\u0027):"},{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"            "},{"line_number":35,"context_line":"            if hasattr(domain_ref, \u0027remote_ids\u0027):"},{"line_number":36,"context_line":"                self.assertEqual(domain_ref[\u0027remote_ids\u0027],"},{"line_number":37,"context_line":"                                 domain.remote_ids)"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"        else:"},{"line_number":40,"context_line":"            # Only check remaining mandatory attributes"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_affaad72","line":37,"range":{"start_line":34,"start_character":0,"end_line":37,"end_character":51},"updated":"2016-06-14 17:53:58.000000000","message":"this is not needed","commit_id":"ed40bba40c2c9347ac113b7f2b7becb42231d2ef"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"905e2998c9d4e832c529a642b70a2d4d90946b3e","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"    def test_get_domain(self):"},{"line_number":58,"context_line":"        domain \u003d self.project_domain_id"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        domain_ret \u003d self.client.domains.get(domain)"},{"line_number":61,"context_line":"        self.check_domain(domain_ret)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_61da9979","line":58,"updated":"2016-06-14 18:07:20.000000000","message":"change this for domain_id","commit_id":"ed40bba40c2c9347ac113b7f2b7becb42231d2ef"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"3d2672b30dbd0199a450df71688c856515747786","unresolved":false,"context_lines":[{"line_number":42,"context_line":"            \u0027description\u0027: uuid.uuid4().hex}"},{"line_number":43,"context_line":"        domain \u003d self.client.domains.create(**domain_ref)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":"        self.check_domain(domain, domain_ref)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_77ab491f","line":45,"range":{"start_line":45,"start_character":8,"end_line":45,"end_character":57},"updated":"2016-06-15 15:41:30.000000000","message":"you may want to add a comment here saying that it\u0027s necessary to disable a domain before deleting it","commit_id":"43189ad152f3e005234fcbcb2339079fb3ac48c0"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"9e9e9e3e8e673cf06a9642083e39af17641394f9","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            \u0027name\u0027: fixtures.RESOURCE_NAME_PREFIX + uuid.uuid4().hex,"},{"line_number":40,"context_line":"            \u0027description\u0027: uuid.uuid4().hex}"},{"line_number":41,"context_line":"        domain \u003d self.client.domains.create(**domain_ref)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        # Only disabled domains can be deleted"},{"line_number":44,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_1b9e6b63","line":42,"updated":"2016-06-15 17:44:40.000000000","message":"I think that makes more sense call the check_domain after the creation here, since on this case sounds like \"assert keystone creates the domain following the ref object\"","commit_id":"c92a37edd579892a6931ad788b6cf30dafa09904"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9f55c2c11b7670b8b419ee85ec244c547c30ab93","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            \u0027name\u0027: fixtures.RESOURCE_NAME_PREFIX + uuid.uuid4().hex,"},{"line_number":40,"context_line":"            \u0027description\u0027: uuid.uuid4().hex}"},{"line_number":41,"context_line":"        domain \u003d self.client.domains.create(**domain_ref)"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"        # Only disabled domains can be deleted"},{"line_number":44,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":45,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"7aa08908_d7c3eb36","line":42,"in_reply_to":"7aa08908_1b9e6b63","updated":"2016-06-16 13:05:38.000000000","message":"Done","commit_id":"c92a37edd579892a6931ad788b6cf30dafa09904"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"eb10cf6073d281673543b9a058f2647cefc4ec8b","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # Only disabled domains can be deleted"},{"line_number":46,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_get_domain(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_8c82b550","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":57},"updated":"2016-06-17 13:59:25.000000000","message":"This can also be an addCleanup call after the one just below:\n\n\n    self.addCleanup(self.client.domains.update, domain, enabled\u003dFalse)\n\n\nSee comment in the fixtures file for a better explanation","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"4d1de677f2eb4432e01d853436d7288d0e702a7a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # Only disabled domains can be deleted"},{"line_number":46,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_get_domain(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_55e4d03a","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":57},"in_reply_to":"7aa08908_8c82b550","updated":"2016-06-17 15:29:43.000000000","message":"Done","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"8f1f6ad3658cff090fb6fedf12f0aa5a8f3c2cd8","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # Only disabled domains can be deleted"},{"line_number":46,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_get_domain(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_d2229653","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":57},"in_reply_to":"7aa08908_8c82b550","updated":"2016-06-17 14:39:30.000000000","message":"you can also add a test for this behavior: trying to delete a domain that is not disabled.","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"4d1de677f2eb4432e01d853436d7288d0e702a7a","unresolved":false,"context_lines":[{"line_number":43,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"        # Only disabled domains can be deleted"},{"line_number":46,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"    def test_get_domain(self):"}],"source_content_type":"text/x-python","patch_set":5,"id":"7aa08908_fb4b2d29","line":46,"range":{"start_line":46,"start_character":8,"end_line":46,"end_character":57},"in_reply_to":"7aa08908_d2229653","updated":"2016-06-17 15:29:43.000000000","message":"Rodrigo, thanks for the nice suggestion. I included the test for deleting an enabled domain too (inside test_delete_domain).","commit_id":"3ecb04986fa0524dadf67471a1200affa3b187c9"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"58be0d8517a36c1860638504826f339d07344d38","unresolved":false,"context_lines":[{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def check_domain(self, domain, domain_ref\u003dNone):"},{"line_number":23,"context_line":"        self.assertIsNotNone(domain.id)"},{"line_number":24,"context_line":"        self.assertIsNotNone(domain.enabled)"},{"line_number":25,"context_line":"        self.assertIn(\u0027self\u0027, domain.links)"},{"line_number":26,"context_line":"        self.assertIn(\u0027/domains/\u0027 + domain.id, domain.links[\u0027self\u0027])"},{"line_number":27,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_4673844e","line":24,"range":{"start_line":24,"start_character":8,"end_line":24,"end_character":44},"updated":"2016-06-17 15:52:12.000000000","message":"Suggest decoupling this into two calls below.. see following comments; (remove this if you adapt the suggestion)","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"58be0d8517a36c1860638504826f339d07344d38","unresolved":false,"context_lines":[{"line_number":26,"context_line":"        self.assertIn(\u0027/domains/\u0027 + domain.id, domain.links[\u0027self\u0027])"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"        if domain_ref:"},{"line_number":29,"context_line":"            self.assertEqual(domain_ref[\u0027name\u0027], domain.name)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"            # There is no guarantee the attributes below are present in domain"},{"line_number":32,"context_line":"            if hasattr(domain_ref, \u0027description\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_26a758a8","line":29,"updated":"2016-06-17 15:52:12.000000000","message":"Add self.assertEqual(domain_ref[\u0027enabled\u0027], domain.enabled)","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"58be0d8517a36c1860638504826f339d07344d38","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"        else:"},{"line_number":35,"context_line":"            # Only check remaining mandatory attributes"},{"line_number":36,"context_line":"            self.assertIsNotNone(domain.name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def test_create_domain(self):"},{"line_number":39,"context_line":"        domain_ref \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_66e200d7","line":36,"updated":"2016-06-17 15:52:12.000000000","message":"Add self.assertIsNotNone(domain.enabled)","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"28c0df4d21def463d74115ee9e6139be74d3dfe9","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"        else:"},{"line_number":35,"context_line":"            # Only check remaining mandatory attributes"},{"line_number":36,"context_line":"            self.assertIsNotNone(domain.name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def test_create_domain(self):"},{"line_number":39,"context_line":"        domain_ref \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_d358d533","line":36,"in_reply_to":"7aa08908_66e200d7","updated":"2016-06-17 16:29:08.000000000","message":"this is already being checked in line 24","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e8c12ab6a2379ceaf4bbbdc6c45e129cdcba487e","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"        else:"},{"line_number":35,"context_line":"            # Only check remaining mandatory attributes"},{"line_number":36,"context_line":"            self.assertIsNotNone(domain.name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def test_create_domain(self):"},{"line_number":39,"context_line":"        domain_ref \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_b6889723","line":36,"in_reply_to":"7aa08908_b3c70911","updated":"2016-06-17 17:06:33.000000000","message":"ah, ok. Imagined the code in L24 would remain there since it is unrelated to having a domain_ref or not.","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"cba42fe693bab781460d8e6f17c71bf5c4fc95a7","unresolved":false,"context_lines":[{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"        else:"},{"line_number":35,"context_line":"            # Only check remaining mandatory attributes"},{"line_number":36,"context_line":"            self.assertIsNotNone(domain.name)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def test_create_domain(self):"},{"line_number":39,"context_line":"        domain_ref \u003d {"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_b3c70911","line":36,"in_reply_to":"7aa08908_d358d533","updated":"2016-06-17 16:45:54.000000000","message":"See my comment in L24, I am suggesting to decouple it","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"28c0df4d21def463d74115ee9e6139be74d3dfe9","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        domain \u003d self.client.domains.create(name\u003duuid.uuid4().hex,"},{"line_number":84,"context_line":"                                            description\u003duuid.uuid4().hex,"},{"line_number":85,"context_line":"                                            enabled\u003dTrue)"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":"        self.assertRaises(http.Forbidden,"},{"line_number":88,"context_line":"                          self.client.domains.delete,"},{"line_number":89,"context_line":"                          domain.id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_93792d96","line":86,"updated":"2016-06-17 16:29:08.000000000","message":"add a comment here saying that deleting the domain will fail because it is enabled","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"58be0d8517a36c1860638504826f339d07344d38","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                          self.client.domains.delete,"},{"line_number":89,"context_line":"                          domain.id)"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.check_domain(self.client.domains.get(domain.id))"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # Only disabled domains can be deleted"},{"line_number":94,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_663160a2","line":91,"range":{"start_line":91,"start_character":7,"end_line":91,"end_character":61},"updated":"2016-06-17 15:52:12.000000000","message":"this is not needed","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"58be0d8517a36c1860638504826f339d07344d38","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.check_domain(self.client.domains.get(domain.id))"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # Only disabled domains can be deleted"},{"line_number":94,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":95,"context_line":"        self.client.domains.delete(domain.id)"},{"line_number":96,"context_line":"        self.assertRaises(http.NotFound,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_261478e7","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":46},"updated":"2016-06-17 15:52:12.000000000","message":"I suggest putting this comment above the self.assertRaies above","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"28c0df4d21def463d74115ee9e6139be74d3dfe9","unresolved":false,"context_lines":[{"line_number":90,"context_line":""},{"line_number":91,"context_line":"        self.check_domain(self.client.domains.get(domain.id))"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        # Only disabled domains can be deleted"},{"line_number":94,"context_line":"        self.client.domains.update(domain, enabled\u003dFalse)"},{"line_number":95,"context_line":"        self.client.domains.delete(domain.id)"},{"line_number":96,"context_line":"        self.assertRaises(http.NotFound,"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_d36f35c2","line":93,"range":{"start_line":93,"start_character":8,"end_line":93,"end_character":46},"in_reply_to":"7aa08908_261478e7","updated":"2016-06-17 16:29:08.000000000","message":"++","commit_id":"ba0780f9bf306bed8af33d5d45f1799a41a23473"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"82c31276262cacd088f7c19e524c4f095dca9c1d","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        domain \u003d self.client.domains.create(**domain_ref)"},{"line_number":45,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        # Only disabled domains can be deleted"},{"line_number":50,"context_line":"        self.addCleanup(self.client.domains.update, domain, enabled\u003dFalse)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_get_domain(self):"},{"line_number":53,"context_line":"        domain_id \u003d self.project_domain_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"7aa08908_8ec0cc2c","line":50,"range":{"start_line":47,"start_character":0,"end_line":50,"end_character":74},"updated":"2016-06-18 12:30:14.000000000","message":"group these 2, as you did in the fixtures","commit_id":"d2a873aca623499582c5cc1fc6ff001dd0a242df"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"e2f3b2e88392dd16f6a4d8272605126248da7359","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        domain \u003d self.client.domains.create(**domain_ref)"},{"line_number":45,"context_line":"        self.check_domain(domain, domain_ref)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"        self.addCleanup(self.client.domains.delete, domain)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        # Only disabled domains can be deleted"},{"line_number":50,"context_line":"        self.addCleanup(self.client.domains.update, domain, enabled\u003dFalse)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def test_get_domain(self):"},{"line_number":53,"context_line":"        domain_id \u003d self.project_domain_id"}],"source_content_type":"text/x-python","patch_set":9,"id":"5a9d85d2_56690a8b","line":50,"range":{"start_line":47,"start_character":0,"end_line":50,"end_character":74},"in_reply_to":"7aa08908_8ec0cc2c","updated":"2016-06-19 03:06:47.000000000","message":"+1","commit_id":"d2a873aca623499582c5cc1fc6ff001dd0a242df"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5e34352b8d8c2051d00f5a700b168a63b49554a8","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            self.assertEqual(domain_ref[\u0027name\u0027], domain.name)"},{"line_number":29,"context_line":"            self.assertEqual(domain_ref[\u0027enabled\u0027], domain.enabled)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"            # There is no guarantee the attributes below are present in domain"},{"line_number":32,"context_line":"            if hasattr(domain_ref, \u0027description\u0027):"},{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a9d85d2_f4d8d21f","line":31,"range":{"start_line":31,"start_character":36,"end_line":31,"end_character":60},"updated":"2016-06-20 13:42:34.000000000","message":"suggest replacing by \u0027description is\u0027\n\nsince this is just a single attribute in this case :)","commit_id":"5d921b52e409dae36883aafdc6dcd238007b6428"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"0e55e249b4b4feb6ba4cb5c788427fca1af77f81","unresolved":false,"context_lines":[{"line_number":28,"context_line":"            self.assertEqual(domain_ref[\u0027name\u0027], domain.name)"},{"line_number":29,"context_line":"            self.assertEqual(domain_ref[\u0027enabled\u0027], domain.enabled)"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"            # There is no guarantee the attributes below are present in domain"},{"line_number":32,"context_line":"            if hasattr(domain_ref, \u0027description\u0027):"},{"line_number":33,"context_line":"                self.assertEqual(domain_ref[\u0027description\u0027], domain.description)"},{"line_number":34,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":11,"id":"5a9d85d2_978350cc","line":31,"range":{"start_line":31,"start_character":36,"end_line":31,"end_character":60},"in_reply_to":"5a9d85d2_f4d8d21f","updated":"2016-06-20 13:57:42.000000000","message":"Done","commit_id":"5d921b52e409dae36883aafdc6dcd238007b6428"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"93dbeb99fea1ef326cc7ebd14689d4808b42b81e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"        self.check_domain(domain_ret)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    def test_list_domains(self):"},{"line_number":57,"context_line":"        domain_one \u003d fixtures.Domain(self.client, self.project_domain_id)"},{"line_number":58,"context_line":"        self.useFixture(domain_one)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        domain_two \u003d fixtures.Domain(self.client, self.project_domain_id)"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a9d85d2_fddb8e19","line":57,"range":{"start_line":57,"start_character":50,"end_line":57,"end_character":72},"updated":"2016-06-20 15:58:35.000000000","message":"Domain fixtures don\u0027t need to set a owning domain_id, this should not be passed in this case. I am fine with this being addressed in a follow up patch","commit_id":"15a93d8bfba6e24185e0105b234e5c8db6e5a6ec"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"93dbeb99fea1ef326cc7ebd14689d4808b42b81e","unresolved":false,"context_lines":[{"line_number":57,"context_line":"        domain_one \u003d fixtures.Domain(self.client, self.project_domain_id)"},{"line_number":58,"context_line":"        self.useFixture(domain_one)"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"        domain_two \u003d fixtures.Domain(self.client, self.project_domain_id)"},{"line_number":61,"context_line":"        self.useFixture(domain_two)"},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"        domains \u003d self.client.domains.list()"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a9d85d2_7d35de44","line":60,"range":{"start_line":60,"start_character":50,"end_line":60,"end_character":72},"updated":"2016-06-20 15:58:35.000000000","message":"ditto","commit_id":"15a93d8bfba6e24185e0105b234e5c8db6e5a6ec"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"93dbeb99fea1ef326cc7ebd14689d4808b42b81e","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        self.assertIn(domain_two.entity, domains)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def test_update_domain(self):"},{"line_number":73,"context_line":"        domain \u003d fixtures.Domain(self.client, self.project_domain_id)"},{"line_number":74,"context_line":"        self.useFixture(domain)"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        new_description \u003d uuid.uuid4().hex"}],"source_content_type":"text/x-python","patch_set":12,"id":"5a9d85d2_9d3c0a31","line":73,"range":{"start_line":73,"start_character":46,"end_line":73,"end_character":68},"updated":"2016-06-20 15:58:35.000000000","message":"ditto","commit_id":"15a93d8bfba6e24185e0105b234e5c8db6e5a6ec"}]}
