Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

GKE code executor unit tests fail with kubernetes 37.0.0, turning main CI red

Ouverte Adaptée aux débutants
#7,443 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 6 jours

@vetler y travaille déjà.

Depuis le 7/10/2026.

  • #7444 par @vetler — ouverte
  • #7448 par @sushant-me — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
76/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
kubernetes, python
Domaine
backend, testing

Piste de recherche

Commencez par tests/unittests/code_executors/test_gke_code_executor.py et examinez comment create_namespaced_job est simulé dans les cinq tests en échec. Exécutez la commande pytest indiquée avec kubernetes 37.0.0, puis comparez la valeur de retour du mock aux champs réels de V1Job utilisés par _add_owner_reference. Le travail est terminé lorsque les 18 tests passent avec kubernetes 36.0.3 et 37.0.0.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

🔴 Required Information

Describe the Bug:

Since kubernetes 37.0.0 was published to PyPI (2026-10-07, 00:51 UTC), five tests in tests/unittests/code_executors/test_gke_code_executor.py fail. The Unit Tests jobs of the Continuous Integration workflow have failed on main for Python 3.11–3.14 on every push since 51a20e24, because CI installs the newest version kubernetes>=29 allows.

kubernetes 37 validates model fields with pydantic. In these tests create_namespaced_job returns the default MagicMock, and GkeCodeExecutor._add_owner_reference copies that Job's api_version, kind, metadata.name and metadata.uid into a V1OwnerReference, which now raises a ValidationError. execute_code catches it and returns "An unexpected executor error occurred", so the assertions fail.

Only the tests are affected. Against a real cluster, create_namespaced_job returns a V1Job with string fields. The other 13 tests in the file pass on 37.0.0, including the one that builds a real Job manifest.

Steps to Reproduce:

  1. pip install -e . pytest pytest-asyncio pytest-mock "kubernetes==37.0.0"
  2. pytest tests/unittests/code_executors/test_gke_code_executor.py

Expected Behavior:

All 18 tests pass, as they do with kubernetes 36.0.3 (the version pinned in constraints-3.*.txt).

Observed Behavior:

FAILED ...::test_execute_code_success - AssertionError: assert '' == 'hello world'
FAILED ...::test_execute_code_job_failed - assert 'Job failed. Logs:' in "An unexpected executor error occurred: 4 validation errors for V1OwnerReference ..."
FAILED ...::test_execute_code_job_failed_without_terminated_container - assert None == 1
FAILED ...::test_execute_code_timeout - assert 'Executor timed out' in "An unexpected executor error occurred: 4 validation errors for V1OwnerReference ..."
FAILED ...::test_execute_code_forks_to_job - AssertionError: assert '' == 'job stdout'
5 failed, 13 passed

The underlying error:

4 validation errors for V1OwnerReference
api_version
  Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.api...ersion' id='...'>, input_type=MagicMock]
kind
  Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.kind' id='...'>, input_type=MagicMock]
name
  Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.met...a.name' id='...'>, input_type=MagicMock]
uid
  Input should be a valid string [type=string_type, input_value=<MagicMock name='mock.met...ta.uid' id='...'>, input_type=MagicMock]

Environment Details:

  • ADK Library Version: main (2.11.0), since 51a20e24
  • Desktop OS: Linux (GitHub Actions) and macOS
  • Python Version: 3.11, 3.12, 3.13 and 3.14

Model Information:

  • Are you using LiteLLM: N/A
  • Which model is being used: N/A, no model is involved

🟡 Optional Information

Regression:

Yes, but the regression comes from the dependency release, not from an ADK commit. The same tests pass with kubernetes 36.0.3.

Logs:

CI run on main: https://github.com/google/adk-python/actions/runs/37674194847

Additional Context:

constraints-3.*.txt already pin kubernetes==36.0.3, but the unit test job installs without them. A fix that keeps the tests passing on both versions is to have the mocked create_namespaced_job return a real client.V1Job with string fields. I'll open a PR.

How often has this issue occurred?:

  • Always (100%)
Langage dominant
Python
Étoiles
21.6k
Forks
4k
Merge moyen
1 j 13 h
PR mergées (30 j)
6

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de google/adk-python

Toutes les issues de google/adk-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.