Skip to content

Ensure that the tests work even if BinaryFormatter is not available#2638

Merged
filmor merged 10 commits into
masterfrom
no-stashing-embedding-tests
Dec 8, 2025
Merged

Ensure that the tests work even if BinaryFormatter is not available#2638
filmor merged 10 commits into
masterfrom
no-stashing-embedding-tests

Conversation

@filmor
Copy link
Copy Markdown
Member

@filmor filmor commented Oct 21, 2025

Summary

  • Run most tests in a single Python instance, initialized at start and shutdown at the end
  • Improve uv CI setup
  • Fix python test runner by essentially replacing it with a call to pytest.main
  • Improve the PythonDLL exception
  • Run tests that require reinitialization of the PythonEngine only on .NET Framework/Mono, where we still have a working formatter for the stashing

TODO:

  • Remove PythonEngine.Initialize() and .Shutdown() from all fixtures where it's not strictly necessary
  • Ensure that all fixtures reset the environment (e.g. by adjusting the base type providers and codecs back to the default)
  • Move the remaining fixtures into a separate project that runs all actual tests in individual processes (not needed, we can run those tests on Mono)
  • Reenable all disabled tests (all but the low-level ones)
  • Fix the domain reload tests (or ditch them)

@filmor filmor force-pushed the no-stashing-embedding-tests branch from ccca132 to bbd8582 Compare October 22, 2025 19:38
@filmor filmor added this to the 3.1.0 milestone Oct 22, 2025
@filmor filmor force-pushed the no-stashing-embedding-tests branch 4 times, most recently from e8e6f90 to 2bd1a64 Compare October 26, 2025 18:02
@filmor filmor mentioned this pull request Oct 31, 2025
3 tasks
@filmor filmor force-pushed the no-stashing-embedding-tests branch 6 times, most recently from 710d2e0 to baf36d2 Compare December 8, 2025 09:57
@filmor filmor force-pushed the no-stashing-embedding-tests branch from baf36d2 to 01cacfb Compare December 8, 2025 10:00
@filmor filmor force-pushed the no-stashing-embedding-tests branch from 01cacfb to 2f24a35 Compare December 8, 2025 10:08
@filmor filmor marked this pull request as ready for review December 8, 2025 10:14
@filmor filmor merged commit bd15f2d into master Dec 8, 2025
22 checks passed
@filmor filmor deleted the no-stashing-embedding-tests branch December 8, 2025 10:15
CurtHagenlocher pushed a commit to apache/arrow-dotnet that referenced this pull request May 25, 2026
Updated [pythonnet](https://github.com/pythonnet/pythonnet) from 3.0.5
to 3.1.0.

<details>
<summary>Release notes</summary>

_Sourced from [pythonnet's
releases](https://github.com/pythonnet/pythonnet/releases)._

## 3.1.0

## What's Changed
* ci: properly exclude job by @​RobPasMue in
pythonnet/pythonnet#2542
* `__delitem__` for `IList<T>` and `IDictionary<K,V>` by @​lostmsu in
pythonnet/pythonnet#2533
* Fix docs workflow by @​filmor in
pythonnet/pythonnet#2584
* Drop EOLd Python versions by @​filmor in
pythonnet/pythonnet#2632
* Bump setuptools and adjust license information by @​filmor in
pythonnet/pythonnet#2633
* Minimal .NET 8 usage changes by @​filmor in
pythonnet/pythonnet#2634
* Drop performance tests by @​filmor in
pythonnet/pythonnet#2636
* Properly detect availability of BinaryFormatter by @​filmor in
pythonnet/pythonnet#2639
* Use last compiler toolset version that support .NET 8 by @​filmor in
pythonnet/pythonnet#2640
* Add dependabot file by @​filmor in
pythonnet/pythonnet#2642
* Use official ARM runners by @​filmor in
pythonnet/pythonnet#2641
* Bump actions/upload-pages-artifact from 3 to 4 by @​dependabot[bot] in
pythonnet/pythonnet#2644
* Bump actions/setup-python from 2 to 6 by @​dependabot[bot] in
pythonnet/pythonnet#2646
* Bump actions/checkout from 2 to 5 by @​dependabot[bot] in
pythonnet/pythonnet#2648
* Bump actions/setup-dotnet from 1 to 5 by @​dependabot[bot] in
pythonnet/pythonnet#2645
* Use uv and derive as much as possible from the environment, if
available by @​filmor in
pythonnet/pythonnet#2652
* Fixes for the uv CI by @​filmor in
pythonnet/pythonnet#2654
* Bump astral-sh/setup-uv from 6 to 7 by @​dependabot[bot] in
pythonnet/pythonnet#2656
* Bump actions/checkout from 5 to 6 by @​dependabot[bot] in
pythonnet/pythonnet#2663
* Ensure that the tests work even if BinaryFormatter is not available by
@​filmor in pythonnet/pythonnet#2638
* Bump NUnit3TestAdapter from 5.2.0 to 6.0.0 by @​dependabot[bot] in
pythonnet/pythonnet#2667
* Fix line endings by @​filmor in
pythonnet/pythonnet#2668
* Switch to .NET SDK 10 by @​lostmsu in
pythonnet/pythonnet#2684
* Python 3.14 by @​filmor in
pythonnet/pythonnet#2611
* CI Improvements by @​filmor in
pythonnet/pythonnet#2669
* Bump System.Reflection.Emit from 4.3.0 to 4.7.0 by @​dependabot[bot]
in pythonnet/pythonnet#2694
* Bump pytest from 9.0.2 to 9.0.3 in the uv group across 1 directory by
@​dependabot[bot] in pythonnet/pythonnet#2705
* CI Improvements by @​filmor in
pythonnet/pythonnet#2707
* Fix method memleak test by @​filmor in
pythonnet/pythonnet#2708
* Bump actions/upload-pages-artifact from 4 to 5 by @​dependabot[bot] in
pythonnet/pythonnet#2709
* Update furo requirement from >=2022.9.15 to >=2025.12.19 by
@​dependabot[bot] in pythonnet/pythonnet#2711
* Move documentation deps to pyproject.toml by @​filmor in
pythonnet/pythonnet#2714
* Support .NET Framework 4.6.1 by @​Metadorius in
pythonnet/pythonnet#2701
* Fix wheel tags by @​filmor in
pythonnet/pythonnet#2716
* Name missing from __all__ on re-import by @​filmor in
pythonnet/pythonnet#2717
* Add context manager protocol for .NET IDisposable types by
@​den-run-ai in pythonnet/pythonnet#2568
* Fix MethodBinding/OverloadMapper memory leak (#​691) by
@​greateggsgreg in pythonnet/pythonnet#2719
* Bump urllib3 from 2.6.3 to 2.7.0 in the uv group across 1 directory by
@​dependabot[bot] in pythonnet/pythonnet#2723
* Update NUnit by @​filmor in
pythonnet/pythonnet#2724
* Silence compile-time warnings by @​filmor in
pythonnet/pythonnet#2725
* Implement support for DLR get/set by @​filmor in
pythonnet/pythonnet#2706
* Bump idna from 3.13 to 3.15 in the uv group across 1 directory by
@​dependabot[bot] in pythonnet/pythonnet#2726

## New Contributors
* @​RobPasMue made their first contribution in
pythonnet/pythonnet#2542
* @​dependabot[bot] made their first contribution in
pythonnet/pythonnet#2644
* @​Metadorius made their first contribution in
pythonnet/pythonnet#2701

**Full Changelog**:
pythonnet/pythonnet@v3.0.5...v3.1.0

## 3.1.0-rc1

## What's Changed
* CI Improvements by @​filmor in
pythonnet/pythonnet#2669
* Bump System.Reflection.Emit from 4.3.0 to 4.7.0 by @​dependabot[bot]
in pythonnet/pythonnet#2694
* Bump pytest from 9.0.2 to 9.0.3 in the uv group across 1 directory by
@​dependabot[bot] in pythonnet/pythonnet#2705
* CI Improvements by @​filmor in
pythonnet/pythonnet#2707
* Fix method memleak test by @​filmor in
pythonnet/pythonnet#2708
* Bump actions/upload-pages-artifact from 4 to 5 by @​dependabot[bot] in
pythonnet/pythonnet#2709
* Update furo requirement from >=2022.9.15 to >=2025.12.19 by
@​dependabot[bot] in pythonnet/pythonnet#2711
* Move documentation deps to pyproject.toml by @​filmor in
pythonnet/pythonnet#2714
* Support .NET Framework 4.6.1 by @​Metadorius in
pythonnet/pythonnet#2701
* Fix wheel tags by @​filmor in
pythonnet/pythonnet#2716
* Name missing from __all__ on re-import by @​filmor in
pythonnet/pythonnet#2717
* Add context manager protocol for .NET IDisposable types by
@​den-run-ai in pythonnet/pythonnet#2568
* Fix MethodBinding/OverloadMapper memory leak (#​691) by
@​greateggsgreg in pythonnet/pythonnet#2719
* Bump urllib3 from 2.6.3 to 2.7.0 in the uv group across 1 directory by
@​dependabot[bot] in pythonnet/pythonnet#2723
* Update NUnit by @​filmor in
pythonnet/pythonnet#2724
* Silence compile-time warnings by @​filmor in
pythonnet/pythonnet#2725
* Implement support for DLR get/set by @​filmor in
pythonnet/pythonnet#2706

## New Contributors
* @​Metadorius made their first contribution in
pythonnet/pythonnet#2701

**Full Changelog**:
pythonnet/pythonnet@v3.1.0-rc0...v3.1.0-rc1

## 3.1.0-rc0

## What's Changed
* ci: properly exclude job by @​RobPasMue in
pythonnet/pythonnet#2542
* `__delitem__` for `IList<T>` and `IDictionary<K,V>` by @​lostmsu in
pythonnet/pythonnet#2533
* Fix docs workflow by @​filmor in
pythonnet/pythonnet#2584
* Drop EOLd Python versions by @​filmor in
pythonnet/pythonnet#2632
* Bump setuptools and adjust license information by @​filmor in
pythonnet/pythonnet#2633
* Minimal .NET 8 usage changes by @​filmor in
pythonnet/pythonnet#2634
* Drop performance tests by @​filmor in
pythonnet/pythonnet#2636
* Properly detect availability of BinaryFormatter by @​filmor in
pythonnet/pythonnet#2639
* Use last compiler toolset version that support .NET 8 by @​filmor in
pythonnet/pythonnet#2640
* Add dependabot file by @​filmor in
pythonnet/pythonnet#2642
* Use official ARM runners by @​filmor in
pythonnet/pythonnet#2641
* Use uv and derive as much as possible from the environment, if
available by @​filmor in
pythonnet/pythonnet#2652
* Fixes for the uv CI by @​filmor in
pythonnet/pythonnet#2654
* Ensure that the tests work even if BinaryFormatter is not available by
@​filmor in pythonnet/pythonnet#2638
* Fix line endings by @​filmor in
pythonnet/pythonnet#2668
* Switch to .NET SDK 10 by @​lostmsu in
pythonnet/pythonnet#2684
* Python 3.14 by @​filmor in
pythonnet/pythonnet#2611

## New Contributors
* @​RobPasMue made their first contribution in
pythonnet/pythonnet#2542
* @​dependabot[bot] made their first contribution in
pythonnet/pythonnet#2644

**Full Changelog**:
pythonnet/pythonnet@v3.0.5...v3.1.0-rc0

Commits viewable in [compare
view](pythonnet/pythonnet@v3.0.5...v3.1.0).
</details>

[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pythonnet&package-manager=nuget&previous-version=3.0.5&new-version=3.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant