From 4987551acdb4fb703514f898f2abe7f7ed0e99c9 Mon Sep 17 00:00:00 2001 From: Chris Gregan Date: Thu, 7 May 2026 13:31:38 +0100 Subject: [PATCH 1/3] Refactor cel.test() to use pytest internally Introduce a pytest-based integration test suite and hook it into the Python proxy build/run flow. Adds a new packages/celbridge/src/celbridge/integration_tests package (CelbridgeReporter, conftest, helpers and many test modules for app/document/explorer/file/file_edit/file_line_endings/package/query/spreadsheet/webview), and removes the old test_suite.py. celbridge.cel_proxy now delegates cel.test(...) to integration_tests.run_suite. Build changes: pyproject.toml adds pytest dependency; build.py no longer captures subprocess output; the .csproj includes recursive Python source globs and delegates wheel building to build.py for the net9.0 target. Also updates the checked-in wheel asset (Assets/Python/celbridge-0.1.0-py3-none-any.whl). --- .../Python/celbridge-0.1.0-py3-none-any.whl | Bin 31919 -> 37610 bytes .../Celbridge.Python/Celbridge.Python.csproj | 26 +- Source/Workspace/Celbridge.Python/build.py | 2 +- .../packages/celbridge/pyproject.toml | 1 + .../celbridge/src/celbridge/cel_proxy.py | 4 +- .../celbridge/integration_tests/__init__.py | 183 ++ .../celbridge/integration_tests/conftest.py | 47 + .../celbridge/integration_tests/helpers.py | 34 + .../celbridge/integration_tests/test_app.py | 29 + .../integration_tests/test_document.py | 67 + .../integration_tests/test_explorer.py | 112 + .../celbridge/integration_tests/test_file.py | 223 ++ .../integration_tests/test_file_edit.py | 223 ++ .../test_file_line_endings.py | 139 + .../integration_tests/test_package.py | 103 + .../celbridge/integration_tests/test_query.py | 24 + .../integration_tests/test_spreadsheet.py | 698 +++++ .../integration_tests/test_webview.py | 485 ++++ .../celbridge/src/celbridge/test_suite.py | 2351 ----------------- 19 files changed, 2380 insertions(+), 2371 deletions(-) create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/__init__.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/conftest.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/helpers.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_app.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_document.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_explorer.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_file.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_file_edit.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_file_line_endings.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_package.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_query.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_spreadsheet.py create mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/integration_tests/test_webview.py delete mode 100644 Source/Workspace/Celbridge.Python/packages/celbridge/src/celbridge/test_suite.py diff --git a/Source/Workspace/Celbridge.Python/Assets/Python/celbridge-0.1.0-py3-none-any.whl b/Source/Workspace/Celbridge.Python/Assets/Python/celbridge-0.1.0-py3-none-any.whl index beea0dfc02e63167ff57fe5e4b7cac83fde5da0e..9c87963b85745cb94c16197de83937600e1a0728 100644 GIT binary patch delta 27251 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 X7yKg}Ng^gD1`q@A{*Vvz|4Z>-NO8wB diff --git a/Source/Workspace/Celbridge.Python/Celbridge.Python.csproj b/Source/Workspace/Celbridge.Python/Celbridge.Python.csproj index b78781c5..d55665d5 100644 --- a/Source/Workspace/Celbridge.Python/Celbridge.Python.csproj +++ b/Source/Workspace/Celbridge.Python/Celbridge.Python.csproj @@ -49,30 +49,22 @@ $(MSBuildThisFileDirectory)packages\celbridge $(MSBuildThisFileDirectory)Assets\Python $(PythonAssetsFolder)\celbridge-0.1.0-py3-none-any.whl - - $(MSBuildThisFileDirectory)obj\uv_temp - + - - + - - - - - - - - - - - + Condition="'$(TargetFramework)' == 'net9.0-windows10.0.22621'"> + +