Skip to content

Commit

Permalink
Fix DATABASE_URL parsing in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jpmckinney committed Apr 18, 2020
1 parent 8bbc2aa commit f0985ff
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions tests/test_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import json
import os
from io import StringIO
from urllib.parse import urlparse
from unittest.mock import patch

import psycopg2
Expand All @@ -13,7 +14,16 @@

@pytest.fixture
def db():
connection = psycopg2.connect(os.getenv('DATABASE_URL', 'dbname=postgres'))
database_url = os.getenv('DATABASE_URL', 'postgresql://{}:@localhost:5432/postgres'.format(getpass.getuser()))
parts = urlparse(database_url)
kwargs = {
'user': parts.username,
'password': parts.password,
'host': parts.hostname,
'port': parts.port,
}

connection = psycopg2.connect(dbname=parts.path[1:], **kwargs)
cursor = connection.cursor()

# Avoid "CREATE DATABASE cannot run inside a transaction block" error
Expand All @@ -22,7 +32,7 @@ def db():
try:
cursor.execute('CREATE DATABASE ocdskingfishercolab_test')

conn = create_connection('ocdskingfishercolab_test', getpass.getuser())
conn = create_connection(database='ocdskingfishercolab_test', **kwargs)
cur = conn.cursor()

try:
Expand Down

0 comments on commit f0985ff

Please sign in to comment.