Skip to content

Commit 3f9693b

Browse files
committed
Use 'mocker' properly for redisobj tests
I didn't realize, or I'd forgotten, that with the pytest.mock 'mocker' fixture, you need to use e.g. mocker.patch.object to patch objects and methods instead of patching them directly. When patching them directly, sometimes the original object or method doesn't get restored after a test and leaks into subsequent tests. Using mocker.patch.object allows the fixture to restore things correctly.
1 parent 7ed13fd commit 3f9693b

1 file changed

Lines changed: 11 additions & 11 deletions

File tree

django/sierra/utils/tests/test_redisobjs.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -805,7 +805,7 @@ def test_redisobject_setfield_calls_set(mocker):
805805
calls 'set' with 'update=True' to set fields on an existing hash.
806806
"""
807807
r = redisobjs.RedisObject('test', 'item')
808-
r.set = mocker.Mock()
808+
mocker.patch.object(r, 'set')
809809
r.set_field({'a': 'z'})
810810
r.set.assert_called_with({'a': 'z'}, update=True)
811811

@@ -818,7 +818,7 @@ def test_redisobject_setvalue_single_value(mocker):
818818
value (not in a list).
819819
"""
820820
r = redisobjs.RedisObject('test', 'item')
821-
r.set = mocker.Mock(return_value=['a'])
821+
mocker.patch.object(r, 'set', mocker.Mock(return_value=['a']))
822822
assert r.set_value(1, 'a') == 'a'
823823
r.set.assert_called_with(('a',), update=True, index=1)
824824

@@ -831,7 +831,7 @@ def test_redisobject_setvalue_multiple_values(mocker):
831831
a list.
832832
"""
833833
r = redisobjs.RedisObject('test', 'item')
834-
r.set = mocker.Mock(return_value=['a', 'b'])
834+
mocker.patch.object(r, 'set', mocker.Mock(return_value=['a', 'b']))
835835
assert r.set_value(1, 'a', 'b') == ['a', 'b']
836836
r.set.assert_called_with(('a', 'b'), update=True, index=1)
837837

@@ -1019,7 +1019,7 @@ def test_redisobject_getfield_single_field(mocker):
10191019
calls 'get' with the applicable field lookup.
10201020
"""
10211021
r = redisobjs.RedisObject('test', 'get_field')
1022-
r.get = mocker.Mock()
1022+
mocker.patch.object(r, 'get')
10231023
r.get_field('myfield')
10241024
r.get.assert_called_with('myfield', 'field')
10251025

@@ -1030,7 +1030,7 @@ def test_redisobject_getfield_multiple_fields(mocker):
10301030
calls 'get' with the applicable field lookup.
10311031
"""
10321032
r = redisobjs.RedisObject('test', 'get_field')
1033-
r.get = mocker.Mock()
1033+
mocker.patch.object(r, 'get')
10341034
r.get_field('myfield1', 'myfield2')
10351035
r.get.assert_called_with(('myfield1', 'myfield2'), 'fields')
10361036

@@ -1041,7 +1041,7 @@ def test_redisobject_getindex_single_value(mocker):
10411041
calls 'get' with the applicable lookup by value.
10421042
"""
10431043
r = redisobjs.RedisObject('test', 'get_index')
1044-
r.get = mocker.Mock()
1044+
mocker.patch.object(r, 'get')
10451045
r.get_index('myval')
10461046
r.get.assert_called_with('myval', 'value')
10471047

@@ -1052,7 +1052,7 @@ def test_redisobject_getindex_multiple_values(mocker):
10521052
calls 'get' with the applicable lookup by value.
10531053
"""
10541054
r = redisobjs.RedisObject('test', 'get_index')
1055-
r.get = mocker.Mock()
1055+
mocker.patch.object(r, 'get')
10561056
r.get_index('myval1', 'myval2')
10571057
r.get.assert_called_with(('myval1', 'myval2'), 'values')
10581058

@@ -1063,7 +1063,7 @@ def test_redisobject_getvalue_single_index(mocker):
10631063
calls 'get' with the applicable lookup by index.
10641064
"""
10651065
r = redisobjs.RedisObject('test', 'get_value')
1066-
r.get = mocker.Mock()
1066+
mocker.patch.object(r, 'get')
10671067
r.get_value(1)
10681068
r.get.assert_called_with(1, 'index')
10691069

@@ -1074,7 +1074,7 @@ def test_redisobject_getvalue_index_range(mocker):
10741074
calls 'get' with the applicable lookup by index.
10751075
"""
10761076
r = redisobjs.RedisObject('test', 'get_value')
1077-
r.get = mocker.Mock()
1077+
mocker.patch.object(r, 'get')
10781078
r.get_value(1, 5)
10791079
r.get.assert_called_with((1, 5), 'index')
10801080

@@ -1212,8 +1212,8 @@ def mock_execute_behavior():
12121212
return rval
12131213

12141214
r = redisobjs.RedisObject('test', 'stream_set')
1215-
r.set = mocker.Mock(side_effect=mock_set_behavior)
1216-
r.pipe = mocker.Mock()
1215+
mocker.patch.object(r, 'set', mocker.Mock(side_effect=mock_set_behavior))
1216+
mocker.patch.object(r, 'pipe')
12171217
r.pipe.execute.side_effect = mock_execute_behavior
12181218

12191219
rs = redisobjs.RedisObjectStream(r, target_batch_size, commit_every)

0 commit comments

Comments
 (0)