Skip to content

Commit

Permalink
Fix passing params in args (#41)
Browse files Browse the repository at this point in the history
Fix passing params in args - Fix #36
  • Loading branch information
cunla authored Jul 23, 2022
1 parent d5d491f commit e62c7b5
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 2 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
coverage: yes
services:
redis:
image: redis:6.2.7
image: redis:6.2.6
ports:
- 6379:6379
outputs:
Expand Down
7 changes: 6 additions & 1 deletion fakeredis/_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ class FakeRedisMixin:
def __init__(self, *args, server=None, connected=True, **kwargs):
# Interpret the positional and keyword arguments according to the
# version of redis in use.
default_args = inspect.signature(redis.Redis.__init__).parameters.values()
parameters = inspect.signature(redis.Redis.__init__).parameters
parameter_names = list(parameters.keys())
default_args = parameters.values()
kwds = {p.name: p.default for p in default_args if p.default != inspect.Parameter.empty}
kwds.update(kwargs)
if not kwds.get('connection_pool', None):
Expand Down Expand Up @@ -142,6 +144,9 @@ def __init__(self, *args, server=None, connected=True, **kwargs):
kwds['connection_pool'] = redis.connection.ConnectionPool(**kwargs)
kwds.pop('server', None)
kwds.pop('connected', None)
parameter_names_to_cut = parameter_names[1:len(args) + 1]
for param in parameter_names_to_cut:
kwds.pop(param, None)
super().__init__(*args, **kwds)

@classmethod
Expand Down
21 changes: 21 additions & 0 deletions test/test_mock.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
from redis import Redis


def connect_redis(redis_host: str, redis_port: int) -> Redis:
redis_con = Redis(redis_host, redis_port)
return redis_con


def bar(zip, zap):
redis_con = connect_redis('localhost', 6379)


from unittest.mock import patch
from fakeredis import FakeRedis


def test_bar():
# Mock Redis connection
with patch('test_mock.Redis', FakeRedis):
# Call function
bar(zip, [])

0 comments on commit e62c7b5

Please sign in to comment.