From 8ab9cb9e070b235cd2361356da8b8d76ee511350 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 09:29:20 +0200 Subject: [PATCH 01/23] Make sure django tests actually use postgres --- tests/integrations/django/myapp/settings.py | 26 ++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/integrations/django/myapp/settings.py b/tests/integrations/django/myapp/settings.py index 0d416186a0..c553d85346 100644 --- a/tests/integrations/django/myapp/settings.py +++ b/tests/integrations/django/myapp/settings.py @@ -118,19 +118,19 @@ def middleware(request): DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"}} -try: - import psycopg2 # noqa - - DATABASES["postgres"] = { - "ENGINE": "django.db.backends.postgresql", - "NAME": os.environ["SENTRY_PYTHON_TEST_POSTGRES_NAME"], - "USER": os.environ["SENTRY_PYTHON_TEST_POSTGRES_USER"], - "PASSWORD": os.environ["SENTRY_PYTHON_TEST_POSTGRES_PASSWORD"], - "HOST": os.environ.get("SENTRY_PYTHON_TEST_POSTGRES_HOST", "localhost"), - "PORT": 5432, - } -except (ImportError, KeyError): - pass +# try: +import psycopg2 # noqa + +DATABASES["postgres"] = { + "ENGINE": "django.db.backends.postgresql", + "NAME": os.environ["SENTRY_PYTHON_TEST_POSTGRES_NAME"], + "USER": os.environ["SENTRY_PYTHON_TEST_POSTGRES_USER"], + "PASSWORD": os.environ["SENTRY_PYTHON_TEST_POSTGRES_PASSWORD"], + "HOST": os.environ.get("SENTRY_PYTHON_TEST_POSTGRES_HOST", "localhost"), + "PORT": 5432, +} +# except (ImportError, KeyError): +# pass # Password validation From 90e46d5ffc39c20e42d7d27d033605af516259d3 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 09:45:46 +0200 Subject: [PATCH 02/23] Always install psycopg for Django --- tox.ini | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index e6f636a177..b3ed02eb49 100644 --- a/tox.ini +++ b/tox.ini @@ -249,11 +249,11 @@ deps = # Django django: Werkzeug<2.1.0 + django: psycopg2-binary django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: djangorestframework>=3.0.0,<4.0.0 - {py3.7,py3.8,py3.9,py3.10,py3.11}-django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: channels[daphne]>2 {py3.7,py3.8,py3.9,py3.10,py3.11}-django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: pytest-asyncio - {py2.7,py3.7,py3.8,py3.9,py3.10,py3.11}-django-v{1.11,2.2,3.0,3.1,3.2}: psycopg2-binary + {py3.7,py3.8,py3.9,py3.10,py3.11}-django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: channels[daphne]>2 django-v{1.8,1.9,1.10,1.11,2.0,2.1}: pytest-django<4.0 django-v{2.2,3.0,3.1,3.2}: pytest-django>=4.0 From 7cc514cb61e45ae287dfc1901958f8a5b790ca0d Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:08:26 +0200 Subject: [PATCH 03/23] Install psychopg always and make sure right db backend is used for old Django versions --- tests/integrations/django/myapp/settings.py | 8 +++++++- tox.ini | 1 - 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/tests/integrations/django/myapp/settings.py b/tests/integrations/django/myapp/settings.py index c553d85346..6415810fcb 100644 --- a/tests/integrations/django/myapp/settings.py +++ b/tests/integrations/django/myapp/settings.py @@ -121,8 +121,14 @@ def middleware(request): # try: import psycopg2 # noqa +db_engine = "django.db.backends.postgresql" +try: + from django.db.backends import postgresql # noqa: F401 +except ImportError: + db_engine = "django.db.backends.postgresql_psycopg2" + DATABASES["postgres"] = { - "ENGINE": "django.db.backends.postgresql", + "ENGINE": db_engine, "NAME": os.environ["SENTRY_PYTHON_TEST_POSTGRES_NAME"], "USER": os.environ["SENTRY_PYTHON_TEST_POSTGRES_USER"], "PASSWORD": os.environ["SENTRY_PYTHON_TEST_POSTGRES_PASSWORD"], diff --git a/tox.ini b/tox.ini index b3ed02eb49..aa74122991 100644 --- a/tox.ini +++ b/tox.ini @@ -249,7 +249,6 @@ deps = # Django django: Werkzeug<2.1.0 - django: psycopg2-binary django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: djangorestframework>=3.0.0,<4.0.0 {py3.7,py3.8,py3.9,py3.10,py3.11}-django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: pytest-asyncio From da19e3fe442927369654761b1164b69a72b99333 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:24:56 +0200 Subject: [PATCH 04/23] fix --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index aa74122991..492f09b5da 100644 --- a/tox.ini +++ b/tox.ini @@ -248,6 +248,7 @@ deps = {py3.8}-chalice: botocore~=1.31 # Django + django: psycopg2-binary django: Werkzeug<2.1.0 django-v{1.11,2.0,2.1,2.2,3.0,3.1,3.2}: djangorestframework>=3.0.0,<4.0.0 @@ -260,7 +261,6 @@ deps = django-v{4.0,4.1}: djangorestframework django-v{4.0,4.1}: pytest-asyncio - django-v{4.0,4.1}: psycopg2-binary django-v{4.0,4.1}: pytest-django django-v{4.0,4.1}: Werkzeug From d34a3ec8148d48aff2c130c1b61afa9aad566dc9 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:35:43 +0200 Subject: [PATCH 05/23] Cleanup --- tests/integrations/django/myapp/settings.py | 38 +++++++++++---------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/tests/integrations/django/myapp/settings.py b/tests/integrations/django/myapp/settings.py index 6415810fcb..b8b083eb81 100644 --- a/tests/integrations/django/myapp/settings.py +++ b/tests/integrations/django/myapp/settings.py @@ -118,25 +118,27 @@ def middleware(request): DATABASES = {"default": {"ENGINE": "django.db.backends.sqlite3", "NAME": ":memory:"}} -# try: -import psycopg2 # noqa - -db_engine = "django.db.backends.postgresql" try: - from django.db.backends import postgresql # noqa: F401 -except ImportError: - db_engine = "django.db.backends.postgresql_psycopg2" - -DATABASES["postgres"] = { - "ENGINE": db_engine, - "NAME": os.environ["SENTRY_PYTHON_TEST_POSTGRES_NAME"], - "USER": os.environ["SENTRY_PYTHON_TEST_POSTGRES_USER"], - "PASSWORD": os.environ["SENTRY_PYTHON_TEST_POSTGRES_PASSWORD"], - "HOST": os.environ.get("SENTRY_PYTHON_TEST_POSTGRES_HOST", "localhost"), - "PORT": 5432, -} -# except (ImportError, KeyError): -# pass + import psycopg2 # noqa + + db_engine = "django.db.backends.postgresql" + try: + from django.db.backends import postgresql # noqa: F401 + except ImportError: + db_engine = "django.db.backends.postgresql_psycopg2" + + DATABASES["postgres"] = { + "ENGINE": db_engine, + "NAME": os.environ["SENTRY_PYTHON_TEST_POSTGRES_NAME"], + "USER": os.environ["SENTRY_PYTHON_TEST_POSTGRES_USER"], + "PASSWORD": os.environ["SENTRY_PYTHON_TEST_POSTGRES_PASSWORD"], + "HOST": os.environ.get("SENTRY_PYTHON_TEST_POSTGRES_HOST", "localhost"), + "PORT": 5432, + } +except (ImportError, KeyError): + from sentry_sdk.utils import logger + + logger.warn("No psycopg2 found, testing with SQLite.") # Password validation From 2e51970526863915cca889a82b98542d08114fbd Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:43:29 +0200 Subject: [PATCH 06/23] Create db for frameworks that need it. --- .github/workflows/test-integration-asyncpg.yml | 2 ++ .github/workflows/test-integration-django.yml | 2 ++ scripts/split-tox-gh-actions/ci-yaml-test-snippet.txt | 1 + scripts/split-tox-gh-actions/split-tox-gh-actions.py | 5 +++++ 4 files changed, 10 insertions(+) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 5340d40cef..9e451e459b 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -66,6 +66,8 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" + psql -V + psql -c create 'database somethingstupid;' - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index e94b138818..cfb11b2627 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -66,6 +66,8 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" + psql -V + psql -c create 'database somethingstupid;' - name: Test django uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/ci-yaml-test-snippet.txt b/scripts/split-tox-gh-actions/ci-yaml-test-snippet.txt index 09ed89e274..37072432d0 100644 --- a/scripts/split-tox-gh-actions/ci-yaml-test-snippet.txt +++ b/scripts/split-tox-gh-actions/ci-yaml-test-snippet.txt @@ -14,6 +14,7 @@ - name: Setup Test Env run: | pip install coverage "tox>=3,<4" + {{ setup_postgres }} - name: Test {{ framework }} uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index 87759462bb..49b2cf2e70 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -113,6 +113,11 @@ def write_yaml_file( out += "".join(lines) f.close() + elif template_line.strip() == "{{ setup_postgres }}": + if current_framework in FRAMEWORKS_NEEDING_POSTGRES: + out += " psql -V\n" + out += " psql -c create 'database somethingstupid;'\n" + elif template_line.strip() == "{{ check_needs }}": if py27_supported: out += CHECK_NEEDS_PY27 From 04d0c58f2e64f40dc414239658b7786b53494968 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:45:02 +0200 Subject: [PATCH 07/23] Debug output --- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index 49b2cf2e70..d571191a5d 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -115,6 +115,7 @@ def write_yaml_file( elif template_line.strip() == "{{ setup_postgres }}": if current_framework in FRAMEWORKS_NEEDING_POSTGRES: + out += " printenv | grep SENTRY\n" out += " psql -V\n" out += " psql -c create 'database somethingstupid;'\n" From dbe59e6b2a5b928a0ecc36f3b1c5e005ca1dc918 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:52:43 +0200 Subject: [PATCH 08/23] Create database --- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index d571191a5d..0cb62b60f9 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -115,9 +115,13 @@ def write_yaml_file( elif template_line.strip() == "{{ setup_postgres }}": if current_framework in FRAMEWORKS_NEEDING_POSTGRES: + out += " echo '##############################'\n" out += " printenv | grep SENTRY\n" out += " psql -V\n" - out += " psql -c create 'database somethingstupid;'\n" + out += " psql -h postgres -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql -h postgres -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" + out += " psql -h postgres -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" + out += " psql -h postgres -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" elif template_line.strip() == "{{ check_needs }}": if py27_supported: From 0c2fab599abf06006e485fc06e25d4511f97420c Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 10:56:08 +0200 Subject: [PATCH 09/23] updated config files --- .github/workflows/test-integration-asyncpg.yml | 7 ++++++- .github/workflows/test-integration-django.yml | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 9e451e459b..92e7886489 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -66,8 +66,13 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" + echo '##############################' + printenv | grep SENTRY psql -V - psql -c create 'database somethingstupid;' + psql -h postgres -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h postgres -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h postgres -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h postgres -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index cfb11b2627..5a4ef78ec5 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -66,8 +66,13 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" + echo '##############################' + printenv | grep SENTRY psql -V - psql -c create 'database somethingstupid;' + psql -h postgres -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h postgres -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h postgres -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h postgres -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test django uses: nick-fields/retry@v2 From 6dc2ec7c8e7e6cb92385330d8fc3965e67ca1ae0 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:00:30 +0200 Subject: [PATCH 10/23] Use localhost --- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index 0cb62b60f9..b84b10eb2c 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -118,10 +118,10 @@ def write_yaml_file( out += " echo '##############################'\n" out += " printenv | grep SENTRY\n" out += " psql -V\n" - out += " psql -h postgres -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" - out += " psql -h postgres -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" - out += " psql -h postgres -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" - out += " psql -h postgres -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql -h localhost -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql -h localhost -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" + out += " psql -h localhost -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" + out += " psql -h localhost -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" elif template_line.strip() == "{{ check_needs }}": if py27_supported: From 84de6c286c003d0a3efacfee5938d57548186311 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:02:46 +0200 Subject: [PATCH 11/23] Update config files --- .github/workflows/test-integration-asyncpg.yml | 8 ++++---- .github/workflows/test-integration-django.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 92e7886489..6d9baf423a 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -69,10 +69,10 @@ jobs: echo '##############################' printenv | grep SENTRY psql -V - psql -h postgres -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h postgres -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h postgres -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h postgres -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h localhost -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h localhost -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index 5a4ef78ec5..e2d9e7f18b 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -69,10 +69,10 @@ jobs: echo '##############################' printenv | grep SENTRY psql -V - psql -h postgres -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h postgres -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h postgres -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h postgres -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h localhost -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h localhost -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test django uses: nick-fields/retry@v2 From 90398ff8d0e7de0a06d68e14cbfc173f6a9d89a7 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:12:15 +0200 Subject: [PATCH 12/23] updated psql connection params --- .github/workflows/test-integration-asyncpg.yml | 10 +++++----- .github/workflows/test-integration-django.yml | 10 +++++----- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 10 +++++----- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 6d9baf423a..63cf7e4cca 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -68,11 +68,11 @@ jobs: pip install coverage "tox>=3,<4" echo '##############################' printenv | grep SENTRY - psql -V - psql -h localhost -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h localhost -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h localhost -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h localhost -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + export POSTGRES_PASSWORD=sentry + psql -h localhost -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h localhost -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h localhost -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index e2d9e7f18b..623f21e646 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -68,11 +68,11 @@ jobs: pip install coverage "tox>=3,<4" echo '##############################' printenv | grep SENTRY - psql -V - psql -h localhost -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h localhost -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h localhost -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h localhost -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + export POSTGRES_PASSWORD=sentry + psql -h localhost -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h localhost -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h localhost -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test django uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index b84b10eb2c..3b259399aa 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -117,11 +117,11 @@ def write_yaml_file( if current_framework in FRAMEWORKS_NEEDING_POSTGRES: out += " echo '##############################'\n" out += " printenv | grep SENTRY\n" - out += " psql -V\n" - out += " psql -h localhost -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" - out += " psql -h localhost -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" - out += " psql -h localhost -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" - out += " psql -h localhost -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " export POSTGRES_PASSWORD=sentry\n" + out += " psql -h localhost -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql -h localhost -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" + out += " psql -h localhost -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" + out += " psql -h localhost -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" elif template_line.strip() == "{{ check_needs }}": if py27_supported: From ab0b71c48fc1353f1a3c12d0a98951147209baa6 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:14:00 +0200 Subject: [PATCH 13/23] Removed duplicate parameter --- .github/workflows/test-integration-asyncpg.yml | 8 ++++---- .github/workflows/test-integration-django.yml | 8 ++++---- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 63cf7e4cca..3dcdbf758b 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -69,10 +69,10 @@ jobs: echo '##############################' printenv | grep SENTRY export POSTGRES_PASSWORD=sentry - psql -h localhost -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h localhost -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h localhost -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h localhost -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index 623f21e646..a834f27cd2 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -69,10 +69,10 @@ jobs: echo '##############################' printenv | grep SENTRY export POSTGRES_PASSWORD=sentry - psql -h localhost -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h localhost -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h localhost -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h localhost -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test django uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index 3b259399aa..abfbb64b28 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -118,10 +118,10 @@ def write_yaml_file( out += " echo '##############################'\n" out += " printenv | grep SENTRY\n" out += " export POSTGRES_PASSWORD=sentry\n" - out += " psql -h localhost -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" - out += " psql -h localhost -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" - out += " psql -h localhost -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" - out += " psql -h localhost -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" + out += " psql -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" + out += " psql -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" elif template_line.strip() == "{{ check_needs }}": if py27_supported: From 96e8fcfc55da9b11001010a48aad10254738c107 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:17:05 +0200 Subject: [PATCH 14/23] trying with connection url --- .github/workflows/test-integration-asyncpg.yml | 9 ++++----- .github/workflows/test-integration-django.yml | 9 ++++----- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 9 ++++----- 3 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 3dcdbf758b..72c4d7a77e 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -68,11 +68,10 @@ jobs: pip install coverage "tox>=3,<4" echo '##############################' printenv | grep SENTRY - export POSTGRES_PASSWORD=sentry - psql -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql postgresql://postgres:sentry@localhost:5432 -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql postgresql://postgres:sentry@localhost:5432 -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql postgresql://postgres:sentry@localhost:5432 -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql postgresql://postgres:sentry@localhost:5432 -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index a834f27cd2..fe999daf4a 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -68,11 +68,10 @@ jobs: pip install coverage "tox>=3,<4" echo '##############################' printenv | grep SENTRY - export POSTGRES_PASSWORD=sentry - psql -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql postgresql://postgres:sentry@localhost:5432 -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql postgresql://postgres:sentry@localhost:5432 -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' + psql postgresql://postgres:sentry@localhost:5432 -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' + psql postgresql://postgres:sentry@localhost:5432 -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - name: Test django uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index abfbb64b28..4bec901f9c 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -117,11 +117,10 @@ def write_yaml_file( if current_framework in FRAMEWORKS_NEEDING_POSTGRES: out += " echo '##############################'\n" out += " printenv | grep SENTRY\n" - out += " export POSTGRES_PASSWORD=sentry\n" - out += " psql -h localhost -U postgres -w -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" - out += " psql -h localhost -U postgres -w -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" - out += " psql -h localhost -U postgres -w -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" - out += " psql -h localhost -U postgres -w -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql postgresql://postgres:sentry@localhost:5432 -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += " psql postgresql://postgres:sentry@localhost:5432 -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" + out += " psql postgresql://postgres:sentry@localhost:5432 -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" + out += " psql postgresql://postgres:sentry@localhost:5432 -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" elif template_line.strip() == "{{ check_needs }}": if py27_supported: From e2a00e84020050e8647af146974b1b57dfd864cb Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:24:56 +0200 Subject: [PATCH 15/23] right env var substitution in strings (i hope) --- .github/workflows/test-integration-asyncpg.yml | 8 ++++---- .github/workflows/test-integration-django.yml | 8 ++++---- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 72c4d7a77e..02c17f0be4 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -68,10 +68,10 @@ jobs: pip install coverage "tox>=3,<4" echo '##############################' printenv | grep SENTRY - psql postgresql://postgres:sentry@localhost:5432 -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql postgresql://postgres:sentry@localhost:5432 -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql postgresql://postgres:sentry@localhost:5432 -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql postgresql://postgres:sentry@localhost:5432 -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql postgresql://postgres:sentry@localhost:5432 -c "create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};" + psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" + psql postgresql://postgres:sentry@localhost:5432 -c "alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';" + psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index fe999daf4a..a75b5c36f8 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -68,10 +68,10 @@ jobs: pip install coverage "tox>=3,<4" echo '##############################' printenv | grep SENTRY - psql postgresql://postgres:sentry@localhost:5432 -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};' - psql postgresql://postgres:sentry@localhost:5432 -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};' - psql postgresql://postgres:sentry@localhost:5432 -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';' - psql postgresql://postgres:sentry@localhost:5432 -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};' + psql postgresql://postgres:sentry@localhost:5432 -c "create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};" + psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" + psql postgresql://postgres:sentry@localhost:5432 -c "alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';" + psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" - name: Test django uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index 4bec901f9c..8145259271 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -117,10 +117,10 @@ def write_yaml_file( if current_framework in FRAMEWORKS_NEEDING_POSTGRES: out += " echo '##############################'\n" out += " printenv | grep SENTRY\n" - out += " psql postgresql://postgres:sentry@localhost:5432 -c 'create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" - out += " psql postgresql://postgres:sentry@localhost:5432 -c 'create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};'\n" - out += " psql postgresql://postgres:sentry@localhost:5432 -c 'alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';'\n" - out += " psql postgresql://postgres:sentry@localhost:5432 -c 'grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};'\n" + out += ' psql postgresql://postgres:sentry@localhost:5432 -c "create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};"\n' + out += ' psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};"\n' + out += " psql postgresql://postgres:sentry@localhost:5432 -c \"alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';\"\n" + out += ' psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};"\n' elif template_line.strip() == "{{ check_needs }}": if py27_supported: From 8f3e748110aecd6daa1fbfc544403fd16096c0ec Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:27:33 +0200 Subject: [PATCH 16/23] only create db (not user) --- .github/workflows/test-integration-asyncpg.yml | 4 ---- .github/workflows/test-integration-django.yml | 4 ---- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 4 ---- 3 files changed, 12 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 02c17f0be4..30f8352d18 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -66,11 +66,7 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" - echo '##############################' - printenv | grep SENTRY - psql postgresql://postgres:sentry@localhost:5432 -c "create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};" psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" - psql postgresql://postgres:sentry@localhost:5432 -c "alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';" psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" - name: Test asyncpg diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index a75b5c36f8..9100d196ff 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -66,11 +66,7 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" - echo '##############################' - printenv | grep SENTRY - psql postgresql://postgres:sentry@localhost:5432 -c "create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};" psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" - psql postgresql://postgres:sentry@localhost:5432 -c "alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';" psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" - name: Test django diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index 8145259271..fb13283c57 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -115,11 +115,7 @@ def write_yaml_file( elif template_line.strip() == "{{ setup_postgres }}": if current_framework in FRAMEWORKS_NEEDING_POSTGRES: - out += " echo '##############################'\n" - out += " printenv | grep SENTRY\n" - out += ' psql postgresql://postgres:sentry@localhost:5432 -c "create user ${SENTRY_PYTHON_TEST_POSTGRES_USER};"\n' out += ' psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};"\n' - out += " psql postgresql://postgres:sentry@localhost:5432 -c \"alter user ${SENTRY_PYTHON_TEST_POSTGRES_USER} with encrypted password '${SENTRY_PYTHON_TEST_POSTGRES_PASSWORD}';\"\n" out += ' psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};"\n' elif template_line.strip() == "{{ check_needs }}": From 0f818cfa681b729b77b24312bcd75bf32e28145a Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:33:56 +0200 Subject: [PATCH 17/23] Put everything in a template --- .github/workflows/test-integration-asyncpg.yml | 4 ++-- .github/workflows/test-integration-django.yml | 4 ++-- scripts/split-tox-gh-actions/split-tox-gh-actions.py | 5 +++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test-integration-asyncpg.yml b/.github/workflows/test-integration-asyncpg.yml index 30f8352d18..0c5c124169 100644 --- a/.github/workflows/test-integration-asyncpg.yml +++ b/.github/workflows/test-integration-asyncpg.yml @@ -66,8 +66,8 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" - psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" - psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" + psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" || true + psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" || true - name: Test asyncpg uses: nick-fields/retry@v2 diff --git a/.github/workflows/test-integration-django.yml b/.github/workflows/test-integration-django.yml index 9100d196ff..316b895d09 100644 --- a/.github/workflows/test-integration-django.yml +++ b/.github/workflows/test-integration-django.yml @@ -66,8 +66,8 @@ jobs: - name: Setup Test Env run: | pip install coverage "tox>=3,<4" - psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" - psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" + psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" || true + psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" || true - name: Test django uses: nick-fields/retry@v2 diff --git a/scripts/split-tox-gh-actions/split-tox-gh-actions.py b/scripts/split-tox-gh-actions/split-tox-gh-actions.py index fb13283c57..3b40178082 100755 --- a/scripts/split-tox-gh-actions/split-tox-gh-actions.py +++ b/scripts/split-tox-gh-actions/split-tox-gh-actions.py @@ -27,6 +27,7 @@ TEMPLATE_DIR = Path(__file__).resolve().parent TEMPLATE_FILE = TEMPLATE_DIR / "ci-yaml.txt" TEMPLATE_FILE_SERVICES = TEMPLATE_DIR / "ci-yaml-services.txt" +TEMPLATE_FILE_SETUP_DB = TEMPLATE_DIR / "ci-yaml-setup-db.txt" TEMPLATE_SNIPPET_TEST = TEMPLATE_DIR / "ci-yaml-test-snippet.txt" TEMPLATE_SNIPPET_TEST_PY27 = TEMPLATE_DIR / "ci-yaml-test-py27-snippet.txt" @@ -115,8 +116,8 @@ def write_yaml_file( elif template_line.strip() == "{{ setup_postgres }}": if current_framework in FRAMEWORKS_NEEDING_POSTGRES: - out += ' psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};"\n' - out += ' psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};"\n' + f = open(TEMPLATE_FILE_SETUP_DB, "r") + out += "".join(f.readlines()) elif template_line.strip() == "{{ check_needs }}": if py27_supported: From f6210e055de4ca76824e839d9a2a380e03720f82 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:37:58 +0200 Subject: [PATCH 18/23] Added missing file --- scripts/split-tox-gh-actions/ci-yaml-setup-db.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 scripts/split-tox-gh-actions/ci-yaml-setup-db.txt diff --git a/scripts/split-tox-gh-actions/ci-yaml-setup-db.txt b/scripts/split-tox-gh-actions/ci-yaml-setup-db.txt new file mode 100644 index 0000000000..2dc7ab5604 --- /dev/null +++ b/scripts/split-tox-gh-actions/ci-yaml-setup-db.txt @@ -0,0 +1,2 @@ + psql postgresql://postgres:sentry@localhost:5432 -c "create database ${SENTRY_PYTHON_TEST_POSTGRES_NAME};" || true + psql postgresql://postgres:sentry@localhost:5432 -c "grant all privileges on database ${SENTRY_PYTHON_TEST_POSTGRES_NAME} to ${SENTRY_PYTHON_TEST_POSTGRES_USER};" || true From f087369eb02ffb91941a5d7a181dd42034e26a39 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 11:44:10 +0200 Subject: [PATCH 19/23] Fixes some asyncpg tests --- tests/integrations/asyncpg/test_asyncpg.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/integrations/asyncpg/test_asyncpg.py b/tests/integrations/asyncpg/test_asyncpg.py index 89dcb2595b..cfa9c32b43 100644 --- a/tests/integrations/asyncpg/test_asyncpg.py +++ b/tests/integrations/asyncpg/test_asyncpg.py @@ -33,11 +33,11 @@ CRUMBS_CONNECT = { "category": "query", "data": { - "db.name": "postgres", + "db.name": PG_NAME, "db.system": "postgresql", - "db.user": "foo", - "server.address": "localhost", - "server.port": 5432, + "db.user": PG_USER, + "server.address": PG_HOST, + "server.port": PG_PORT, }, "message": "connect", "type": "default", From f15a84a3ccf7355113e0ba490207a05c9f3aa679 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 12:56:49 +0200 Subject: [PATCH 20/23] Fixed grpc test --- tox.ini | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index 492f09b5da..6d72fce9e2 100644 --- a/tox.ini +++ b/tox.ini @@ -91,7 +91,7 @@ envlist = {py3.7}-gcp # Grpc - {py3.7,py3.8,py3.9,py3.10,py3.11}-grpc-v{1.21.1,1.22.1,1.23.1,1.24.1,1.25.0,1.26.0,1.27.1,1.28.1,1.29.0,1.30.0,1.31.0,1.32.0,1.33.1,1.34.0,1.36.0,1.37.0,1.38.0,1.39.0,1.40.0,1.41.1,1.43.0,1.44.0,1.46.1,1.48.1,1.51.3,1.53.0} + {py3.7,py3.8,py3.9,py3.10,py3.11}-grpc-v{1.40,1.44,1.48,1.54,1.56,1.58} # HTTPX {py3.6,py3.7,py3.8,py3.9}-httpx-v{0.16,0.17,0.18} @@ -309,7 +309,12 @@ deps = {py2.7,py3.6,py3.7,py3.8,py3.9,py3.10,py3.11}-gevent: gevent>=22.10.0, <22.11.0 # Grpc - grpc: grpcio-tools + grpc=1.40: grpcio-tools>=1.40,<1.41 + grpc=1.44: grpcio-tools>=1.44,<1.45 + grpc=1.48: grpcio-tools>=1.48,<1.49 + grpc=1.54: grpcio-tools>=1.54,<1.55 + grpc=1.56: grpcio-tools>=1.56,<1.57 + grpc=1.58: grpcio-tools>=1.58,<1.59 grpc: protobuf grpc: mypy-protobuf grpc: types-protobuf From 37e8c3cf507f043ae0ce6a1ff125e9460ec44c6b Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 12:59:11 +0200 Subject: [PATCH 21/23] Fixed typo --- tox.ini | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tox.ini b/tox.ini index 6d72fce9e2..ddc0899e4e 100644 --- a/tox.ini +++ b/tox.ini @@ -309,12 +309,12 @@ deps = {py2.7,py3.6,py3.7,py3.8,py3.9,py3.10,py3.11}-gevent: gevent>=22.10.0, <22.11.0 # Grpc - grpc=1.40: grpcio-tools>=1.40,<1.41 - grpc=1.44: grpcio-tools>=1.44,<1.45 - grpc=1.48: grpcio-tools>=1.48,<1.49 - grpc=1.54: grpcio-tools>=1.54,<1.55 - grpc=1.56: grpcio-tools>=1.56,<1.57 - grpc=1.58: grpcio-tools>=1.58,<1.59 + grpc-1.40: grpcio-tools>=1.40,<1.41 + grpc-1.44: grpcio-tools>=1.44,<1.45 + grpc-1.48: grpcio-tools>=1.48,<1.49 + grpc-1.54: grpcio-tools>=1.54,<1.55 + grpc-1.56: grpcio-tools>=1.56,<1.57 + grpc-1.58: grpcio-tools>=1.58,<1.59 grpc: protobuf grpc: mypy-protobuf grpc: types-protobuf From 2e4b1917214a0e67f5b6e7c46b82476c232a6cc9 Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 13:50:30 +0200 Subject: [PATCH 22/23] Fixed deps for grpcio tests --- tox.ini | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tox.ini b/tox.ini index ddc0899e4e..525382a7d3 100644 --- a/tox.ini +++ b/tox.ini @@ -309,12 +309,12 @@ deps = {py2.7,py3.6,py3.7,py3.8,py3.9,py3.10,py3.11}-gevent: gevent>=22.10.0, <22.11.0 # Grpc - grpc-1.40: grpcio-tools>=1.40,<1.41 - grpc-1.44: grpcio-tools>=1.44,<1.45 - grpc-1.48: grpcio-tools>=1.48,<1.49 - grpc-1.54: grpcio-tools>=1.54,<1.55 - grpc-1.56: grpcio-tools>=1.56,<1.57 - grpc-1.58: grpcio-tools>=1.58,<1.59 + grpc-v1.40: grpcio-tools>=1.40.0,<1.41.0 + grpc-v1.44: grpcio-tools>=1.44.0,<1.45.0 + grpc-v1.48: grpcio-tools>=1.48.0,<1.49.0 + grpc-v1.54: grpcio-tools>=1.54.0,<1.55.0 + grpc-v1.56: grpcio-tools>=1.56.0,<1.57.0 + grpc-v1.58: grpcio-tools>=1.58.0,<1.59.0 grpc: protobuf grpc: mypy-protobuf grpc: types-protobuf From bad2e10ddaccb7f8706e2a91500e23825bfd34af Mon Sep 17 00:00:00 2001 From: Anton Pirker Date: Mon, 11 Sep 2023 14:07:47 +0200 Subject: [PATCH 23/23] Do not test older grpc versions in Python 3.11 --- tox.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 525382a7d3..fd9a0ca5a4 100644 --- a/tox.ini +++ b/tox.ini @@ -91,7 +91,8 @@ envlist = {py3.7}-gcp # Grpc - {py3.7,py3.8,py3.9,py3.10,py3.11}-grpc-v{1.40,1.44,1.48,1.54,1.56,1.58} + {py3.7,py3.8,py3.9,py3.10}-grpc-v{1.40,1.44,1.48} + {py3.7,py3.8,py3.9,py3.10,py3.11}-grpc-v{1.54,1.56,1.58} # HTTPX {py3.6,py3.7,py3.8,py3.9}-httpx-v{0.16,0.17,0.18}