@pytest.mark.crdb_skip("deferrable")
def test_commit_error(conn):
- sql = [
- "drop table if exists selfref;",
- "create table selfref (",
- "x serial primary key,",
- "y int references selfref (x) deferrable initially deferred)",
- ]
-
- conn.execute("".join(sql))
+ conn.execute(
+ """
+ drop table if exists selfref;
+ create table selfref (
+ x serial primary key,
+ y int references selfref (x) deferrable initially deferred)
+ """
+ )
conn.commit()
conn.execute("insert into selfref (y) values (-1)")
@pytest.mark.crdb_skip("deferrable")
async def test_commit_error(aconn):
- sql = [
- "drop table if exists selfref;",
- "create table selfref (",
- "x serial primary key,",
- "y int references selfref (x) deferrable initially deferred)",
- ]
-
- await aconn.execute("".join(sql))
+ await aconn.execute(
+ """
+ drop table if exists selfref;
+ create table selfref (
+ x serial primary key,
+ y int references selfref (x) deferrable initially deferred)
+ """
+ )
await aconn.commit()
await aconn.execute("insert into selfref (y) values (-1)")
def test_rownumber_mixed(conn):
cur = conn.cursor()
- queries = [
- "select x from generate_series(1, 3) x",
- "set timezone to utc",
- "select x from generate_series(4, 6) x",
- ]
- cur.execute(";\n".join(queries))
+ cur.execute(
+ """
+select x from generate_series(1, 3) x;
+set timezone to utc;
+select x from generate_series(4, 6) x;
+"""
+ )
assert cur.rownumber == 0
assert cur.fetchone() == (1,)
assert cur.rownumber == 1
async def test_rownumber_mixed(aconn):
cur = aconn.cursor()
- queries = [
- "select x from generate_series(1, 3) x",
- "set timezone to utc",
- "select x from generate_series(4, 6) x",
- ]
- await cur.execute(";\n".join(queries))
+ await cur.execute(
+ """
+select x from generate_series(1, 3) x;
+set timezone to utc;
+select x from generate_series(4, 6) x;
+"""
+ )
assert cur.rownumber == 0
assert await cur.fetchone() == (1,)
assert cur.rownumber == 1
import os
import sys
+from typing import Any
from argparse import ArgumentParser, Namespace
import ast_comments as ast
# from the original file '{os.path.basename(filename)}'
# DO NOT CHANGE! Change the original file instead.
"""
- rv += ast.unparse(tree)
+ rv += unparse(tree)
return rv
return new_body
+def unparse(tree: ast.AST) -> str:
+ rv: str = Unparser().visit(tree)
+ return rv
+
+
+class Unparser(ast._Unparser):
+ """
+ Try to emit long strings as multiline.
+
+ The normal class only tries to emit docstrings as multiline,
+ but the resulting source doesn't pass flake8.
+ """
+
+ # Beware: private method. Tested with in Python 3.10.
+ def _write_constant(self, value: Any) -> None:
+ if isinstance(value, str) and len(value) > 50:
+ self._write_str_avoiding_backslashes(value)
+ else:
+ super()._write_constant(value)
+
+
def parse_cmdline() -> Namespace:
parser = ArgumentParser(description=__doc__)
parser.add_argument("filename", metavar="FILE", help="the file to process")