userver: en/testsuite/databases/mysql/classes.py Source File
Loading...
Searching...
No Matches
classes.py
1import dataclasses
2import pathlib
3import typing
4
5
6@dataclasses.dataclass(frozen=True)
8 """Mysql connection info class.
9
10 :param port: database port
11 :param hostname: database hostname
12 :param user: database user
13 :param password: database password
14 :param dbname: database name
15 """
16
17 port: int = 3306
18 hostname: str = 'localhost'
19 user: str | None = None
20 password: str | None = None
21 dbname: str | None = None
22
23 def replace(self, **kwargs) -> 'ConnectionInfo':
24 """Returns new instance with attributes updated."""
25 return dataclasses.replace(self, **kwargs)
26
27
28@dataclasses.dataclass(frozen=True)
30 port: int
31
32 def get_conninfo(self) -> ConnectionInfo:
33 return ConnectionInfo(port=self.port, user='root')
34
35
36@dataclasses.dataclass(frozen=True)
38 dbname: str
39 migrations: list[pathlib.Path]
40 create: bool = True
41 keep_tables: typing.Sequence[str] = ()
42 truncate_non_empty: bool = False
43
44
45DatabasesDict = dict[str, DatabaseConfig]