Skip to content

Commit 49654ee

Browse files
author
Andrew Brookins
committed
Refine connection strings (dotenv), Makefile targets
1 parent d2fa4c5 commit 49654ee

File tree

7 files changed

+49
-7
lines changed

7 files changed

+49
-7
lines changed

Makefile

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ help:
1414
@echo " format reformat code"
1515
@echo " test run all the tests"
1616
@echo " shell open a Poetry shell"
17+
@echo " redis start a Redis instance with Docker"
1718
@echo ""
1819
@echo "Check the Makefile to know exactly what each target is doing."
1920

@@ -44,7 +45,7 @@ format: $(INSTALL_STAMP)
4445
.PHONY: test
4546
test: $(INSTALL_STAMP)
4647
#$(POETRY) run pytest ./tests/ --cov-report term-missing --cov-fail-under 100 --cov $(NAME)
47-
$(POETRY) run pytest ./tests/
48+
$(POETRY) run pytest -s -vv ./tests/
4849

4950
.PHONY: shell
5051
shell: $(INSTALL_STAMP)
@@ -53,3 +54,7 @@ shell: $(INSTALL_STAMP)
5354
.PHONY: redis
5455
redis:
5556
docker-compose up -d
57+
58+
59+
.PHONY: all
60+
all: redis $(INSTALL_STAMP) lint test

docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ version: "3.8"
33
services:
44
redis:
55
image: "redislabs/redismod:edge"
6-
entrypoint: ["redis-server", "--appendonly", "yes", "--loadmodule", "/usr/lib/redis/modules/rejson.so"]
6+
entrypoint: ["redis-server", "--appendonly", "yes", "--loadmodule", "/usr/lib/redis/modules/rejson.so", "--loadmodule", "/usr/lib/redis/modules/redisearch.so"]
77
restart: always
88
ports:
99
- "6380:6379"

poetry.lock

Lines changed: 16 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ pptree = "^3.1"
1616
types-redis = "^3.5.9"
1717
types-six = "^1.16.1"
1818
python-ulid = "^1.0.3"
19+
python-dotenv = "^0.19.1"
1920

2021
[tool.poetry.dev-dependencies]
2122
mypy = "^0.910"

redis_developer/connections.py

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
1+
import os
2+
3+
import dotenv
14
import redis
25

36

4-
def get_redis_connection() -> redis.Redis:
5-
return redis.Redis(decode_responses=True)
7+
dotenv.load_dotenv()
8+
9+
URL = os.environ.get("REDIS_OM_URL", None)
10+
11+
12+
def get_redis_connection(**kwargs) -> redis.Redis:
13+
# If someone passed in a 'url' parameter, or specified a REDIS_OM_URL
14+
# environment variable, we'll create the Redis client from the URL.
15+
url = kwargs.pop("url", URL)
16+
if not url:
17+
import ipdb
18+
19+
ipdb.set_trace()
20+
if url:
21+
return redis.from_url(url, **kwargs)
22+
23+
# Decode from UTF-8 by default
24+
if "decode_responses" not in kwargs:
25+
kwargs["decode_responses"] = True
26+
return redis.Redis(**kwargs)

redis_developer/model/model.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
from redis.client import Pipeline
3838
from ulid import ULID
3939

40+
from ..connections import get_redis_connection
4041
from .encoders import jsonable_encoder
4142
from .render_tree import render_tree
4243
from .token_escaper import TokenEscaper
@@ -997,7 +998,7 @@ def __new__(cls, name, bases, attrs, **kwargs): # noqa C901
997998
)
998999
if not getattr(new_class._meta, "database", None):
9991000
new_class._meta.database = getattr(
1000-
base_meta, "database", redis.Redis(decode_responses=True)
1001+
base_meta, "database", get_redis_connection()
10011002
)
10021003
if not getattr(new_class._meta, "primary_key_creator_cls", None):
10031004
new_class._meta.primary_key_creator_cls = getattr(

tests/conftest.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ def redis():
1717

1818
@pytest.fixture
1919
def key_prefix():
20-
# TODO
2120
yield "redis-developer"
2221

2322

0 commit comments

Comments
 (0)