2020or by accessing this configuration directly.
2121"""
2222import os
23- from dotenv import find_dotenv , load_dotenv
2423
24+ from dotenv import find_dotenv , load_dotenv
2525
2626# this will load all the envars from a .env file located in the project root (api)
2727load_dotenv (find_dotenv ())
@@ -64,23 +64,25 @@ class Config(): # pylint: disable=too-few-public-methods
6464 PAYMENT_SVC_VERSION = os .getenv ('PAY_API_VERSION' , None )
6565
6666 # POSTGRESQL
67- DB_USER = os .getenv ('NAMEX_DATABASE_USERNAME' , '' )
68- DB_PASSWORD = os .getenv ('NAMEX_DATABASE_PASSWORD' , '' )
69- DB_NAME = os .getenv ('NAMEX_DATABASE_NAME' , '' )
70- DB_HOST = os .getenv ('NAMEX_DATABASE_HOST' , '' )
71- DB_PORT = os .getenv ('NAMEX_DATABASE_PORT' , '5432' )
72- if DB_UNIX_SOCKET := os .getenv ('NAMEX_DATABASE_UNIX_SOCKET' , None ):
73- SQLALCHEMY_DATABASE_URI = f'postgresql+psycopg2://{ DB_USER } :{ DB_PASSWORD } @/{ DB_NAME } ?host={ DB_UNIX_SOCKET } '
67+ DB_USER = os .getenv ('DATABASE_USERNAME' , 'postgres' )
68+ DB_PASSWORD = os .getenv ('DATABASE_PASSWORD' , 'postgres' )
69+ DB_NAME = os .getenv ('DATABASE_NAME' , 'unittesting' )
70+ DB_HOST = os .getenv ('DATABASE_HOST' , 'localhost' )
71+ DB_PORT = int (os .getenv ('DATABASE_PORT' , '5432' ))
72+
73+ DB_SCHEMA = os .getenv ('DATABASE_SCHEMA' , 'public' )
74+ DB_IP_TYPE = os .getenv ('DATABASE_IP_TYPE' , 'private' )
75+ DB_OWNER = os .getenv ('DATABASE_OWNER' , 'postgres' )
76+
77+ if DB_INSTANCE_CONNECTION_NAME := os .getenv ('DATABASE_INSTANCE_CONNECTION_NAME' , None ):
78+ SQLALCHEMY_DATABASE_URI = 'postgresql+pg8000://'
7479 else :
75- SQLALCHEMY_DATABASE_URI = f'postgresql://{ DB_USER } :{ DB_PASSWORD } @{ DB_HOST } :{ int ( DB_PORT ) } /{ DB_NAME } '
80+ SQLALCHEMY_DATABASE_URI = f'postgresql+pg8000 ://{ DB_USER } :{ DB_PASSWORD } @{ DB_HOST } :{ DB_PORT } /{ DB_NAME } '
7681
77- GCP_AUTH_KEY = os .getenv ('BUSINESS_GCP_AUTH_KEY' , None )
7882 EMAILER_TOPIC = os .getenv ('NAMEX_MAILER_TOPIC' , '' )
7983 NAMEX_NR_STATE_TOPIC = os .getenv ('NAMEX_NR_STATE_TOPIC' , '' )
8084 AUDIENCE = os .getenv ('AUDIENCE' , 'https://pubsub.googleapis.com/google.pubsub.v1.Subscriber' )
8185 PUBLISHER_AUDIENCE = os .getenv ('PUBLISHER_AUDIENCE' , 'https://pubsub.googleapis.com/google.pubsub.v1.Publisher' )
82- SUB_AUDIENCE = os .getenv ('PAY_SUB_AUDIENCE' , '' )
83- SUB_SERVICE_ACCOUNT = os .getenv ('AUTHPAY_SERVICE_ACCOUNT' , '' )
8486 DEBUG_REQUEST = os .getenv ('DEBUG_REQUEST' , False )
8587
8688 ENVIRONMENT = os .getenv ('ENVIRONMENT' , 'prod' )
@@ -104,14 +106,21 @@ class TestConfig(Config): # pylint: disable=too-few-public-methods
104106 # POSTGRESQL
105107 DB_USER = os .getenv ('DATABASE_TEST_USERNAME' , 'postgres' )
106108 DB_PASSWORD = os .getenv ('DATABASE_TEST_PASSWORD' , 'postgres' )
107- DB_NAME = os .getenv ('DATABASE_TEST_NAME' , 'namex_pay ' )
108- DB_HOST = os .getenv ('DATABASE_TEST_HOST' , '127.0.0.1 ' )
109+ DB_NAME = os .getenv ('DATABASE_TEST_NAME' , 'unittesting ' )
110+ DB_HOST = os .getenv ('DATABASE_TEST_HOST' , 'localhost ' )
109111 DB_PORT = os .getenv ('DATABASE_TEST_PORT' , '5432' )
110- SQLALCHEMY_DATABASE_URI = f'postgresql://{ DB_USER } :{ DB_PASSWORD } @{ DB_HOST } :{ int (DB_PORT )} /{ DB_NAME } '
112+ SQLALCHEMY_DATABASE_URI = f'postgresql+pg8000 ://{ DB_USER } :{ DB_PASSWORD } @{ DB_HOST } :{ int (DB_PORT )} /{ DB_NAME } '
111113 EMAILER_TOPIC = os .getenv ('NAMEX_MAILER_TOPIC' , '' )
114+ NAMEX_NR_STATE_TOPIC = os .getenv ('NAMEX_NR_STATE_TOPIC' , '' )
112115
113116class ProdConfig (Config ): # pylint: disable=too-few-public-methods
114117 """Production environment configuration."""
115118
116119 TESTING = False
117120 DEBUG = False
121+
122+ class MigrationConfig (Config ):
123+ """Config for db migration."""
124+
125+ TESTING = False
126+ DEBUG = True
0 commit comments