From b4735f794a77c1229e804b97a263d259b5430fb8 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Thu, 17 Aug 2023 17:59:09 -0700 Subject: [PATCH] Remove test.utils.collapse_whitespace, closes #583 --- tests/test_cli.py | 33 +++++++++++-------------- tests/test_create.py | 57 +++++++++++++++++++++++++++++--------------- tests/utils.py | 7 ------ 3 files changed, 52 insertions(+), 45 deletions(-) delete mode 100644 tests/utils.py diff --git a/tests/test_cli.py b/tests/test_cli.py index d255abc..45327fc 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -10,8 +10,6 @@ import os import pytest import textwrap -from .utils import collapse_whitespace - def write_json(file_path, data): with open(file_path, "w") as fp: @@ -273,28 +271,26 @@ def test_create_index_desc(db_path): @pytest.mark.parametrize( "col_name,col_type,expected_schema", ( - ("text", "TEXT", "CREATE TABLE [dogs] ( [name] TEXT , [text] TEXT)"), + ("text", "TEXT", "CREATE TABLE [dogs] (\n [name] TEXT\n, [text] TEXT)"), ( "integer", "INTEGER", - "CREATE TABLE [dogs] ( [name] TEXT , [integer] INTEGER)", + "CREATE TABLE [dogs] (\n [name] TEXT\n, [integer] INTEGER)", ), - ("float", "FLOAT", "CREATE TABLE [dogs] ( [name] TEXT , [float] FLOAT)"), - ("blob", "blob", "CREATE TABLE [dogs] ( [name] TEXT , [blob] BLOB)"), - ("default", None, "CREATE TABLE [dogs] ( [name] TEXT , [default] TEXT)"), + ("float", "FLOAT", "CREATE TABLE [dogs] (\n [name] TEXT\n, [float] FLOAT)"), + ("blob", "blob", "CREATE TABLE [dogs] (\n [name] TEXT\n, [blob] BLOB)"), + ("default", None, "CREATE TABLE [dogs] (\n [name] TEXT\n, [default] TEXT)"), ), ) def test_add_column(db_path, col_name, col_type, expected_schema): db = Database(db_path) db.create_table("dogs", {"name": str}) - assert "CREATE TABLE [dogs] ( [name] TEXT )" == collapse_whitespace( - db["dogs"].schema - ) + assert db["dogs"].schema == "CREATE TABLE [dogs] (\n [name] TEXT\n)" args = ["add-column", db_path, "dogs", col_name] if col_type is not None: args.append(col_type) - assert 0 == CliRunner().invoke(cli.cli, args).exit_code - assert expected_schema == collapse_whitespace(db["dogs"].schema) + assert CliRunner().invoke(cli.cli, args).exit_code == 0 + assert db["dogs"].schema == expected_schema @pytest.mark.parametrize("ignore", (True, False)) @@ -313,9 +309,7 @@ def test_add_column_ignore(db_path, ignore): def test_add_column_not_null_default(db_path): db = Database(db_path) db.create_table("dogs", {"name": str}) - assert "CREATE TABLE [dogs] ( [name] TEXT )" == collapse_whitespace( - db["dogs"].schema - ) + assert db["dogs"].schema == "CREATE TABLE [dogs] (\n [name] TEXT\n)" args = [ "add-column", db_path, @@ -324,10 +318,11 @@ def test_add_column_not_null_default(db_path): "--not-null-default", "dogs'dawg", ] - assert 0 == CliRunner().invoke(cli.cli, args).exit_code - assert ( - "CREATE TABLE [dogs] ( [name] TEXT , [nickname] TEXT NOT NULL DEFAULT 'dogs''dawg')" - == collapse_whitespace(db["dogs"].schema) + assert CliRunner().invoke(cli.cli, args).exit_code == 0 + assert db["dogs"].schema == ( + "CREATE TABLE [dogs] (\n" + " [name] TEXT\n" + ", [nickname] TEXT NOT NULL DEFAULT 'dogs''dawg')" ) diff --git a/tests/test_create.py b/tests/test_create.py index 9deb2a5..6dbbb91 100644 --- a/tests/test_create.py +++ b/tests/test_create.py @@ -18,7 +18,6 @@ import pathlib import pytest import uuid -from .utils import collapse_whitespace try: import pandas as pd # type: ignore @@ -329,46 +328,64 @@ def test_create_error_if_invalid_self_referential_foreign_keys(fresh_db): @pytest.mark.parametrize( "col_name,col_type,not_null_default,expected_schema", ( - ("nickname", str, None, "CREATE TABLE [dogs] ( [name] TEXT , [nickname] TEXT)"), - ("dob", datetime.date, None, "CREATE TABLE [dogs] ( [name] TEXT , [dob] TEXT)"), - ("age", int, None, "CREATE TABLE [dogs] ( [name] TEXT , [age] INTEGER)"), - ("weight", float, None, "CREATE TABLE [dogs] ( [name] TEXT , [weight] FLOAT)"), - ("text", "TEXT", None, "CREATE TABLE [dogs] ( [name] TEXT , [text] TEXT)"), + ( + "nickname", + str, + None, + "CREATE TABLE [dogs] (\n [name] TEXT\n, [nickname] TEXT)", + ), + ( + "dob", + datetime.date, + None, + "CREATE TABLE [dogs] (\n [name] TEXT\n, [dob] TEXT)", + ), + ("age", int, None, "CREATE TABLE [dogs] (\n [name] TEXT\n, [age] INTEGER)"), + ( + "weight", + float, + None, + "CREATE TABLE [dogs] (\n [name] TEXT\n, [weight] FLOAT)", + ), + ("text", "TEXT", None, "CREATE TABLE [dogs] (\n [name] TEXT\n, [text] TEXT)"), ( "integer", "INTEGER", None, - "CREATE TABLE [dogs] ( [name] TEXT , [integer] INTEGER)", + "CREATE TABLE [dogs] (\n [name] TEXT\n, [integer] INTEGER)", ), - ("float", "FLOAT", None, "CREATE TABLE [dogs] ( [name] TEXT , [float] FLOAT)"), - ("blob", "blob", None, "CREATE TABLE [dogs] ( [name] TEXT , [blob] BLOB)"), + ( + "float", + "FLOAT", + None, + "CREATE TABLE [dogs] (\n [name] TEXT\n, [float] FLOAT)", + ), + ("blob", "blob", None, "CREATE TABLE [dogs] (\n [name] TEXT\n, [blob] BLOB)"), ( "default_str", None, None, - "CREATE TABLE [dogs] ( [name] TEXT , [default_str] TEXT)", + "CREATE TABLE [dogs] (\n [name] TEXT\n, [default_str] TEXT)", ), ( "nickname", str, "", - "CREATE TABLE [dogs] ( [name] TEXT , [nickname] TEXT NOT NULL DEFAULT '')", + "CREATE TABLE [dogs] (\n [name] TEXT\n, [nickname] TEXT NOT NULL DEFAULT '')", ), ( "nickname", str, "dawg's dawg", - "CREATE TABLE [dogs] ( [name] TEXT , [nickname] TEXT NOT NULL DEFAULT 'dawg''s dawg')", + "CREATE TABLE [dogs] (\n [name] TEXT\n, [nickname] TEXT NOT NULL DEFAULT 'dawg''s dawg')", ), ), ) def test_add_column(fresh_db, col_name, col_type, not_null_default, expected_schema): fresh_db.create_table("dogs", {"name": str}) - assert "CREATE TABLE [dogs] ( [name] TEXT )" == collapse_whitespace( - fresh_db["dogs"].schema - ) + assert fresh_db["dogs"].schema == "CREATE TABLE [dogs] (\n [name] TEXT\n)" fresh_db["dogs"].add_column(col_name, col_type, not_null_default=not_null_default) - assert expected_schema == collapse_whitespace(fresh_db["dogs"].schema) + assert fresh_db["dogs"].schema == expected_schema def test_add_foreign_key(fresh_db): @@ -492,9 +509,11 @@ def test_add_foreign_key_guess_table(fresh_db): fresh_db.create_table("breeds", {"name": str, "id": int}, pk="id") fresh_db["dogs"].add_column("breed_id", int) fresh_db["dogs"].add_foreign_key("breed_id") - assert ( - collapse_whitespace(fresh_db["dogs"].schema) - == 'CREATE TABLE "dogs" ( [name] TEXT, [breed_id] INTEGER REFERENCES [breeds]([id]) )' + assert fresh_db["dogs"].schema == ( + 'CREATE TABLE "dogs" (\n' + " [name] TEXT,\n" + " [breed_id] INTEGER REFERENCES [breeds]([id])\n" + ")" ) diff --git a/tests/utils.py b/tests/utils.py deleted file mode 100644 index 1e3d968..0000000 --- a/tests/utils.py +++ /dev/null @@ -1,7 +0,0 @@ -import re - -COLLAPSE_RE = re.compile(r"\s+") - - -def collapse_whitespace(s): - return COLLAPSE_RE.sub(" ", s)