Postgres Initialization scripts and unzip with init

Теги:

[postgres] Initialization scripts

Контейнер [postgres] имеет встроенный способ инициализации состояния во время запуска. Если вы хотите выполнить дополнительную инициализацию в образе, производном от данного, добавьте один или несколько сценариев *.sql, *.sql.gz или *.sh в /docker-entrypoint-initdb.d (при необходимости создав каталог). После того, как точка входа вызовет initdb для создания пользователя и базы данных postgres по умолчанию, она запустит любые файлы *.sql, запустит любые исполняемые сценарии *.sh и отыщет любые неисполняемые сценарии *.sh, найденные в этом каталоге, для дальнейшей инициализации перед запуском службы. Cценарии в /docker-entrypoint-initdb.d запускаются, только если вы запускаете контейнер с пустым каталогом данных; любая ранее существовавшая база данных останется нетронутой при запуске контейнера.

unzip automatically with pg_restore

if ext == 'gz':
   command = 'gunzip -c {} -k | pg_restore -U {} -h {} -p {}' \
             '-d {}'.format(file, user, server, port, new_dbname)
elif ext == 'bz2':
   command = 'bunzip2 -c {} -k | pg_restore -U {} -h {} -p {}' \
             '-d {}'.format(file, user, server, port, new_dbname)
elif ext == 'zip':
   command = 'unzip -p {} | pg_restore -U {} -h {} -p {} ' \
             '-d {}'.format(file, user, server, port, new_dbname)
else:
   command = 'pg_restore -U {} -h {} -p {} -d {} {}'.format(user,
                server, port, new_dbname, file)

source

[pytest] how to get the current test’s name from the setup method

class TestClass:

    @pytest.mark.parametrize("arg", ["a"])
    def test_stuff(self, request, arg):
        print("originalname:", request.node.originalname)
        print("name:", request.node.name)
        print("nodeid:", request.node.nodeid)

originalname: test_stuff
name: test_stuff[a]
nodeid: relative/path/to/test_things.py::TestClass::test_stuff[a]

source

or how to find the test ID for parametrized tests during execution of the test

os.environ.get('PYTEST_CURRENT_TEST')

source