-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add function to build arq RedisSettings
Add a utility function to construct the RedisSettings object used by arq to create a Redis pool.
- Loading branch information
Showing
4 changed files
with
88 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
### New features | ||
|
||
- Add new utility function `safir.arq.build_arq_redis_settings`, which constructs the `RedisSettings` object used to create an arq Redis queue from a Pydantic Redis DSN. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
"""Tests for arq utility functions. | ||
Most of the arq support code is tested by testing the FastAPI dependency. | ||
""" | ||
|
||
from __future__ import annotations | ||
|
||
from pydantic import SecretStr | ||
from pydantic_core import Url | ||
|
||
from safir.arq import build_arq_redis_settings | ||
|
||
|
||
def test_build_arq_redis_settings() -> None: | ||
url = Url.build(scheme="redis", host="localhost") | ||
settings = build_arq_redis_settings(url, None) | ||
assert settings.host == "localhost" | ||
assert settings.port == 6379 | ||
assert settings.database == 0 | ||
assert settings.password is None | ||
|
||
url = Url.build(scheme="redis", host="example.com", port=7777, path="4") | ||
settings = build_arq_redis_settings(url, SecretStr("password")) | ||
assert settings.host == "example.com" | ||
assert settings.port == 7777 | ||
assert settings.database == 4 | ||
assert settings.password == "password" |