Skip to content

fix(cosmosdb): replace distutils.strtobool removed in Python 3.12 - #1018

Merged
alexanderankin merged 2 commits into
testcontainers:mainfrom
FidelusAleksander:fix/cosmosdb-remove-distutils
Jun 2, 2026
Merged

fix(cosmosdb): replace distutils.strtobool removed in Python 3.12#1018
alexanderankin merged 2 commits into
testcontainers:mainfrom
FidelusAleksander:fix/cosmosdb-remove-distutils

Conversation

@FidelusAleksander

@FidelusAleksanderFidelusAleksander commented May 29, 2026

Copy link
Copy Markdown
Contributor

Problem

The cosmosdb module imports distutils.util.strtobool in _emulator.py. The distutils module was deprecated in Python 3.10 (PEP 632) and removed in Python 3.12. This causes an ImportError when using the CosmosDB module on Python 3.12+:

ModuleNotFoundError: No module named 'distutils'

distutils was deprecated in Python 3.10 (PEP 632) and removed in 3.12.
The cosmosdb module imports distutils.util.strtobool, which causes an
ImportError on Python 3.12+.
Replace with inline env-var truthiness checks against a module-level
constant — no helper function or external dependency needed.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@FidelusAleksander
FidelusAleksanderforce-pushed the fix/cosmosdb-remove-distutils branch from 21d2c2f to faaebc1CompareMay 29, 2026 15:09
@codecov

codecovBot commented May 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.06%. Comparing base (1fadb40) to head (238fc23).

Additional details and impacted files
@@ Coverage Diff @@## main #1018 +/- ##
=======================================
Coverage 83.06% 83.06% =======================================
Files 16 16 Lines 1730 1730 Branches 190 190 =======================================
Hits 1437 1437 Misses 236 236 Partials 57 57 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Tranquility2

Copy link
Copy Markdown
Contributor

LGTM

@alexanderankin
alexanderankin merged commit 3e487f4 into testcontainers:mainJun 2, 2026
12 checks passed
alexanderankin added a commit that referenced this pull request Jun 3, 2026
🤖 I have created a release *beep* *boop*
---
##
[4.15.0-rc3](testcontainers-v4.15.0-rc2...testcontainers-v4.15.0-rc3)
(2026-06-03)
### Features
* **core:** add Podman compatibility
([#1028](#1028))
([37093ab](37093ab))
* **core:** auto-detect DOCKER_HOST from current docker context
([#1026](#1026))
([d4b8ff6](d4b8ff6)),
closes
[#1025](#1025)
### Bug Fixes
* **core:** add container logs to TimeoutError when wait strategy times
out
([#1007](#1007))
([1fadb40](1fadb40))
* **core:** close Reaper socket at interpreter exit to prevent
ResourceWarning
([#1017](#1017))
([d3a1517](d3a1517))
* **cosmosdb:** replace distutils.strtobool removed in Python 3.12
([#1018](#1018))
([3e487f4](3e487f4))
* **mongodb:** Use wait strategy instead of deprecated wait_for_logs
([#943](#943))
([c8118e7](c8118e7))
* **mssql:** use `ExecWaitStrategy` instead of deprecated
`wait_container_is_ready`
([#1016](#1016))
([4c53b89](4c53b89)),
closes
[#874](#874)
* **neo4j:** Swap out use of depricated wait utils for wait_strategies
([#1012](#1012))
([6deaf3b](6deaf3b))
---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
Co-authored-by: David Ankin <daveankin@gmail.com>
Sign up for freeto 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.

3 participants

@FidelusAleksander@Tranquility2@alexanderankin