)]}'
{"tempest/scenario/test_swift_basic_ops.py":[{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"824c9fce93f037bb1adb84a00604a757230b9a4f","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    def _download_and_verify(self, container_name, obj_name, expected_hash):"},{"line_number":117,"context_line":"        _, obj \u003d self.object_storage_client.get_object(container_name,"},{"line_number":118,"context_line":"                                                       obj_name)"},{"line_number":119,"context_line":"        hash \u003d hashlib.md5()"},{"line_number":120,"context_line":"        hash.update(obj)"},{"line_number":121,"context_line":"        self.assertEqual(hash.hexdigest(), expected_hash)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_4f9ca2c0","line":119,"updated":"2014-06-12 16:22:54.000000000","message":"The hashing phase is not needed. The data in the object is small, thus you can just check that the data is equal, not the hash.\n\nSee for example : https://review.openstack.org/#/c/81703/8/tempest/api/object_storage/test_object_services.py","commit_id":"db76beab240d6fd8cc395beb48edaa6dbc8b025c"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"81313da76f646355c12fdbd95e6606ab6a80dbcb","unresolved":false,"context_lines":[{"line_number":116,"context_line":"    def _download_and_verify(self, container_name, obj_name, expected_hash):"},{"line_number":117,"context_line":"        _, obj \u003d self.object_storage_client.get_object(container_name,"},{"line_number":118,"context_line":"                                                       obj_name)"},{"line_number":119,"context_line":"        hash \u003d hashlib.md5()"},{"line_number":120,"context_line":"        hash.update(obj)"},{"line_number":121,"context_line":"        self.assertEqual(hash.hexdigest(), expected_hash)"},{"line_number":122,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_f831ada2","line":119,"in_reply_to":"1ae5cdf2_4f9ca2c0","updated":"2014-06-12 20:45:22.000000000","message":"Thanks for the reviewing, Jordan. It makes sense for me. I will submit a new PS soon.","commit_id":"db76beab240d6fd8cc395beb48edaa6dbc8b025c"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"824c9fce93f037bb1adb84a00604a757230b9a4f","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        self._list_and_check_container_objects(container_name, [obj_name])"},{"line_number":130,"context_line":"        self._change_container_acl(container_name,"},{"line_number":131,"context_line":"                                   {\u0027x-container-read\u0027: \u0027.r:*\u0027})"},{"line_number":132,"context_line":"        hash \u003d hashlib.md5()"},{"line_number":133,"context_line":"        hash.update(obj_data)"},{"line_number":134,"context_line":"        self._download_and_verify(container_name,"},{"line_number":135,"context_line":"                                  obj_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_efac8eef","line":132,"updated":"2014-06-12 16:22:54.000000000","message":"Same, you should compare directly the data, not the hash.","commit_id":"db76beab240d6fd8cc395beb48edaa6dbc8b025c"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"81313da76f646355c12fdbd95e6606ab6a80dbcb","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        self._list_and_check_container_objects(container_name, [obj_name])"},{"line_number":130,"context_line":"        self._change_container_acl(container_name,"},{"line_number":131,"context_line":"                                   {\u0027x-container-read\u0027: \u0027.r:*\u0027})"},{"line_number":132,"context_line":"        hash \u003d hashlib.md5()"},{"line_number":133,"context_line":"        hash.update(obj_data)"},{"line_number":134,"context_line":"        self._download_and_verify(container_name,"},{"line_number":135,"context_line":"                                  obj_name,"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ae5cdf2_1825795b","line":132,"in_reply_to":"1ae5cdf2_efac8eef","updated":"2014-06-12 20:45:22.000000000","message":"Done","commit_id":"db76beab240d6fd8cc395beb48edaa6dbc8b025c"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"0c16cfe08e6c6005ba177145c17c0d604b1e4614","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        _, containers \u003d self.object_storage_client.get_account()"},{"line_number":105,"context_line":"        self.assertIsNotNone(containers)"},{"line_number":106,"context_line":"        if container_name:"},{"line_number":107,"context_line":"            self.assertIn(container_name, [c[\u0027name\u0027] for c in containers])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _change_container_acl(self, container_name, acl):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_f082cf50","line":106,"updated":"2014-06-18 23:15:29.000000000","message":"I don\u0027t see much sense in the check above: as the method name says, list_and_check_container, passed a bad name or None? let the assert raise a fault","commit_id":"06668f8716509581320147997bf4d0ab3ca97900"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"6f98835c5ffa5a96aa66835805d922577e31b72e","unresolved":false,"context_lines":[{"line_number":103,"context_line":"        \"\"\""},{"line_number":104,"context_line":"        _, containers \u003d self.object_storage_client.get_account()"},{"line_number":105,"context_line":"        self.assertIsNotNone(containers)"},{"line_number":106,"context_line":"        if container_name:"},{"line_number":107,"context_line":"            self.assertIn(container_name, [c[\u0027name\u0027] for c in containers])"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def _change_container_acl(self, container_name, acl):"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_2bc76a99","line":106,"in_reply_to":"1ae5cdf2_f082cf50","updated":"2014-06-18 23:54:55.000000000","message":"Thanks for the review, Mauro. It\u0027s great to get your attention, given you\u0027re the original author of swift scenario test.\n\nMy initial purpose is to check if the container is there or not, after created it. So how about moving it to _create_container before line 61, how do you think?","commit_id":"06668f8716509581320147997bf4d0ab3ca97900"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"0c16cfe08e6c6005ba177145c17c0d604b1e4614","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    def test_swift_basic_ops(self):"},{"line_number":122,"context_line":"        self._get_swift_stat()"},{"line_number":123,"context_line":"        container_name \u003d self._create_container()"},{"line_number":124,"context_line":"        self._list_and_check_container(container_name)"},{"line_number":125,"context_line":"        obj_name, obj_data \u003d self._upload_object_to_container(container_name)"},{"line_number":126,"context_line":"        self._list_and_check_container_objects(container_name, [obj_name])"},{"line_number":127,"context_line":"        self._change_container_acl(container_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_5022a3a3","line":124,"updated":"2014-06-18 23:15:29.000000000","message":"instead of doing it here, can we move it to inside create_container and replace line 61?","commit_id":"06668f8716509581320147997bf4d0ab3ca97900"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"6f98835c5ffa5a96aa66835805d922577e31b72e","unresolved":false,"context_lines":[{"line_number":121,"context_line":"    def test_swift_basic_ops(self):"},{"line_number":122,"context_line":"        self._get_swift_stat()"},{"line_number":123,"context_line":"        container_name \u003d self._create_container()"},{"line_number":124,"context_line":"        self._list_and_check_container(container_name)"},{"line_number":125,"context_line":"        obj_name, obj_data \u003d self._upload_object_to_container(container_name)"},{"line_number":126,"context_line":"        self._list_and_check_container_objects(container_name, [obj_name])"},{"line_number":127,"context_line":"        self._change_container_acl(container_name,"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ae5cdf2_0b538e17","line":124,"in_reply_to":"1ae5cdf2_5022a3a3","updated":"2014-06-18 23:54:55.000000000","message":"Makes sense for me.","commit_id":"06668f8716509581320147997bf4d0ab3ca97900"},{"author":{"_account_id":5174,"name":"Mauro Sergio Martins Rodrigues","email":"maurosr@linux.vnet.ibm.com","username":"maurosr"},"change_message_id":"8afd08c82fb67311daa005a5828419d3c5e3780b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        _, containers \u003d self.object_storage_client.get_account()"},{"line_number":61,"context_line":"        self.assertIn(name, [c[\u0027name\u0027] for c in containers])"},{"line_number":62,"context_line":"        # look for the container to assure it is created"},{"line_number":63,"context_line":"        self._list_and_check_container_objects(name)"},{"line_number":64,"context_line":"        LOG.debug(\u0027Container %s created\u0027 % (name))"},{"line_number":65,"context_line":"        return name"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_d89cf1c2","line":63,"updated":"2014-06-19 21:22:43.000000000","message":"this line is useless with those two added above","commit_id":"90a42ce3bff5cbaca7f1bc5e85ac5cb03f83f2d0"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"8b6d0bb951dd0991d551def9c1d2fd2d0969ef3e","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        _, containers \u003d self.object_storage_client.get_account()"},{"line_number":61,"context_line":"        self.assertIn(name, [c[\u0027name\u0027] for c in containers])"},{"line_number":62,"context_line":"        # look for the container to assure it is created"},{"line_number":63,"context_line":"        self._list_and_check_container_objects(name)"},{"line_number":64,"context_line":"        LOG.debug(\u0027Container %s created\u0027 % (name))"},{"line_number":65,"context_line":"        return name"},{"line_number":66,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"1ae5cdf2_d8895127","line":63,"in_reply_to":"1ae5cdf2_d89cf1c2","updated":"2014-06-19 21:27:22.000000000","message":"Done","commit_id":"90a42ce3bff5cbaca7f1bc5e85ac5cb03f83f2d0"},{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"1537d2721216860c73f481e1a1e79642e4ef4696","unresolved":false,"context_lines":[{"line_number":36,"context_line":"     * delete object from container."},{"line_number":37,"context_line":"     * list container\u0027s objects and assure that the deleted file is gone."},{"line_number":38,"context_line":"     * delete a container."},{"line_number":39,"context_line":"     * list containers and assure that the deleted container is gone."},{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_57d5abb5","line":39,"updated":"2014-06-24 06:11:15.000000000","message":"test description need update?","commit_id":"49f7a4ca5e8e8dc8ddcae54d197b08565f8c1b53"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"2bb27bd9b22cefde034845f10450dc3329b36f7a","unresolved":false,"context_lines":[{"line_number":36,"context_line":"     * delete object from container."},{"line_number":37,"context_line":"     * list container\u0027s objects and assure that the deleted file is gone."},{"line_number":38,"context_line":"     * delete a container."},{"line_number":39,"context_line":"     * list containers and assure that the deleted container is gone."},{"line_number":40,"context_line":"    \"\"\""},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_790d158f","line":39,"in_reply_to":"1ae5cdf2_57d5abb5","updated":"2014-06-24 23:15:58.000000000","message":"Yep, nice catch.","commit_id":"49f7a4ca5e8e8dc8ddcae54d197b08565f8c1b53"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6fcb72aaf363ddbca42cf1e09e32e2df91ad0c16","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"# Copyright 2014 Catalyst IT Ltd"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_8b6b5d1e","line":2,"updated":"2014-07-23 22:50:56.000000000","message":"I don\u0027t really care about this, but we normally only update the copyright header if there is a significant change to the file, which I\u0027d argue this isn\u0027t. But, I don\u0027t really care as long as you\u0027re not deleting a header.\n\nhttps://wiki.openstack.org/wiki/LegalIssuesFAQ#Copyright_Headers","commit_id":"b79756e9df02ac7155b30196b3fef4b50d515382"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"00d74741e0ad0fba9ac556233266281decdaaaa1","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2013 IBM Corp."},{"line_number":2,"context_line":"# Copyright 2014 Catalyst IT Ltd"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"},{"line_number":5,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_b68ec430","line":2,"in_reply_to":"baada198_8b6b5d1e","updated":"2014-07-24 05:15:30.000000000","message":"I don\u0027t mind removing it.","commit_id":"b79756e9df02ac7155b30196b3fef4b50d515382"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6fcb72aaf363ddbca42cf1e09e32e2df91ad0c16","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _upload_object_to_container(self, container_name, obj_name\u003dNone):"},{"line_number":73,"context_line":"        obj_name \u003d obj_name or data_utils.rand_name(\u0027swift-scenario-object\u0027)"},{"line_number":74,"context_line":"        obj_data \u003d data_utils.rand_name(\u0027obj_data\u0027)"},{"line_number":75,"context_line":"        self.object_storage_client.put_object(container_name, obj_name,"},{"line_number":76,"context_line":"                                              obj_data,"},{"line_number":77,"context_line":"                                              content_type\u003d\u0027text/plain\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_2b7b31f5","line":74,"updated":"2014-07-23 22:50:56.000000000","message":"Should this be a string or binary? I feel like we should just upload a binary blob if we can. It\u0027s not like swift is limited to just strings. But not a deal breaker either way.","commit_id":"b79756e9df02ac7155b30196b3fef4b50d515382"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"00d74741e0ad0fba9ac556233266281decdaaaa1","unresolved":false,"context_lines":[{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def _upload_object_to_container(self, container_name, obj_name\u003dNone):"},{"line_number":73,"context_line":"        obj_name \u003d obj_name or data_utils.rand_name(\u0027swift-scenario-object\u0027)"},{"line_number":74,"context_line":"        obj_data \u003d data_utils.rand_name(\u0027obj_data\u0027)"},{"line_number":75,"context_line":"        self.object_storage_client.put_object(container_name, obj_name,"},{"line_number":76,"context_line":"                                              obj_data,"},{"line_number":77,"context_line":"                                              content_type\u003d\u0027text/plain\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_56aac885","line":74,"in_reply_to":"baada198_2b7b31f5","updated":"2014-07-24 05:15:30.000000000","message":"I don\u0027t think it will impact the test. I was using hash check, but some other reviewer said we can just use string to keep it simple. And seems there is no code to use binary object for swift test. Please let me know if there is.","commit_id":"b79756e9df02ac7155b30196b3fef4b50d515382"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"6fcb72aaf363ddbca42cf1e09e32e2df91ad0c16","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        obj_name, obj_data \u003d self._upload_object_to_container(container_name)"},{"line_number":118,"context_line":"        self._list_and_check_container_objects(container_name, [obj_name])"},{"line_number":119,"context_line":"        self._change_container_acl(container_name,"},{"line_number":120,"context_line":"                                   {\u0027x-container-read\u0027: \u0027.r:*\u0027})"},{"line_number":121,"context_line":"        self._download_and_verify(container_name, obj_name, obj_data)"},{"line_number":122,"context_line":"        self._delete_object(container_name, obj_name)"},{"line_number":123,"context_line":"        self._delete_container(container_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_aba90127","line":120,"updated":"2014-07-23 22:50:56.000000000","message":"So I\u0027m curious what the point of this step is in the workflow. The user who pushed the object should have permissions to read it right? \n\nI don\u0027t see any value in adding this extra step in the workflow. Now if a second user in a different tenant wanted to read it and this would be require then I think it has a place, but that really should be a different test case. If you just want to test the change acl functionality I think that would be better as a dedicated api test. Or is there something I\u0027m missing?","commit_id":"b79756e9df02ac7155b30196b3fef4b50d515382"},{"author":{"_account_id":6484,"name":"Feilong Wang","email":"hustemb@gmail.com","username":"flwang"},"change_message_id":"00d74741e0ad0fba9ac556233266281decdaaaa1","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        obj_name, obj_data \u003d self._upload_object_to_container(container_name)"},{"line_number":118,"context_line":"        self._list_and_check_container_objects(container_name, [obj_name])"},{"line_number":119,"context_line":"        self._change_container_acl(container_name,"},{"line_number":120,"context_line":"                                   {\u0027x-container-read\u0027: \u0027.r:*\u0027})"},{"line_number":121,"context_line":"        self._download_and_verify(container_name, obj_name, obj_data)"},{"line_number":122,"context_line":"        self._delete_object(container_name, obj_name)"},{"line_number":123,"context_line":"        self._delete_container(container_name)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_4dea3275","line":120,"in_reply_to":"baada198_aba90127","updated":"2014-07-24 05:15:30.000000000","message":"Good point, I have uploaded a new ps to download the object by bare http client instead of swift client to make sure the acl is working. Thanks for the comments.","commit_id":"b79756e9df02ac7155b30196b3fef4b50d515382"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"82307b4831bca5ff33a7db5dc109c81ed9df8fb3","unresolved":false,"context_lines":[{"line_number":33,"context_line":"     * upload a file to the created container."},{"line_number":34,"context_line":"     * list container\u0027s objects and assure that the uploaded file is present."},{"line_number":35,"context_line":"     * download the object and check the content"},{"line_number":36,"context_line":"     * change ACL of the container and make sure it works successfully"},{"line_number":37,"context_line":"     * delete object from container."},{"line_number":38,"context_line":"     * list container\u0027s objects and assure that the deleted file is gone."},{"line_number":39,"context_line":"     * delete a container."}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_85138100","line":36,"updated":"2014-07-29 23:46:48.000000000","message":"The test with the acl change and the anonymous download should really be a separate test case. It\u0027s testing a different swift workflow. Right now this test is trying to do too much.","commit_id":"4163e967f9534ac52b9bcaca7506850101bd89d9"},{"author":{"_account_id":7350,"name":"Jordan Pittier","email":"jordan.pittier@gmail.com","username":"JordanP"},"change_message_id":"4b435e26d19f4018380763843ca48fcffc5ba3a4","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        self._change_container_acl(container_name,"},{"line_number":138,"context_line":"                                   {\u0027x-container-read\u0027: \u0027.r:*\u0027})"},{"line_number":139,"context_line":"        resp, _ \u003d http_client.request(obj_url, \u0027GET\u0027)"},{"line_number":140,"context_line":"        self.assertEqual(resp.status, 200)"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_edea5c76","line":140,"updated":"2014-07-30 08:07:52.000000000","message":"You don\u0027t delete the object nor delete the container ? (self._delete_object and self._delete_container)","commit_id":"92bbb369d3ab7c3ad66b28652d012951a041539a"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0c3e0e25c7b183a0abdb6b2ccdb949b05d5e8b55","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class TestSwiftBasicOps(manager.ScenarioTest):"},{"line_number":29,"context_line":"    \"\"\""},{"line_number":30,"context_line":"    Test swift with the follow operations:"},{"line_number":31,"context_line":"     * get swift stat."},{"line_number":32,"context_line":"     * create container."},{"line_number":33,"context_line":"     * upload a file to the created container."}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_dfc2c185","line":30,"updated":"2014-08-25 14:05:14.000000000","message":"I\u0027m not sure we need this docstring if we have 2 for the 2 tests below.","commit_id":"02abbf3d1bfe8ef470c430e2ad8e1c868a373bc3"},{"author":{"_account_id":5196,"name":"Matthew Treinish","email":"mtreinish@kortar.org","username":"treinish"},"change_message_id":"0c3e0e25c7b183a0abdb6b2ccdb949b05d5e8b55","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        self.assertEqual(obj, expected_data)"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @test.services(\u0027object_storage\u0027)"},{"line_number":113,"context_line":"    def test_swift_basic_ops(self):"},{"line_number":114,"context_line":"        self._get_swift_stat()"},{"line_number":115,"context_line":"        container_name \u003d self._create_container()"},{"line_number":116,"context_line":"        obj_name, obj_data \u003d self._upload_object_to_container(container_name)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1abeadc6_5fcf91b3","line":113,"updated":"2014-08-25 14:05:14.000000000","message":"I\u0027m wondering if we should have a docstring here that is simliar to the one for the test below","commit_id":"02abbf3d1bfe8ef470c430e2ad8e1c868a373bc3"}]}
