testcontainers / testcontainers/testcontainers-python
Feature: other ways to configure than the `.testcontainers.properties` in Home
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 2.3k
- Forks
- 386
- Merge moyen
- 4 h 40 min
- PR mergées (30 j)
- 1
Description
What are you trying to do?
I want to run my tests, which rely on Test Containers, on my CI. But I don't have the rights to edit the runner's profile home directory (read-only). So I would like to be able to provide a .testcontainers.properties elsewhere, or from environment variables.
This seems to be possible in the Java version, based on this docstring in the Python version :
Read the .testcontainers.properties for settings. (see the Java implementation for details)
Currently we only support the ~/.testcontainers.properties but may extend to per-project variables later.
:return: the merged properties from the sources.
But (see below) it relies on the Java classpath , and I don't think it would be relevant to use the pythonpath for that on Python's side.
So I am unsure how to proceed towards per-project (or arbitrarily-located) properties files.
But using environment variables should be straightforward.
Why should it be done this way?
Parity with Java implementation, and flexibility.
Other references:
From the Java documentation :
The configuration will be loaded from multiple locations. Properties are considered in the following order:
- Environment variables
- .testcontainers.properties in user's home folder. Example locations:
- Linux: /home/myuser/.testcontainers.properties
- Windows: C:/Users/myuser/.testcontainers.properties
- macOS: /Users/myuser/.testcontainers.properties
- testcontainers.properties on the classpath.
Note that when using environment variables, configuration property names should be set in upper case with underscore separators, preceded by TESTCONTAINERS_ - e.g. checks.disable becomes TESTCONTAINERS_CHECKS_DISABLE.
Next steps
Does it seem relevant to you ? Would you be interested I contribute a PR for it ?
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par testcontainers/core/config.py, en particulier par le comportement de chargement de la configuration mentionné dans l’issue, et comparez-le avec l’ordre de configuration Java décrit dans la documentation liée. Définissez comment les variables d’environnement et un emplacement alternatif des propriétés doivent interagir avec les paramètres du fichier d’accueil. Le travail est considéré comme terminé lorsque les sources de configuration prises en charge et leur ordre de priorité sont documentés et couverts par des tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- testing
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100