From f51a1f6c3cb2929bcf79cb4efe3b2a9886d9c25c Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sun, 14 Feb 2021 12:39:54 -0800 Subject: [PATCH] Run tests against Ubuntu, macOS and Windows With tests fixes for Windows, thanks to @nieuwenhoven in #225. Closes #232 --- .github/workflows/test.yml | 3 ++- tests/test_cli.py | 9 +++++---- tests/test_insert_files.py | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 4f2b030..f8a79ae 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,11 +4,12 @@ on: [push] jobs: test: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} strategy: matrix: python-version: [3.6, 3.7, 3.8, 3.9] numpy: [0, 1] + os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} diff --git a/tests/test_cli.py b/tests/test_cli.py index 52a80e9..e324bdd 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -93,7 +93,7 @@ def test_tables_counts_and_columns_csv(db_path, format, expected): result = CliRunner().invoke( cli.cli, ["tables", "--counts", "--columns", format, db_path] ) - assert result.output.strip() == expected + assert result.output.strip().replace("\r", "") == expected def test_tables_schema(db_path): @@ -870,12 +870,13 @@ def test_query_csv(db_path, format, expected): cli.cli, [db_path, "select id, name, age from dogs", format] ) assert 0 == result.exit_code - assert result.output == expected + assert result.output.replace("\r", "") == expected # Test the no-headers option: result = CliRunner().invoke( cli.cli, [db_path, "select id, name, age from dogs", "--no-headers", format] ) - assert result.output.strip() == "\n".join(expected.split("\n")[1:]).strip() + expected_rest = "\n".join(expected.split("\n")[1:]).strip() + assert result.output.strip().replace("\r", "") == expected_rest _all_query = "select id, name, age from dogs" @@ -1760,7 +1761,7 @@ def test_search(tmpdir, fts, extra_arg, expected): catch_exceptions=False, ) assert result.exit_code == 0 - assert result.output == expected + assert result.output.replace("\r", "") == expected _TRIGGERS_EXPECTED = '[{"name": "blah", "table": "articles", "sql": "CREATE TRIGGER blah AFTER INSERT ON articles\\nBEGIN\\n UPDATE counter SET count = count + 1;\\nEND"}]\n' diff --git a/tests/test_insert_files.py b/tests/test_insert_files.py index f17f279..1a11d2c 100644 --- a/tests/test_insert_files.py +++ b/tests/test_insert_files.py @@ -1,5 +1,6 @@ from sqlite_utils import cli, Database from click.testing import CliRunner +import os import pathlib @@ -42,7 +43,7 @@ def test_insert_files(): one, two, three = ( rows_by_path["one.txt"], rows_by_path["two.txt"], - rows_by_path["nested/three.txt"], + rows_by_path[os.path.join("nested", "three.txt")], ) assert { "content": b"This is file one", @@ -64,7 +65,7 @@ def test_insert_files(): "content": b"Three is nested", "md5": "12580f341781f5a5b589164d3cd39523", "name": "three.txt", - "path": "nested/three.txt", + "path": os.path.join("nested", "three.txt"), "sha256": "6dd45aaaaa6b9f96af19363a92c8fca5d34791d3c35c44eb19468a6a862cc8cd", "size": 15, }.items() <= three.items()