mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-06-02 07:26:46 +00:00
66 lines
2.4 KiB
Python
66 lines
2.4 KiB
Python
import unittest
|
|
|
|
from app.core.config import Settings
|
|
|
|
|
|
class PostgreSQLSocketConfigTests(unittest.TestCase):
|
|
def test_postgresql_tcp_url_keeps_host_and_port(self):
|
|
settings = Settings(
|
|
DB_POSTGRESQL_HOST="db",
|
|
DB_POSTGRESQL_PORT="5433",
|
|
DB_POSTGRESQL_DATABASE="moviepilot",
|
|
DB_POSTGRESQL_USERNAME="user",
|
|
DB_POSTGRESQL_PASSWORD="pass",
|
|
)
|
|
|
|
self.assertFalse(settings.DB_POSTGRESQL_SOCKET_MODE)
|
|
self.assertEqual(
|
|
settings.DB_POSTGRESQL_URL(),
|
|
"postgresql://user:pass@db:5433/moviepilot",
|
|
)
|
|
self.assertEqual(
|
|
settings.DB_POSTGRESQL_URL("asyncpg"),
|
|
"postgresql+asyncpg://user:pass@db:5433/moviepilot",
|
|
)
|
|
self.assertEqual(settings.DB_POSTGRESQL_TARGET, "db:5433")
|
|
|
|
def test_postgresql_socket_url_uses_host_query_param(self):
|
|
settings = Settings(
|
|
DB_POSTGRESQL_HOST="/var/run/postgresql",
|
|
DB_POSTGRESQL_PORT="",
|
|
DB_POSTGRESQL_DATABASE="moviepilot",
|
|
DB_POSTGRESQL_USERNAME="user",
|
|
DB_POSTGRESQL_PASSWORD="pass",
|
|
)
|
|
|
|
self.assertTrue(settings.DB_POSTGRESQL_SOCKET_MODE)
|
|
# socket 模式下不带端口:未显式设置时 DB_POSTGRESQL_PORT 为空串
|
|
self.assertEqual(settings.DB_POSTGRESQL_PORT, "")
|
|
self.assertEqual(
|
|
settings.DB_POSTGRESQL_URL(),
|
|
"postgresql://user:pass@/moviepilot?host=%2Fvar%2Frun%2Fpostgresql",
|
|
)
|
|
self.assertEqual(
|
|
settings.DB_POSTGRESQL_URL("asyncpg"),
|
|
"postgresql+asyncpg://user:pass@/moviepilot?host=%2Fvar%2Frun%2Fpostgresql",
|
|
)
|
|
self.assertEqual(settings.DB_POSTGRESQL_TARGET, "socket /var/run/postgresql")
|
|
|
|
def test_postgresql_socket_url_can_keep_explicit_port(self):
|
|
settings = Settings(
|
|
DB_POSTGRESQL_HOST="/var/run/postgresql",
|
|
DB_POSTGRESQL_PORT="5432",
|
|
DB_POSTGRESQL_DATABASE="moviepilot",
|
|
DB_POSTGRESQL_USERNAME="user",
|
|
DB_POSTGRESQL_PASSWORD="",
|
|
)
|
|
|
|
self.assertEqual(
|
|
settings.DB_POSTGRESQL_URL(),
|
|
"postgresql://user@/moviepilot?host=%2Fvar%2Frun%2Fpostgresql&port=5432",
|
|
)
|
|
self.assertEqual(
|
|
settings.DB_POSTGRESQL_TARGET,
|
|
"socket /var/run/postgresql (port 5432)",
|
|
)
|