TempDB
Spawn temporary PostgreSQL clusters for use in unit tests. This is alpha quality software and the API may change between version.
Usage
The following example shows how to create a temporary database with pytest.
import psycopg2
import pytest
from contextlib import closing
from tempdb import find_postgres_bin_dir, PostgresFactory
@pytest.fixture
def conn():
# Try to discover a directory where PostgreSQL is installed. If you
# have installed it in a non-standard location you must replace
# pg_bin_dir with the path to the binary directory for your
# installation.
#
# It is possible to provide a specific version as an argument if there
# are multiple versions to choose from. The highest available version
# is chosen by default.
pg_bin_dir = find_postgres_bin_dir()
if pg_bin_dir is None:
pytest.skip("Unable to locate a PostgreSQL installation")
# The factory is bound to a particular PostgreSQL version and can be
# used to create an arbitrary number of clusters
factory = PostgresFactory(pg_bin_dir)
# A cluster is an actual running instance of PostgreSQL. By default a
# cluster doesn't have any databases apart from the defaults. It is
# possible to create new databases using the method
# .create_database(name, template=None)
with closing(factory.create_temporary_cluster()) as cluster:
tmp_db = cluster.create_database("tmp")
yield psycopg2.connect(tmp_db.dsn)
def test_create_tables(conn):
with conn.cursor() as c:
c.execute("""
CREATE TABLE test(
id SERIAL,
name VARCHAR
)
""")
c.execute("INSERT INTO test(name) VALUES (%s), (%s)", [
"Abel",
"Cain",
])
c.execute("SELECT name FROM test ORDER BY id")
assert [name for name, in c.fetchall()] == [
"Abel",
"Cain",
]
Changelog
Version 0.1.0
Released on 3rd June, 2019
Initial release
Metadata
Release files for tempdb 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tempdb-0.1.0.tar.gz | 10.0 kB | Without provenance | Details for tempdb-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tempdb-0.1.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details for tempdb-0.1.0-py2.py3-none-any.whl |
Total release size: 19.4 kB
Release files / tempdb-0.1.0.tar.gz
| Download URL | tempdb-0.1.0.tar.gz |
|---|---|
| Size | 10.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d28727726ffd319fe3f32ef766fbae27d2ae5902ffa85e4a981d1f06ed89dc75
|
|
BLAKE2b-256 checksum How to use checksums |
8b89cb7dda989052a8b1ec8fa1e9d8841632757e77ac3cd166efb78a9e7c3eb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.15rc1
|
Release files / tempdb-0.1.0-py2.py3-none-any.whl
| Download URL | tempdb-0.1.0-py2.py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
d3f3b584289e2d8a54477bd0979cf77ce1057306770696ec5166e5d2a86a7e05
|
|
BLAKE2b-256 checksum How to use checksums |
ee7a1b16bf794cfd44014dac8256b357a26148dcc7d06b03a04c04ac058c9a71
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.15rc1
|
Security for tempdb 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.