FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
testcontainers-python/testcontainers/postgres.py at master · Xeonian/testcontainers-python · GitHub
Xeonian
/
testcontainers-python
Public
forked from
testcontainers/testcontainers-python
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
testcontainers-python
/
testcontainers
/
postgres.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
62 lines (53 loc) · 2.46 KB
Breadcrumbs
testcontainers-python
/
testcontainers
/
postgres.py
Copy path
File metadata and controls
62 lines (53 loc) · 2.46 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import
os
from
testcontainers
.
core
.
generic
import
DbContainer
class
PostgresContainer
(
DbContainer
):
"""
Postgres database container.
Example
-------
The example spins up a Postgres database and connects to it using the :code:`psycopg` driver.
::
with PostgresContainer("postgres:9.5") as postgres:
e = sqlalchemy.create_engine(postgres.get_connection_url())
result = e.execute("select version()")
"""
POSTGRES_USER
=
os
.
environ
.
get
(
"POSTGRES_USER"
,
"test"
)
POSTGRES_PASSWORD
=
os
.
environ
.
get
(
"POSTGRES_PASSWORD"
,
"test"
)
POSTGRES_DB
=
os
.
environ
.
get
(
"POSTGRES_DB"
,
"test"
)
def
__init__
(
self
,
image
=
"postgres:latest"
,
port
=
5432
,
user
=
None
,
password
=
None
,
dbname
=
None
,
driver
=
"psycopg2"
,
**
kwargs
):
super
(
PostgresContainer
,
self
).
__init__
(
image
=
image
,
**
kwargs
)
self
.
POSTGRES_USER
=
user
or
self
.
POSTGRES_USER
self
.
POSTGRES_PASSWORD
=
password
or
self
.
POSTGRES_PASSWORD
self
.
POSTGRES_DB
=
dbname
or
self
.
POSTGRES_DB
self
.
port_to_expose
=
port
self
.
driver
=
driver
self
.
with_exposed_ports
(
self
.
port_to_expose
)
def
_configure
(
self
):
self
.
with_env
(
"POSTGRES_USER"
,
self
.
POSTGRES_USER
)
self
.
with_env
(
"POSTGRES_PASSWORD"
,
self
.
POSTGRES_PASSWORD
)
self
.
with_env
(
"POSTGRES_DB"
,
self
.
POSTGRES_DB
)
def
get_connection_url
(
self
,
host
=
None
):
return
super
().
_create_connection_url
(
dialect
=
"postgresql+{}"
.
format
(
self
.
driver
),
username
=
self
.
POSTGRES_USER
,
password
=
self
.
POSTGRES_PASSWORD
,
db_name
=
self
.
POSTGRES_DB
,
host
=
host
,
port
=
self
.
port_to_expose
)
Back
|
FazBrowse Home
|
New Git URL