def testToJSonResponse(self):
        description = ["col1", "col2", "col3"]
        data = [("1", "2", "3"), ("a", "b", "c"), ("One", "Two", "Three")]
        req_id = 4
        table = DataTable(description, data)

        start_str_default = r"google.visualization.Query.setResponse"
        start_str_handler = r"MyHandlerFunction"

        json_str = table.ToJSon().strip()

        json_response = table.ToJSonResponse(req_id=req_id)

        self.assertEqual(json_response.find(start_str_default + "("), 0)

        json_response_obj = json.loads(json_response[len(start_str_default) +
                                                     1:-2])
        self.assertEqual(json_response_obj["table"], json.loads(json_str))
        self.assertEqual(json_response_obj["version"], "0.6")
        self.assertEqual(json_response_obj["reqId"], str(req_id))
        self.assertEqual(json_response_obj["status"], "ok")

        json_response = table.ToJSonResponse(
            req_id=req_id, response_handler=start_str_handler)

        self.assertEqual(json_response.find(start_str_handler + "("), 0)
        json_response_obj = json.loads(json_response[len(start_str_handler) +
                                                     1:-2])
        self.assertEqual(json_response_obj["table"], json.loads(json_str))
    def testToResponse(self):
        description = ["col1", "col2", "col3"]
        data = [("1", "2", "3"), ("a", "b", "c"), ("One", "Two", "Three")]
        table = DataTable(description, data)

        self.assertEqual(table.ToResponse(), table.ToJSonResponse())
        self.assertEqual(table.ToResponse(tqx="out:csv"), table.ToCsv())
        self.assertEqual(table.ToResponse(tqx="out:html"), table.ToHtml())
        self.assertRaises(DataTableException,
                          table.ToResponse,
                          tqx="version:0.1")
        self.assertEqual(
            table.ToResponse(tqx="reqId:4;responseHandler:handle"),
            table.ToJSonResponse(req_id=4, response_handler="handle"))
        self.assertEqual(table.ToResponse(tqx="out:csv;reqId:4"),
                         table.ToCsv())
        self.assertEqual(table.ToResponse(order_by="col2"),
                         table.ToJSonResponse(order_by="col2"))
        self.assertEqual(
            table.ToResponse(tqx="out:html",
                             columns_order=("col3", "col2", "col1")),
            table.ToHtml(columns_order=("col3", "col2", "col1")))
        self.assertRaises(ValueError,
                          table.ToResponse,
                          tqx="SomeWrongTqxFormat")
        self.assertRaises(DataTableException, table.ToResponse, tqx="out:bad")
예제 #3
0
    def testToJSonResponse(self):
        description = ["col1", "col2", "col3"]
        data = [("1", "2", "3"), ("a", "b", "c"), ("One", "Two", "Three")]
        req_id = 4
        table = DataTable(description, data)

        start_str_default = r"google.visualization.Query.setResponse"
        start_str_handler = r"MyHandlerFunction"
        default_params = (
            r"\s*'version'\s*:\s*'0.6'\s*,\s*'reqId'\s*:\s*'%s'\s*,"
            r"\s*'status'\s*:\s*'OK'\s*" % req_id)
        regex1 = re.compile("%s\(\s*\{%s,\s*'table'\s*:\s*{(.*)}\s*\}\s*\);" %
                            (start_str_default, default_params))
        regex2 = re.compile("%s\(\s*\{%s,\s*'table'\s*:\s*{(.*)}\s*\}\s*\);" %
                            (start_str_handler, default_params))

        json_str = table.ToJSon().strip()

        json_response = table.ToJSonResponse(req_id=req_id)
        match = regex1.findall(json_response)
        self.assertEquals(len(match), 1)
        # We want to match against the json_str without the curly brackets.
        self.assertEquals(match[0], json_str[1:-1])

        json_response = table.ToJSonResponse(
            req_id=req_id, response_handler=start_str_handler)
        match = regex2.findall(json_response)
        self.assertEquals(len(match), 1)
        # We want to match against the json_str without the curly brackets.
        self.assertEquals(match[0], json_str[1:-1])