Skip to content

Instantly share code, notes, and snippets.

@simonw
Last active February 28, 2024 00:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save simonw/c53f80a525d573533a730f5f28858f84 to your computer and use it in GitHub Desktop.
Save simonw/c53f80a525d573533a730f5f28858f84 to your computer and use it in GitHub Desktop.
Flattened directory of the files from the whl for https://pypi.org/project/testcontainers-postgres
Metadata-Version: 2.1
Name: testcontainers-postgres
Version: 0.0.1rc1
Summary: PostgreSQL component of testcontainers-python.
Home-page: https://github.com/testcontainers/testcontainers-python
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
Requires-Dist: testcontainers-core
Requires-Dist: sqlalchemy
Requires-Dist: psycopg2-binary
PostgreSQL component of testcontainers-python.
#
# 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.
.. doctest::
>>> from testcontainers.postgres import PostgresContainer
>>> import sqlalchemy
>>> postgres_container = PostgresContainer("postgres:9.5")
>>> with postgres_container as postgres:
... e = sqlalchemy.create_engine(postgres.get_connection_url())
... result = e.execute("select version()")
... version, = result.fetchone()
>>> version
'PostgreSQL 9.5...'
"""
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)
testcontainers/postgres/__init__.py,sha256=0dF29kv4cBezQX4ECcRxum0urg8jCUpVkApT0MCKwPA,2786
tests/test_postgres.py,sha256=IUOEu5mEN_0b-gJ13bC2vlMLZDiAe93WZzCjcDFq14I,681
testcontainers_postgres-0.0.1rc1.dist-info/METADATA,sha256=aixtmomYLiHC4tclOXe6A0yAIdiJQuEJdbhHnBmoIgk,393
testcontainers_postgres-0.0.1rc1.dist-info/WHEEL,sha256=2wepM1nk4DS4eFpYrW1TTqPcoGNfHhhO_i5m4cOimbo,92
testcontainers_postgres-0.0.1rc1.dist-info/top_level.txt,sha256=zZ4EaH_cr1V9Mk1GbweALIo9yXu0JLzmzNr-Tu3U9jA,21
testcontainers_postgres-0.0.1rc1.dist-info/RECORD,,
testcontainers
tests
Wheel-Version: 1.0
Generator: bdist_wheel (0.38.4)
Root-Is-Purelib: true
Tag: py3-none-any
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment