)]}'
{"neutron/plugins/cisco/extensions/n1kv_profile.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1e7ef2e04b849b465e63553def67c9ec0ae1661d","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":32,"context_line":"    \u0027networks\u0027: {"},{"line_number":33,"context_line":"        PROFILE_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":34,"context_line":"                     \u0027validate\u0027: {\u0027type:regex\u0027: attributes.UUID_PATTERN},"},{"line_number":35,"context_line":"                     \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":36,"context_line":"                     \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FJCc%3D","line":33,"updated":"2013-10-03 16:02:52.000000000","message":"is it acceptable to change the behavior of the API, or allowing a PUT operation was broken from the start?","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"f7d4c002571324c532ee8699d2614a6382e038ff","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"EXTENDED_ATTRIBUTES_2_0 \u003d {"},{"line_number":32,"context_line":"    \u0027networks\u0027: {"},{"line_number":33,"context_line":"        PROFILE_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":34,"context_line":"                     \u0027validate\u0027: {\u0027type:regex\u0027: attributes.UUID_PATTERN},"},{"line_number":35,"context_line":"                     \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":36,"context_line":"                     \u0027is_visible\u0027: True},"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FIVM%3D","line":33,"in_reply_to":"AAAAS3%2F%2FJCc%3D","updated":"2013-10-04 02:45:42.000000000","message":"VSM controller now does not allow editing these fields. Making sure it remains that way in neutron. Consider broken. As part of increasing UT coverage, making sure this does not slip. Ditto for other comments.","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1e7ef2e04b849b465e63553def67c9ec0ae1661d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                          \u0027is_visible\u0027: True},"},{"line_number":49,"context_line":"    },"},{"line_number":50,"context_line":"    \u0027ports\u0027: {"},{"line_number":51,"context_line":"        PROFILE_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"                     \u0027validate\u0027: {\u0027type:regex\u0027: attributes.UUID_PATTERN},"},{"line_number":53,"context_line":"                     \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":54,"context_line":"                     \u0027is_visible\u0027: True}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FJCI%3D","line":51,"updated":"2013-10-03 16:02:52.000000000","message":"ditto","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"f7d4c002571324c532ee8699d2614a6382e038ff","unresolved":false,"context_lines":[{"line_number":48,"context_line":"                          \u0027is_visible\u0027: True},"},{"line_number":49,"context_line":"    },"},{"line_number":50,"context_line":"    \u0027ports\u0027: {"},{"line_number":51,"context_line":"        PROFILE_ID: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":52,"context_line":"                     \u0027validate\u0027: {\u0027type:regex\u0027: attributes.UUID_PATTERN},"},{"line_number":53,"context_line":"                     \u0027default\u0027: attributes.ATTR_NOT_SPECIFIED,"},{"line_number":54,"context_line":"                     \u0027is_visible\u0027: True}"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FIVI%3D","line":51,"in_reply_to":"AAAAS3%2F%2FJCI%3D","updated":"2013-10-04 02:45:42.000000000","message":"ditto","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"}],"neutron/plugins/cisco/extensions/network_profile.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"1e7ef2e04b849b465e63553def67c9ec0ae1661d","unresolved":false,"context_lines":[{"line_number":32,"context_line":"               \u0027is_visible\u0027: True},"},{"line_number":33,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":34,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":35,"context_line":"        \u0027segment_type\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":36,"context_line":"                         \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":37,"context_line":"        \u0027sub_type\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":38,"context_line":"                     \u0027is_visible\u0027: True,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FJCY%3D","line":35,"updated":"2013-10-03 16:02:52.000000000","message":"same question here and everywhere else in this file","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"f7d4c002571324c532ee8699d2614a6382e038ff","unresolved":false,"context_lines":[{"line_number":32,"context_line":"               \u0027is_visible\u0027: True},"},{"line_number":33,"context_line":"        \u0027name\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: True,"},{"line_number":34,"context_line":"                 \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":35,"context_line":"        \u0027segment_type\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":36,"context_line":"                         \u0027is_visible\u0027: True, \u0027default\u0027: \u0027\u0027},"},{"line_number":37,"context_line":"        \u0027sub_type\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":38,"context_line":"                     \u0027is_visible\u0027: True,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FIU0%3D","line":35,"in_reply_to":"AAAAS3%2F%2FJCY%3D","updated":"2013-10-04 02:45:42.000000000","message":"ditto","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"}],"neutron/plugins/cisco/n1kv/n1kv_client.py":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"683cf514eaecfc23e992199c6e704c72b5898ede","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        else:"},{"line_number":226,"context_line":"            body[\u0027mode\u0027] \u003d \u0027access\u0027"},{"line_number":227,"context_line":"            body[\u0027segmentType\u0027] \u003d network_profile[\u0027segment_type\u0027]"},{"line_number":228,"context_line":"        return self._post(self.network_segment_path % (network[\u0027id\u0027]),"},{"line_number":229,"context_line":"                          body\u003dbody)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def update_network_segment(self, network_segment_id, body):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FJzU%3D","line":228,"updated":"2013-10-03 12:26:22.000000000","message":"NIT: I don\u0027t think the parens are needed here and on several other lines referring to network_segment_path.","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"439dcef7fcfd5a4d17e35dcf60c52b4b919f0394","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        else:"},{"line_number":226,"context_line":"            body[\u0027mode\u0027] \u003d \u0027access\u0027"},{"line_number":227,"context_line":"            body[\u0027segmentType\u0027] \u003d network_profile[\u0027segment_type\u0027]"},{"line_number":228,"context_line":"        return self._post(self.network_segment_path % (network[\u0027id\u0027]),"},{"line_number":229,"context_line":"                          body\u003dbody)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def update_network_segment(self, network_segment_id, body):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FhHQ%3D","line":228,"in_reply_to":"AAAAS3%2F%2FHlo%3D","updated":"2013-10-15 05:20:52.000000000","message":"Done","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"f7d4c002571324c532ee8699d2614a6382e038ff","unresolved":false,"context_lines":[{"line_number":225,"context_line":"        else:"},{"line_number":226,"context_line":"            body[\u0027mode\u0027] \u003d \u0027access\u0027"},{"line_number":227,"context_line":"            body[\u0027segmentType\u0027] \u003d network_profile[\u0027segment_type\u0027]"},{"line_number":228,"context_line":"        return self._post(self.network_segment_path % (network[\u0027id\u0027]),"},{"line_number":229,"context_line":"                          body\u003dbody)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    def update_network_segment(self, network_segment_id, body):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FHlo%3D","line":228,"in_reply_to":"AAAAS3%2F%2FJzU%3D","updated":"2013-10-04 02:45:42.000000000","message":"Done: Fixing in next patch","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"683cf514eaecfc23e992199c6e704c72b5898ede","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        body \u003d {\u0027id\u0027: port[\u0027id\u0027],"},{"line_number":396,"context_line":"                \u0027macAddress\u0027: port[\u0027mac_address\u0027]}"},{"line_number":397,"context_line":"        if port.get(\u0027fixed_ips\u0027):"},{"line_number":398,"context_line":"            body[\u0027ipAddress\u0027] \u003d port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]"},{"line_number":399,"context_line":"        return self._post(self.ports_path % (vm_network_name),"},{"line_number":400,"context_line":"                          body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FJzo%3D","line":397,"updated":"2013-10-03 12:26:22.000000000","message":"Could you just use \"if fixed_ips in port:\" here?\n\nCan fixed_ips be an empty list? IOW, do you need to check that there is at least one entry and that it has an ip_address key?","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"439dcef7fcfd5a4d17e35dcf60c52b4b919f0394","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        body \u003d {\u0027id\u0027: port[\u0027id\u0027],"},{"line_number":396,"context_line":"                \u0027macAddress\u0027: port[\u0027mac_address\u0027]}"},{"line_number":397,"context_line":"        if port.get(\u0027fixed_ips\u0027):"},{"line_number":398,"context_line":"            body[\u0027ipAddress\u0027] \u003d port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]"},{"line_number":399,"context_line":"        return self._post(self.ports_path % (vm_network_name),"},{"line_number":400,"context_line":"                          body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATH%2F%2FhHc%3D","line":397,"in_reply_to":"AAAAS3%2F%2FHlk%3D","updated":"2013-10-15 05:20:52.000000000","message":"Looks like I need to add another check if the fixed_ips is an empty list. Unit tests break. In that case, isnt the built in function \"get\" a better option? Will return the value only if the key is present. No?","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":7018,"name":"Abhishek Raut","email":"rauta@vmware.com","username":"abhiraut"},"change_message_id":"f7d4c002571324c532ee8699d2614a6382e038ff","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        body \u003d {\u0027id\u0027: port[\u0027id\u0027],"},{"line_number":396,"context_line":"                \u0027macAddress\u0027: port[\u0027mac_address\u0027]}"},{"line_number":397,"context_line":"        if port.get(\u0027fixed_ips\u0027):"},{"line_number":398,"context_line":"            body[\u0027ipAddress\u0027] \u003d port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]"},{"line_number":399,"context_line":"        return self._post(self.ports_path % (vm_network_name),"},{"line_number":400,"context_line":"                          body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FHlk%3D","line":397,"in_reply_to":"AAAAS3%2F%2FJzo%3D","updated":"2013-10-04 02:45:42.000000000","message":"Done: Fixing in next patch","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"},{"author":{"_account_id":5127,"name":"Justin Hammond","email":"runningempty@gmail.com","username":"justin-hammond"},"change_message_id":"5c70b4768c6c8c006469c657b532f87e45684f3a","unresolved":false,"context_lines":[{"line_number":394,"context_line":"        \"\"\""},{"line_number":395,"context_line":"        body \u003d {\u0027id\u0027: port[\u0027id\u0027],"},{"line_number":396,"context_line":"                \u0027macAddress\u0027: port[\u0027mac_address\u0027]}"},{"line_number":397,"context_line":"        if port.get(\u0027fixed_ips\u0027):"},{"line_number":398,"context_line":"            body[\u0027ipAddress\u0027] \u003d port[\u0027fixed_ips\u0027][0][\u0027ip_address\u0027]"},{"line_number":399,"context_line":"        return self._post(self.ports_path % (vm_network_name),"},{"line_number":400,"context_line":"                          body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAS3%2F%2FJLw%3D","line":397,"in_reply_to":"AAAAS3%2F%2FJzo%3D","updated":"2013-10-03 15:34:45.000000000","message":"if fixed_ips is an empty list it will be evaluated as False, so an additional check is not needed","commit_id":"de8ed042b2f214a83650fb37a0d34ed774ccd06d"}],"neutron/plugins/cisco/n1kv/n1kv_neutron_plugin.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4e2777b329d0c7a83f91c12f3bc8c78d4f35417f","unresolved":false,"context_lines":[{"line_number":1488,"context_line":"                                                self.delete_vxlan_ranges)"},{"line_number":1489,"context_line":"        self._send_delete_network_profile_request(_network_profile)"},{"line_number":1490,"context_line":""},{"line_number":1491,"context_line":"    def update_network_profile(self, context, id, network_profile):"},{"line_number":1492,"context_line":"        \"\"\""},{"line_number":1493,"context_line":"        Update a network profile."},{"line_number":1494,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ff7M%3D","line":1491,"updated":"2013-10-15 12:39:41.000000000","message":"Since id() is a built-in function, please s/id/network_profile_id/","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"}],"neutron/tests/unit/cisco/n1kv/test_n1kv_plugin.py":[{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4e2777b329d0c7a83f91c12f3bc8c78d4f35417f","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        return []"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    def get_request_extensions(self):"},{"line_number":81,"context_line":"        return []"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"class N1kvPluginTestCase(test_plugin.NeutronDbPluginV2TestCase):"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ff6k%3D","line":81,"updated":"2013-10-15 12:39:41.000000000","message":"The above three methods can be @staticmethods.","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4e2777b329d0c7a83f91c12f3bc8c78d4f35417f","unresolved":false,"context_lines":[{"line_number":93,"context_line":"    DEFAULT_CONTENT_TYPE \u003d \"\""},{"line_number":94,"context_line":"    fmt \u003d \"json\""},{"line_number":95,"context_line":""},{"line_number":96,"context_line":"    def _make_test_policy_profile(self, name\u003d\u0027service_profile\u0027):"},{"line_number":97,"context_line":"        \"\"\""},{"line_number":98,"context_line":"        Create a policy profile record for testing purpose."},{"line_number":99,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ff6c%3D","line":96,"updated":"2013-10-15 12:39:41.000000000","message":"Can be @staticmethod","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"319eb76130fff4e9c026bcf7e68feb0847af4f23","unresolved":false,"context_lines":[{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # Save the original RESOURCE_ATTRIBUTE_MAP"},{"line_number":213,"context_line":"        self.saved_attr_map \u003d {}"},{"line_number":214,"context_line":"        for resource, attrs in attributes.RESOURCE_ATTRIBUTE_MAP.iteritems():"},{"line_number":215,"context_line":"            self.saved_attr_map[resource] \u003d attrs.copy()"},{"line_number":216,"context_line":"        # Update the RESOURCE_ATTRIBUTE_MAP with n1kv specific extended attrs."},{"line_number":217,"context_line":"        attributes.RESOURCE_ATTRIBUTE_MAP[\"networks\"].update("}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ff6A%3D","line":214,"updated":"2013-10-15 12:29:37.000000000","message":"Can use items() for Python3 compatibility.","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4e2777b329d0c7a83f91c12f3bc8c78d4f35417f","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        self._make_test_profile()"},{"line_number":225,"context_line":"        self._make_test_policy_profile()"},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"    def tearDown(self):"},{"line_number":228,"context_line":"        del test_config[\u0027plugin_name_v2\u0027]"},{"line_number":229,"context_line":"        super(N1kvPluginTestCase, self).tearDown()"},{"line_number":230,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ff6Q%3D","line":227,"updated":"2013-10-15 12:39:41.000000000","message":"http://lists.openstack.org/pipermail/openstack-dev/2013-October/016203.html","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"319eb76130fff4e9c026bcf7e68feb0847af4f23","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        res \u003d net_p_req.get_response(self.ext_api)"},{"line_number":267,"context_line":"        netp \u003d self.deserialize(self.fmt, res)"},{"line_number":268,"context_line":"        self.assertEqual(res.status_int, 201)"},{"line_number":269,"context_line":"        self._delete(\u0027network_profiles\u0027, netp[\u0027network_profile\u0027][\u0027id\u0027])"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def test_update_network_profile_physical_network_fail(self):"},{"line_number":272,"context_line":"        net_p \u003d self._make_test_profile(name\u003d\u0027netp1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ff4o%3D","line":269,"updated":"2013-10-15 12:29:37.000000000","message":"This function won\u0027t get called, if above assert fails (and could then affect other tests), right?\n\nMay want to see if it can be moved to teardown(). Ditto on following changes...","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"},{"author":{"_account_id":6524,"name":"Henry Gessau","email":"HenryG@gessau.net","username":"gessau"},"change_message_id":"4e2777b329d0c7a83f91c12f3bc8c78d4f35417f","unresolved":false,"context_lines":[{"line_number":266,"context_line":"        res \u003d net_p_req.get_response(self.ext_api)"},{"line_number":267,"context_line":"        netp \u003d self.deserialize(self.fmt, res)"},{"line_number":268,"context_line":"        self.assertEqual(res.status_int, 201)"},{"line_number":269,"context_line":"        self._delete(\u0027network_profiles\u0027, netp[\u0027network_profile\u0027][\u0027id\u0027])"},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def test_update_network_profile_physical_network_fail(self):"},{"line_number":272,"context_line":"        net_p \u003d self._make_test_profile(name\u003d\u0027netp1\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAATH%2F%2Ffzk%3D","line":269,"in_reply_to":"AAAATH%2F%2Ff4o%3D","updated":"2013-10-15 12:39:41.000000000","message":"I agree with this concern, but use addCleanup() instead of tearDown().","commit_id":"10e7d16aebeab3e8765438b08970a9ff29a65bd1"}]}
