)]}'
{"tempest/test.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aadee3330eadb25dd012de6d154469298514c5d7","unresolved":false,"context_lines":[{"line_number":616,"context_line":"                super(MyTest, cls).setup_credentials()"},{"line_number":617,"context_line":"        \"\"\""},{"line_number":618,"context_line":"        # If this is invoked after the credentials are setup, it won\u0027t take"},{"line_number":619,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":620,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":621,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":622,"context_line":"            raise AssertionError("}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_d93335f5","line":619,"range":{"start_line":619,"start_character":69,"end_line":619,"end_character":73},"updated":"2017-08-17 02:21:04.000000000","message":"this is","commit_id":"1f270f33cf4424f683b47ec65427dcf3336340d6"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aadee3330eadb25dd012de6d154469298514c5d7","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        # If this is invoked after the credentials are setup, it won\u0027t take"},{"line_number":619,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":620,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":621,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":622,"context_line":"            raise AssertionError("},{"line_number":623,"context_line":"                \"set_network_resources invoked after setup_credentials on the \""},{"line_number":624,"context_line":"                \"super class has been already invoked. For \""}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_994fed69","line":621,"range":{"start_line":621,"start_character":15,"end_line":621,"end_character":41},"updated":"2017-08-17 02:21:04.000000000","message":"This can\u0027t ever raise AttributeError, because setupClass is always the first thing that\u0027s called, right?","commit_id":"1f270f33cf4424f683b47ec65427dcf3336340d6"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"917c36286d540b7e47c7aabdac871d92becab4df","unresolved":false,"context_lines":[{"line_number":618,"context_line":"        # If this is invoked after the credentials are setup, it won\u0027t take"},{"line_number":619,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":620,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":621,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":622,"context_line":"            raise AssertionError("},{"line_number":623,"context_line":"                \"set_network_resources invoked after setup_credentials on the \""},{"line_number":624,"context_line":"                \"super class has been already invoked. For \""}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_42cf4928","line":621,"range":{"start_line":621,"start_character":15,"end_line":621,"end_character":41},"in_reply_to":"9f436f4f_994fed69","updated":"2017-08-17 09:41:52.000000000","message":"Right, and we don\u0027t allow for tests to override setUpClass","commit_id":"1f270f33cf4424f683b47ec65427dcf3336340d6"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"5f78a15579ffab2a2d697f9356df2c930db6cf7a","unresolved":false,"context_lines":[{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        The dynamic credentials provider can provision network resources for"},{"line_number":595,"context_line":"        each user/project that is provisioned. By default no networking will"},{"line_number":596,"context_line":"        be setup; this methods allows tests to define which specific network"},{"line_number":597,"context_line":"        resources to be provisioned."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        Credentials are provisioned as part of the class setup fixture,"}],"source_content_type":"text/x-python","patch_set":16,"id":"9f436f4f_1bc6034b","line":596,"range":{"start_line":596,"start_character":23,"end_line":596,"end_character":30},"updated":"2017-08-21 02:38:09.000000000","message":"method","commit_id":"25e685cd1571108109cd8a73dd81b28f1c06bc29"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"4e5151f65865e68b1b0e544a1fa7783e976d986c","unresolved":false,"context_lines":[{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        The dynamic credentials provider can provision network resources for"},{"line_number":595,"context_line":"        each user/project that is provisioned. By default no networking will"},{"line_number":596,"context_line":"        be setup; this methods allows tests to define which specific network"},{"line_number":597,"context_line":"        resources to be provisioned."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        Credentials are provisioned as part of the class setup fixture,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f287b81_ed184876","line":596,"range":{"start_line":596,"start_character":23,"end_line":596,"end_character":30},"updated":"2017-08-23 06:08:48.000000000","message":"method","commit_id":"87e32c26c0a3c6359fa4184595af33842be8eca2"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"f2201288bb20cd53ffb68509ffe813fa397d6c56","unresolved":false,"context_lines":[{"line_number":593,"context_line":""},{"line_number":594,"context_line":"        The dynamic credentials provider can provision network resources for"},{"line_number":595,"context_line":"        each user/project that is provisioned. By default no networking will"},{"line_number":596,"context_line":"        be setup; this methods allows tests to define which specific network"},{"line_number":597,"context_line":"        resources to be provisioned."},{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        Credentials are provisioned as part of the class setup fixture,"}],"source_content_type":"text/x-python","patch_set":17,"id":"7f287b81_6607d21e","line":596,"range":{"start_line":596,"start_character":23,"end_line":596,"end_character":30},"in_reply_to":"7f287b81_ed184876","updated":"2017-08-23 10:40:54.000000000","message":"Done","commit_id":"87e32c26c0a3c6359fa4184595af33842be8eca2"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"04cd55320fcda51f126a35af9dc6d5e35c472305","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":618,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":619,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":620,"context_line":"            raise AssertionError("},{"line_number":621,"context_line":"                \"set_network_resources invoked after setup_credentials on the \""},{"line_number":622,"context_line":"                \"super class has been already invoked. For \""},{"line_number":623,"context_line":"                \"set_network_resources to have effect please invoke it before \""}],"source_content_type":"text/x-python","patch_set":17,"id":"7f287b81_d9831656","line":620,"range":{"start_line":620,"start_character":18,"end_line":620,"end_character":32},"updated":"2017-08-23 00:30:58.000000000","message":"This is an interesting use for AssertionError. According to official docs [0] it\u0027s reserved for when \"assert\" statement fails.\n\nSo maybe this should raise a different kind of error? Maybe a RuntimeError judging by [1]: \"Raised when an error is detected that doesn’t fall in any of the other categories. The associated value is a string indicating what precisely went wrong.\"\n\nSeems to fit this use case exactly, but maybe I\u0027m mistaken.\n\n[0] https://docs.python.org/2/library/exceptions.html#exceptions.AssertionError\n[1] https://docs.python.org/2/library/exceptions.html#exceptions.RuntimeError","commit_id":"87e32c26c0a3c6359fa4184595af33842be8eca2"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"f2201288bb20cd53ffb68509ffe813fa397d6c56","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":618,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":619,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":620,"context_line":"            raise AssertionError("},{"line_number":621,"context_line":"                \"set_network_resources invoked after setup_credentials on the \""},{"line_number":622,"context_line":"                \"super class has been already invoked. For \""},{"line_number":623,"context_line":"                \"set_network_resources to have effect please invoke it before \""}],"source_content_type":"text/x-python","patch_set":17,"id":"7f287b81_e613c265","line":620,"range":{"start_line":620,"start_character":18,"end_line":620,"end_character":32},"in_reply_to":"7f287b81_8df2e405","updated":"2017-08-23 10:40:54.000000000","message":"Uhm good catch. I think in other cases here we use RuntimeError, so it would be at least more consistent to use that. AssertionError shouldn\u0027t be used if something expected is not true in the test - I expect it will make a different between ERROR and FAIL, and in this case ERROR is more appropriate.","commit_id":"87e32c26c0a3c6359fa4184595af33842be8eca2"},{"author":{"_account_id":20190,"name":"zhufl","email":"zhu.fanglei@zte.com.cn","username":"zhufl"},"change_message_id":"4e5151f65865e68b1b0e544a1fa7783e976d986c","unresolved":false,"context_lines":[{"line_number":617,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":618,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":619,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":620,"context_line":"            raise AssertionError("},{"line_number":621,"context_line":"                \"set_network_resources invoked after setup_credentials on the \""},{"line_number":622,"context_line":"                \"super class has been already invoked. For \""},{"line_number":623,"context_line":"                \"set_network_resources to have effect please invoke it before \""}],"source_content_type":"text/x-python","patch_set":17,"id":"7f287b81_8df2e405","line":620,"range":{"start_line":620,"start_character":18,"end_line":620,"end_character":32},"in_reply_to":"7f287b81_d9831656","updated":"2017-08-23 06:08:48.000000000","message":"RuntimeError sounds like something going wrong during the run time, but though this exception is indeeded thrown out during the run time, \nits real meaning is the coding error, i.e, the code is unproperly written, so I\u0027d prefer AssertionError(which is at least not misleading)","commit_id":"87e32c26c0a3c6359fa4184595af33842be8eca2"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"1a1df78f7a60382bb22742ccfe26aa01344e96a3","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    # Network resources to be provisioned for the requested test credentials."},{"line_number":110,"context_line":"    # Only used with the dynamic credentials provider."},{"line_number":111,"context_line":"    _network_resources \u003d {}"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    # Resources required to validate a server using ssh"},{"line_number":114,"context_line":"    _validation_resources \u003d {}"}],"source_content_type":"text/x-python","patch_set":21,"id":"7f287b81_af8763b5","line":111,"updated":"2017-08-28 07:10:06.000000000","message":"It looks like this breaks senlin\u0027s tempest tests[1]. We probably should make a patch to avoid the braking.\n\n[1] http://git.openstack.org/cgit/openstack/senlin/tree/senlin/tests/tempest/api/base.py#n27\nhttp://git.openstack.org/cgit/openstack/senlin/tree/senlin/tests/tempest/functional/base.py#n27","commit_id":"9998a2f5d48292b6cda4ada302a3c18d61da2e10"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"b3f58344fed352740a47a0feafee97a15f42118c","unresolved":false,"context_lines":[{"line_number":668,"context_line":"        \"\"\"Specify which network resources should be created"},{"line_number":669,"context_line":""},{"line_number":670,"context_line":"        The dynamic credentials provider can provision network resources for"},{"line_number":671,"context_line":"        each user/project that is provisioned. By default no networking will"},{"line_number":672,"context_line":"        be setup; this method allows tests to define which specific network"},{"line_number":673,"context_line":"        resources to be provisioned."},{"line_number":674,"context_line":""}],"source_content_type":"text/x-python","patch_set":22,"id":"7f287b81_472b5494","line":671,"updated":"2017-09-06 18:58:43.000000000","message":"So this is a bit confusing I think. By default if this function is never called the default is to create all the resources: https://github.com/openstack/tempest/blob/master/tempest/lib/common/dynamic_creds.py#L237-L263 But, if you call this function with no args nothing will be created because we set _network_resources to a dict of everything false. I feel like we might want to make the description here a bit more clear.","commit_id":"9f2a3478294ee94e59ab1777454440192c16cdf9"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c652eb09677cc2cc313cad59bbdc3518619dde76","unresolved":false,"context_lines":[{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        The dynamic credentials provider by default provisions network"},{"line_number":676,"context_line":"        resources for each user/project that is provisioned. This behavior"},{"line_number":677,"context_line":"        can be haltered using this method, which allows tests to define which"},{"line_number":678,"context_line":"        specific network resources to be provisioned - none if not parameter"},{"line_number":679,"context_line":"        is specified."},{"line_number":680,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"7f287b81_e2f6878f","line":677,"range":{"start_line":677,"start_character":15,"end_line":677,"end_character":23},"updated":"2017-09-07 20:57:40.000000000","message":"s/haltered/altered","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"877c6100bd3595c74a632bcd454563477905f2f5","unresolved":false,"context_lines":[{"line_number":674,"context_line":""},{"line_number":675,"context_line":"        The dynamic credentials provider by default provisions network"},{"line_number":676,"context_line":"        resources for each user/project that is provisioned. This behavior"},{"line_number":677,"context_line":"        can be haltered using this method, which allows tests to define which"},{"line_number":678,"context_line":"        specific network resources to be provisioned - none if not parameter"},{"line_number":679,"context_line":"        is specified."},{"line_number":680,"context_line":""}],"source_content_type":"text/x-python","patch_set":27,"id":"5f2577a7_bb03aa0f","line":677,"range":{"start_line":677,"start_character":15,"end_line":677,"end_character":23},"in_reply_to":"7f287b81_e2f6878f","updated":"2017-09-09 07:32:43.000000000","message":"Done","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c652eb09677cc2cc313cad59bbdc3518619dde76","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        The dynamic credentials provider by default provisions network"},{"line_number":676,"context_line":"        resources for each user/project that is provisioned. This behavior"},{"line_number":677,"context_line":"        can be haltered using this method, which allows tests to define which"},{"line_number":678,"context_line":"        specific network resources to be provisioned - none if not parameter"},{"line_number":679,"context_line":"        is specified."},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        Credentials are provisioned as part of the class setup fixture,"}],"source_content_type":"text/x-python","patch_set":27,"id":"7f287b81_822b43e9","line":678,"range":{"start_line":678,"start_character":63,"end_line":678,"end_character":66},"updated":"2017-09-07 20:57:40.000000000","message":"s/not/no","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"877c6100bd3595c74a632bcd454563477905f2f5","unresolved":false,"context_lines":[{"line_number":675,"context_line":"        The dynamic credentials provider by default provisions network"},{"line_number":676,"context_line":"        resources for each user/project that is provisioned. This behavior"},{"line_number":677,"context_line":"        can be haltered using this method, which allows tests to define which"},{"line_number":678,"context_line":"        specific network resources to be provisioned - none if not parameter"},{"line_number":679,"context_line":"        is specified."},{"line_number":680,"context_line":""},{"line_number":681,"context_line":"        Credentials are provisioned as part of the class setup fixture,"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f2577a7_bbfe0903","line":678,"range":{"start_line":678,"start_character":63,"end_line":678,"end_character":66},"in_reply_to":"7f287b81_822b43e9","updated":"2017-09-09 07:32:43.000000000","message":"Done","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c652eb09677cc2cc313cad59bbdc3518619dde76","unresolved":false,"context_lines":[{"line_number":696,"context_line":"                super(MyTest, cls).setup_credentials()"},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":"        # If this is invoked after the credentials are setup, it won\u0027t take"},{"line_number":699,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":700,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":701,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":702,"context_line":"            raise RuntimeError("}],"source_content_type":"text/x-python","patch_set":27,"id":"7f287b81_2236cf52","line":699,"range":{"start_line":699,"start_character":69,"end_line":699,"end_character":73},"updated":"2017-09-07 20:57:40.000000000","message":"/s/this/this was","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"877c6100bd3595c74a632bcd454563477905f2f5","unresolved":false,"context_lines":[{"line_number":696,"context_line":"                super(MyTest, cls).setup_credentials()"},{"line_number":697,"context_line":"        \"\"\""},{"line_number":698,"context_line":"        # If this is invoked after the credentials are setup, it won\u0027t take"},{"line_number":699,"context_line":"        # any effect. To avoid this situation, fail the test in case this"},{"line_number":700,"context_line":"        # invoked too late in the test lifecycle."},{"line_number":701,"context_line":"        if cls.__setup_credentials_called:"},{"line_number":702,"context_line":"            raise RuntimeError("}],"source_content_type":"text/x-python","patch_set":27,"id":"5f2577a7_9b034d0e","line":699,"range":{"start_line":699,"start_character":69,"end_line":699,"end_character":73},"in_reply_to":"7f287b81_2236cf52","updated":"2017-09-09 07:32:43.000000000","message":"Done","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"}],"tempest/tests/test_test.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aadee3330eadb25dd012de6d154469298514c5d7","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        child_test \u003d ChildTest()"},{"line_number":140,"context_line":"        child_test.setUpClass()"},{"line_number":141,"context_line":"        # Assert that the parents network resources are not set"},{"line_number":142,"context_line":"        self.assertFalse(child_test._network_resources[\u0027dhcp\u0027])"},{"line_number":143,"context_line":"        # Assert that the child network resources are set"},{"line_number":144,"context_line":"        self.assertTrue(child_test._network_resources[\u0027router\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_397121a9","line":141,"range":{"start_line":141,"start_character":26,"end_line":141,"end_character":33},"updated":"2017-08-17 02:21:04.000000000","message":"s/parents/parent\u0027s","commit_id":"1f270f33cf4424f683b47ec65427dcf3336340d6"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"aadee3330eadb25dd012de6d154469298514c5d7","unresolved":false,"context_lines":[{"line_number":167,"context_line":"                super(ChildTest, cls).setup_credentials()"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        class GrandChildTest(ChildTest):"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"            pass"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"        # Invoke setupClass on both and check that the setup_credentials"}],"source_content_type":"text/x-python","patch_set":12,"id":"9f436f4f_999dadbd","line":170,"updated":"2017-08-17 02:21:04.000000000","message":"Extra newline","commit_id":"1f270f33cf4424f683b47ec65427dcf3336340d6"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"c652eb09677cc2cc313cad59bbdc3518619dde76","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                super(ChildTest, cls).setup_credentials()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        class GrandChildTest(ChildTest):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"            pass"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        # Invoke setupClass on both and check that the setup_credentials"}],"source_content_type":"text/x-python","patch_set":27,"id":"7f287b81_420afb78","line":220,"updated":"2017-09-07 20:57:40.000000000","message":"nit: Extra newline","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"877c6100bd3595c74a632bcd454563477905f2f5","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                super(ChildTest, cls).setup_credentials()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"        class GrandChildTest(ChildTest):"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"            pass"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        # Invoke setupClass on both and check that the setup_credentials"}],"source_content_type":"text/x-python","patch_set":27,"id":"5f2577a7_db067621","line":220,"in_reply_to":"7f287b81_420afb78","updated":"2017-09-09 07:32:43.000000000","message":"Done","commit_id":"56e72a9907245e35a6cffeefbff195ac61fe2c42"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"6a30b767ac96d02f964d85adec1743e611e04af1","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        grandchild_test \u003d GrandChildTest()"},{"line_number":228,"context_line":"        grandchild_test.setUpClass()"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"class TestTempestBaseTestClass(base.TestCase):"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f2577a7_fa666b29","line":230,"updated":"2017-09-13 21:44:10.000000000","message":"I think it would be good to add a test to execute set_network_resources after setup_credentials to verify whether expected RuntimeError is raised.","commit_id":"bcbf1af1e3ac5f6eaddbfd7171e3c21bc2ee2bd2"},{"author":{"_account_id":1921,"name":"Andrea Frittoli","email":"andrea.frittoli@gmail.com","username":"andrea-frittoli"},"change_message_id":"5497ade56e1b1d8f2b93450cdd7369504366fbc7","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        grandchild_test \u003d GrandChildTest()"},{"line_number":228,"context_line":"        grandchild_test.setUpClass()"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"class TestTempestBaseTestClass(base.TestCase):"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"    def setUp(self):"}],"source_content_type":"text/x-python","patch_set":30,"id":"5f2577a7_36788728","line":230,"in_reply_to":"5f2577a7_fa666b29","updated":"2017-09-14 04:58:25.000000000","message":"That\u0027s there in L197+.","commit_id":"bcbf1af1e3ac5f6eaddbfd7171e3c21bc2ee2bd2"}]}
