@@ -37,32 +37,42 @@ class MySqlContainer(DbContainer):
37
37
... result = connection.execute(sqlalchemy.text("select version()"))
38
38
... version, = result.fetchone()
39
39
"""
40
-
41
- def __init__ (self , image : str = "mysql:latest" , MYSQL_USER : Optional [str ] = None ,
42
- MYSQL_ROOT_PASSWORD : Optional [str ] = None , MYSQL_PASSWORD : Optional [str ] = None ,
43
- MYSQL_DATABASE : Optional [str ] = None , ** kwargs ) -> None :
40
+ def __init__ (self , image : str = "mysql:latest" , username : Optional [str ] = None ,
41
+ root_password : Optional [str ] = None , password : Optional [str ] = None ,
42
+ dbname : Optional [str ] = None , port : int = 3306 , MYSQL_USER : None = None ,
43
+ MYSQL_ROOT_PASSWORD : None = None , MYSQL_PASSWORD : None = None ,
44
+ MYSQL_DATABASE : None = None , ** kwargs ) -> None :
44
45
super (MySqlContainer , self ).__init__ (image , ** kwargs )
45
- self .port_to_expose = 3306
46
+ if MYSQL_USER :
47
+ raise ValueError ("use `username` instead of `MYSQL_USER`" )
48
+ if MYSQL_ROOT_PASSWORD :
49
+ raise ValueError ("use `root_password` instead of `MYSQL_ROOT_PASSWORD`" )
50
+ if MYSQL_PASSWORD :
51
+ raise ValueError ("use `password` instead of `MYSQL_PASSWORD`" )
52
+ if MYSQL_DATABASE :
53
+ raise ValueError ("use `dbname` instead of `MYSQL_DATABASE`" )
54
+
55
+ self .port_to_expose = port
46
56
self .with_exposed_ports (self .port_to_expose )
47
- self .MYSQL_USER = MYSQL_USER or environ .get ('MYSQL_USER' , 'test' )
48
- self .MYSQL_ROOT_PASSWORD = MYSQL_ROOT_PASSWORD or environ .get ('MYSQL_ROOT_PASSWORD' , 'test' )
49
- self .MYSQL_PASSWORD = MYSQL_PASSWORD or environ .get ('MYSQL_PASSWORD' , 'test' )
50
- self .MYSQL_DATABASE = MYSQL_DATABASE or environ .get ('MYSQL_DATABASE' , 'test' )
57
+ self .username = username or environ .get ('MYSQL_USER' , 'test' )
58
+ self .root_password = root_password or environ .get ('MYSQL_ROOT_PASSWORD' , 'test' )
59
+ self .password = password or environ .get ('MYSQL_PASSWORD' , 'test' )
60
+ self .dbname = dbname or environ .get ('MYSQL_DATABASE' , 'test' )
51
61
52
- if self .MYSQL_USER == 'root' :
53
- self .MYSQL_ROOT_PASSWORD = self .MYSQL_PASSWORD
62
+ if self .username == 'root' :
63
+ self .root_password = self .password
54
64
55
65
def _configure (self ) -> None :
56
- self .with_env ("MYSQL_ROOT_PASSWORD" , self .MYSQL_ROOT_PASSWORD )
57
- self .with_env ("MYSQL_DATABASE" , self .MYSQL_DATABASE )
66
+ self .with_env ("MYSQL_ROOT_PASSWORD" , self .root_password )
67
+ self .with_env ("MYSQL_DATABASE" , self .dbname )
58
68
59
- if self .MYSQL_USER != "root" :
60
- self .with_env ("MYSQL_USER" , self .MYSQL_USER )
61
- self .with_env ("MYSQL_PASSWORD" , self .MYSQL_PASSWORD )
69
+ if self .username != "root" :
70
+ self .with_env ("MYSQL_USER" , self .username )
71
+ self .with_env ("MYSQL_PASSWORD" , self .password )
62
72
63
73
def get_connection_url (self ) -> str :
64
74
return super ()._create_connection_url (dialect = "mysql+pymysql" ,
65
- username = self .MYSQL_USER ,
66
- password = self .MYSQL_PASSWORD ,
67
- db_name = self .MYSQL_DATABASE ,
75
+ username = self .username ,
76
+ password = self .password ,
77
+ db_name = self .dbname ,
68
78
port = self .port_to_expose )
0 commit comments