syncstorage-rs/tools/spanner/test_utils.py
Taddes 77254b4a6e
Some checks failed
Glean probe-scraper / glean-probe-scraper (push) Has been cancelled
refactor: python imports (#1730)
refactor: unified python imports for consistency in local, production, and test environments
2025-08-04 15:37:46 -04:00

46 lines
1.6 KiB
Python

import pytest
from spanner.utils import ids_from_env
from unittest.mock import MagicMock
@pytest.fixture(autouse=True)
def reset_env(monkeypatch):
# Reset environment variables before each test
for var in [
"SYNC_SYNCSTORAGE__DATABASE_URL",
"INSTANCE_ID",
"DATABASE_ID",
"GOOGLE_CLOUD_PROJECT"
]:
monkeypatch.delenv(var, raising=False)
def test_ids_from_env_parses_url(monkeypatch):
"""Test with passed in DSN"""
monkeypatch.setenv("SYNC_SYNCSTORAGE__DATABASE_URL", "spanner://projects/proj/instances/inst/databases/db")
dsn = "SYNC_SYNCSTORAGE__DATABASE_URL"
instance_id, database_id, project_id = ids_from_env(dsn)
assert project_id == "proj"
assert instance_id == "inst"
assert database_id == "db"
def test_ids_from_env_with_missing_url(monkeypatch):
"""Test ensures that default env vars set id values."""
monkeypatch.setenv("INSTANCE_ID", "foo")
monkeypatch.setenv("DATABASE_ID", "bar")
monkeypatch.setenv("GOOGLE_CLOUD_PROJECT", "baz")
instance_id, database_id, project_id = ids_from_env()
assert instance_id == "foo"
assert database_id == "bar"
assert project_id == "baz"
def test_from_env_with_invalid_url(monkeypatch):
monkeypatch.setenv("SYNC_SYNCSTORAGE__DATABASE_URL", "notaspanner://foo")
monkeypatch.setenv("INSTANCE_ID", "default")
monkeypatch.setenv("DATABASE_ID", "default-db")
monkeypatch.setenv("GOOGLE_CLOUD_PROJECT", "default-proj")
instance_id, database_id, project_id = ids_from_env()
assert instance_id == "default"
assert database_id == "default-db"
assert project_id == "default-proj"