testcontainers / testcontainers/testcontainers-python
Bug: MSSQL (SqlServerContainer) ignores some parameters
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
Describe the bug
When running the SqlServerContainer, in this example with the image mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04, some parameters have no effect on the actual database and lead to failures. It seems like they are just not respected.
To Reproduce
import sqlalchemy
from testcontainers.mssql import SqlServerContainer
def test_showcase_bug():
with SqlServerContainer(image="mcr.microsoft.com/mssql/server:2022-CU12-ubuntu-22.04", username="dummy") as mssql:
engine = sqlalchemy.create_engine(mssql.get_connection_url()) # this includes the username "dummy" now.
print(mssql.get_connection_url())
with engine.begin() as connection:
result = connection.execute(sqlalchemy.text("select @@VERSION"))
It loads a while. When looking at the database logs, it prints:
2024-11-14 10:39:43.81 Logon Error: 18456, Severity: 14, State: 5.
2024-11-14 10:39:43.81 Logon Login failed for user 'dummy'. Reason: Could not find a login matching the name provided. [CLIENT: 172.17.0.3]
Same thing for other parameters, for example db_name.
Runtime environment
Provide a summary of your runtime environment. Which operating system, python version, and docker version are you using? What is the version of testcontainers-python you are using? You can run the following commands to get the relevant information.
Windows 11
Python 3.11.9
testcontainers 4.8.2
sqlalchemy 2.0.36
pymssql 2.3.1
Thanks for your work!
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 l’implémentation de SqlServerContainer et reproduisez l’exemple avec l’image MSSQL spécifiée et les paramètres username et db_name. Suivez la manière dont ces paramètres sont transmis au conteneur et à l’URL de connexion, puis vérifiez que la base de données en cours d’exécution les applique et que l’exemple n’échoue plus au niveau de l’authentification.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- docker, python, sqlalchemy
- Domaine
- database
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100