mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
We can't just change module attributes while testing. Use mock.patch.
This commit is contained in:
parent
f7f5ad70dd
commit
9d8745162a
1 changed files with 28 additions and 31 deletions
|
@ -1,5 +1,3 @@
|
|||
import os
|
||||
|
||||
import pytest
|
||||
import salt.utils.msgpack
|
||||
from tests.support.mock import MagicMock, patch
|
||||
|
@ -14,17 +12,16 @@ def test_load_encoding(tmpdir):
|
|||
|
||||
https://github.com/msgpack/msgpack-python/blob/master/ChangeLog.rst
|
||||
"""
|
||||
fn_ = os.path.join(tmpdir, "test_load_encoding.txt")
|
||||
salt.utils.msgpack.version = (1, 0, 0)
|
||||
|
||||
fname = tmpdir.join("test_load_encoding.txt")
|
||||
kwargs = {"encoding": "utf-8"}
|
||||
data = [1, 2, 3]
|
||||
with salt.utils.files.fopen(fn_, "wb") as fh_:
|
||||
salt.utils.msgpack.dump(data, fh_)
|
||||
with salt.utils.files.fopen(fn_, "rb") as fh_:
|
||||
ret = salt.utils.msgpack.load(fh_, **kwargs)
|
||||
with patch.object(salt.utils.msgpack, "version", (1, 0, 0)):
|
||||
with salt.utils.files.fopen(fname.strpath, "wb") as wfh:
|
||||
salt.utils.msgpack.dump(data, wfh)
|
||||
with salt.utils.files.fopen(fname.strpath, "rb") as rfh:
|
||||
ret = salt.utils.msgpack.load(rfh, **kwargs)
|
||||
|
||||
assert ret == data
|
||||
assert ret == data
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
|
@ -35,28 +32,28 @@ def test_load_multiple_versions(version, encoding, tmpdir):
|
|||
test when using msgpack on multiple versions that
|
||||
we only remove encoding on >= 1.0.0
|
||||
"""
|
||||
fn_ = os.path.join(tmpdir, "test_load_multipl_versions.txt")
|
||||
salt.utils.msgpack.version = version
|
||||
data = [1, 2, 3]
|
||||
fname = tmpdir.join("test_load_multipl_versions.txt")
|
||||
with patch.object(salt.utils.msgpack, "version", version):
|
||||
data = [1, 2, 3]
|
||||
|
||||
mock_dump = MagicMock(return_value=data)
|
||||
patch_dump = patch("msgpack.pack", mock_dump)
|
||||
mock_dump = MagicMock(return_value=data)
|
||||
patch_dump = patch("msgpack.pack", mock_dump)
|
||||
|
||||
mock_load = MagicMock(return_value=data)
|
||||
patch_load = patch("msgpack.unpack", mock_load)
|
||||
mock_load = MagicMock(return_value=data)
|
||||
patch_load = patch("msgpack.unpack", mock_load)
|
||||
|
||||
kwargs = {"encoding": "utf-8"}
|
||||
with patch_dump, patch_load:
|
||||
with salt.utils.files.fopen(fn_, "wb") as fh_:
|
||||
salt.utils.msgpack.dump(data, fh_, encoding="utf-8")
|
||||
if encoding:
|
||||
assert "encoding" in mock_dump.call_args.kwargs
|
||||
else:
|
||||
assert "encoding" not in mock_dump.call_args.kwargs
|
||||
kwargs = {"encoding": "utf-8"}
|
||||
with patch_dump, patch_load:
|
||||
with salt.utils.files.fopen(fname.strpath, "wb") as wfh:
|
||||
salt.utils.msgpack.dump(data, wfh, encoding="utf-8")
|
||||
if encoding:
|
||||
assert "encoding" in mock_dump.call_args.kwargs
|
||||
else:
|
||||
assert "encoding" not in mock_dump.call_args.kwargs
|
||||
|
||||
with salt.utils.files.fopen(fn_, "rb") as fh_:
|
||||
salt.utils.msgpack.load(fh_, **kwargs)
|
||||
if encoding:
|
||||
assert "encoding" in mock_load.call_args.kwargs
|
||||
else:
|
||||
assert "encoding" not in mock_load.call_args.kwargs
|
||||
with salt.utils.files.fopen(fname.strpath, "rb") as rfh:
|
||||
salt.utils.msgpack.load(rfh, **kwargs)
|
||||
if encoding:
|
||||
assert "encoding" in mock_load.call_args.kwargs
|
||||
else:
|
||||
assert "encoding" not in mock_load.call_args.kwargs
|
||||
|
|
Loading…
Add table
Reference in a new issue