diff --git a/test_runner/regress/data/extension_test/v14/anon.tar.gz b/test_runner/regress/data/extension_test/v14/anon.tar.gz new file mode 100644 index 0000000000..4c7959fe8b Binary files /dev/null and b/test_runner/regress/data/extension_test/v14/anon.tar.gz differ diff --git a/test_runner/regress/data/extension_test/v14/embedding.tar.gz b/test_runner/regress/data/extension_test/v14/embedding.tar.gz new file mode 100644 index 0000000000..98ba0a5c2c Binary files /dev/null and b/test_runner/regress/data/extension_test/v14/embedding.tar.gz differ diff --git a/test_runner/regress/data/extension_test/v14/ext_index.json b/test_runner/regress/data/extension_test/v14/ext_index.json new file mode 100644 index 0000000000..dd84369e30 --- /dev/null +++ b/test_runner/regress/data/extension_test/v14/ext_index.json @@ -0,0 +1,14 @@ +{ + "enabled_extensions": { + "123454321": [ + "anon" + ], + "public": [ + "embedding" + ] + }, + "control_data": { + "embedding": "comment = 'hnsw index' \ndefault_version = '0.1.0' \nmodule_pathname = '$libdir/embedding' \nrelocatable = true \ntrusted = true", + "anon": "# PostgreSQL Anonymizer (anon) extension \ncomment = 'Data anonymization tools' \ndefault_version = '1.1.0' \ndirectory='extension/anon' \nrelocatable = false \nrequires = 'pgcrypto' \nsuperuser = false \nmodule_pathname = '$libdir/anon' \ntrusted = true \n" + } +} diff --git a/test_runner/regress/data/extension_test/anon.tar.gz b/test_runner/regress/data/extension_test/v15/anon.tar.gz similarity index 100% rename from test_runner/regress/data/extension_test/anon.tar.gz rename to test_runner/regress/data/extension_test/v15/anon.tar.gz diff --git a/test_runner/regress/data/extension_test/embedding.tar.gz b/test_runner/regress/data/extension_test/v15/embedding.tar.gz similarity index 100% rename from test_runner/regress/data/extension_test/embedding.tar.gz rename to test_runner/regress/data/extension_test/v15/embedding.tar.gz diff --git a/test_runner/regress/data/extension_test/ext_index.json b/test_runner/regress/data/extension_test/v15/ext_index.json similarity index 100% rename from test_runner/regress/data/extension_test/ext_index.json rename to test_runner/regress/data/extension_test/v15/ext_index.json diff --git a/test_runner/regress/test_download_extensions.py b/test_runner/regress/test_download_extensions.py index fa21e898f2..0e09a2ba3f 100644 --- a/test_runner/regress/test_download_extensions.py +++ b/test_runner/regress/test_download_extensions.py @@ -26,9 +26,6 @@ def test_remote_extensions( remote_storage_kind: RemoteStorageKind, pg_version: PgVersion, ): - if pg_version != "15": - # TODO: for right now we only have test files for v15 - return None neon_env_builder.enable_remote_storage( remote_storage_kind=remote_storage_kind, test_name="test_remote_extensions", @@ -47,7 +44,9 @@ def test_remote_extensions( def upload_test_file(from_path, to_path): assert env.ext_remote_storage is not None # satisfy mypy assert env.remote_storage_client is not None # satisfy mypy - with open(f"test_runner/regress/data/extension_test/{from_path}", "rb") as f: + with open( + f"test_runner/regress/data/extension_test/v{pg_version}/{from_path}", "rb" + ) as f: env.remote_storage_client.upload_fileobj( f, env.ext_remote_storage.bucket_name, @@ -78,7 +77,6 @@ def test_remote_extensions( assert "anon" in all_extensions assert "embedding" in all_extensions # TODO: check that we cant't download custom extensions for other tenant ids - # TODO: not sure how private extension will work with REAL_S3 test. can we rig the tenant id? # check that we can download public extension cur.execute("CREATE EXTENSION embedding") @@ -95,8 +93,21 @@ def test_remote_extensions( # TODO: try to load libraries as well finally: - cleanup_files = ["embedding.tar.gz", "anon.tar.gz"] - cleanup_folders = ["extensions"] + # Cleaning up downloaded files is important for local tests + # or else one test could reuse the files from another test or another test run + cleanup_files = [ + "embedding.tar.gz", + "anon.tar.gz", + f"pg_install/v{pg_version}/lib/postgresql/anon.so", + f"pg_install/v{pg_version}/lib/postgresql/embedding.so", + f"pg_install/v{pg_version}/share/postgresql/extension/anon.control", + f"pg_install/v{pg_version}/share/postgresql/extension/embedding--0.1.0.sql", + f"pg_install/v{pg_version}/share/postgresql/extension/embedding.control", + ] + cleanup_folders = [ + "extensions", + f"pg_install/v{pg_version}/share/postgresql/extension/anon", + ] for file in cleanup_files: try: os.remove(file)