)]}'
{"test/functional/__init__.py":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9f1d9a8427393e36f0525de2e54d4c05b3c7db45","unresolved":false,"context_lines":[{"line_number":268,"context_line":""},{"line_number":269,"context_line":"def get_storage_policy_from_cluster_info(info):"},{"line_number":270,"context_line":"    policies \u003d info[\u0027swift\u0027].get(\u0027policies\u0027, {})"},{"line_number":271,"context_line":"    default_policy \u003d []"},{"line_number":272,"context_line":"    non_default_policies \u003d []"},{"line_number":273,"context_line":"    for p in policies:"},{"line_number":274,"context_line":"        if p.get(\u0027default\u0027, {}):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FRoo%3D","line":271,"updated":"2014-04-15 16:26:38.000000000","message":"does really need to be a list since there can only be one?  maybe I\u0027ll see the reason later in the review...","commit_id":"85f9bb7cc6bd8fca347e77c2626b0fcc1596e81f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9f1d9a8427393e36f0525de2e54d4c05b3c7db45","unresolved":false,"context_lines":[{"line_number":311,"context_line":"    return wrapper"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"def requires_policies(f):"},{"line_number":315,"context_line":"    @functools.wraps(f)"},{"line_number":316,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":317,"context_line":"        rv \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FRoU%3D","line":314,"updated":"2014-04-15 16:26:38.000000000","message":"this is way cool!  based on this I think SAIO needs to come pre-built with 2 policies so we get functional test coverage without asking people to make changes to their SAIO","commit_id":"85f9bb7cc6bd8fca347e77c2626b0fcc1596e81f"}],"test/functional/test_container.py":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9f1d9a8427393e36f0525de2e54d4c05b3c7db45","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"        def put(url, token, parsed, conn):"},{"line_number":1361,"context_line":"            conn.request(\u0027PUT\u0027, parsed.path + \u0027/\u0027 + a_con, \u0027\u0027,"},{"line_number":1362,"context_line":"                         {\u0027X-Auth-Token\u0027: token,"},{"line_number":1363,"context_line":"                          \u0027X-Storage-Policy\u0027: default_policy})"},{"line_number":1364,"context_line":"            return check_response(conn)"},{"line_number":1365,"context_line":"        resp \u003d retry(put)"},{"line_number":1366,"context_line":"        resp.read()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FRjA%3D","line":1363,"updated":"2014-04-15 16:26:38.000000000","message":"the header name should be imported from storage_policy.py (we\u0027ll likely change the name from POLICY_INDEX to something else soon but using it as is will make sure we find it later).  Sam comment everywhere its used","commit_id":"85f9bb7cc6bd8fca347e77c2626b0fcc1596e81f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9f1d9a8427393e36f0525de2e54d4c05b3c7db45","unresolved":false,"context_lines":[{"line_number":1410,"context_line":"        resp.read()"},{"line_number":1411,"context_line":"        self.assert_(resp.status in (200, 204), resp.status)"},{"line_number":1412,"context_line":"        self.assertEqual(resp.getheader(\u0027x-storage-policy\u0027), other_policy)"},{"line_number":1413,"context_line":""},{"line_number":1414,"context_line":""},{"line_number":1415,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":1416,"context_line":"    unittest.main()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FRhY%3D","line":1413,"updated":"2014-04-15 16:26:38.000000000","message":"few others that I think can be added here quickly:\n1) assert a bad request (use invalid policy name)\n2) PUT/POST and try to change policy to get a 409\n3) list_endpoints and confirm output\n4) acct HEAD and confirm output\n5) try sending in the policy index (instead of name)\n... will probably think of others too","commit_id":"85f9bb7cc6bd8fca347e77c2626b0fcc1596e81f"}],"test/functional/test_object.py":[{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9f1d9a8427393e36f0525de2e54d4c05b3c7db45","unresolved":false,"context_lines":[{"line_number":1063,"context_line":"        resp.read()"},{"line_number":1064,"context_line":"        self.assertEquals(resp.status, 201)"},{"line_number":1065,"context_line":""},{"line_number":1066,"context_line":"        #Test Copy objects between policies"},{"line_number":1067,"context_line":"        ###################################"},{"line_number":1068,"context_line":"        default \u003d \u0027%s/%s\u0027 % (self.container, self.obj)"},{"line_number":1069,"context_line":"        default2 \u003d \u0027%s/%s\u0027 % (self.container, \u0027default2\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FRhE%3D","line":1066,"updated":"2014-04-15 16:26:38.000000000","message":"nice!","commit_id":"85f9bb7cc6bd8fca347e77c2626b0fcc1596e81f"},{"author":{"_account_id":7479,"name":"paul luse","email":"paul.e.luse@intel.com","username":"peluse"},"change_message_id":"9f1d9a8427393e36f0525de2e54d4c05b3c7db45","unresolved":false,"context_lines":[{"line_number":1123,"context_line":"        dest_contents \u003d resp.read()"},{"line_number":1124,"context_line":"        self.assertEqual(resp.status, 200)"},{"line_number":1125,"context_line":"        self.assertEqual(dest_contents, source_contents)"},{"line_number":1126,"context_line":""},{"line_number":1127,"context_line":""},{"line_number":1128,"context_line":"if __name__ \u003d\u003d \u0027__main__\u0027:"},{"line_number":1129,"context_line":"    unittest.main()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FRgM%3D","line":1126,"updated":"2014-04-15 16:26:38.000000000","message":"some other tests to add:\n1) list_endpoints on the object\n2) acct HEAD again for byte totals (well, confirm all of it but now you have bytes_used)","commit_id":"85f9bb7cc6bd8fca347e77c2626b0fcc1596e81f"}]}
