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)
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)