示例#1
0
    def test_values(self):
        from google.cloud.spanner_dbapi.parser import a_args
        from google.cloud.spanner_dbapi.parser import terminal
        from google.cloud.spanner_dbapi.parser import values

        a_obj = a_args([a_args([terminal(10**i)]) for i in range(10)])
        self.assertEqual(str(values(a_obj)), "VALUES%s" % str(a_obj))
    def test_expect_values(self):
        cases = [
            ("VALUES ()", "", values([a_args([])])),
            ("VALUES", "", values([])),
            ("VALUES(%s)", "", values([a_args([pyfmt_str])])),
            ("    VALUES    (%s)    ", "", values([a_args([pyfmt_str])])),
            ("VALUES(%s, %s)", "", values([a_args([pyfmt_str, pyfmt_str])])),
            (
                "VALUES(%s, %s, LOWER(%s, %s))",
                "",
                values([
                    a_args([
                        pyfmt_str,
                        pyfmt_str,
                        func("LOWER", a_args([pyfmt_str, pyfmt_str])),
                    ])
                ]),
            ),
            (
                "VALUES (UPPER(%s)), (%s)",
                "",
                values([
                    a_args([func("UPPER", a_args([pyfmt_str]))]),
                    a_args([pyfmt_str]),
                ]),
            ),
        ]

        for text, want_unconsumed, want_parsed in cases:
            with self.subTest(text=text):
                got_unconsumed, got_parsed = expect(text, VALUES)
                self.assertEqual(got_parsed, want_parsed)
                self.assertEqual(got_unconsumed, want_unconsumed)
示例#3
0
    def test_expect_values(self):
        from google.cloud.spanner_dbapi.parser import VALUES
        from google.cloud.spanner_dbapi.parser import a_args
        from google.cloud.spanner_dbapi.parser import expect
        from google.cloud.spanner_dbapi.parser import func
        from google.cloud.spanner_dbapi.parser import pyfmt_str
        from google.cloud.spanner_dbapi.parser import values

        cases = [
            ("VALUES ()", "", values([a_args([])])),
            ("VALUES", "", values([])),
            ("VALUES(%s)", "", values([a_args([pyfmt_str])])),
            ("    VALUES    (%s)    ", "", values([a_args([pyfmt_str])])),
            ("VALUES(%s, %s)", "", values([a_args([pyfmt_str, pyfmt_str])])),
            (
                "VALUES(%s, %s, LOWER(%s, %s))",
                "",
                values([
                    a_args([
                        pyfmt_str,
                        pyfmt_str,
                        func("LOWER", a_args([pyfmt_str, pyfmt_str])),
                    ])
                ]),
            ),
            (
                "VALUES (UPPER(%s)), (%s)",
                "",
                values([
                    a_args([func("UPPER", a_args([pyfmt_str]))]),
                    a_args([pyfmt_str])
                ]),
            ),
        ]

        for text, want_unconsumed, want_parsed in cases:
            with self.subTest(text=text):
                got_unconsumed, got_parsed = expect(text, VALUES)
                self.assertEqual(got_parsed, want_parsed)
                self.assertEqual(got_unconsumed, want_unconsumed)