planet-client-python
planet-client-python copied to clipboard
move unit test patching over to unittest.patch from pytest monkeypatch
Go through the unit tests and replace Mock()
/monkeypatch
pattern with unittest.patch
Example
Change this:
@pytest.mark.parametrize(
"pretty,expected",
[(False, '{"key": "val"}'), (True, '{\n "key": "val"\n}')])
def test_cli_echo_json(pretty, expected, monkeypatch):
mock_echo = Mock()
monkeypatch.setattr(io.click, 'echo', mock_echo)
to this:
@pytest.mark.parametrize(
"pretty,expected",
[(False, '{"key": "val"}'), (True, '{\n "key": "val"\n}')])
@mock.patch('planet.cli.io.click.echo')
def test_cli_echo_json(mock_echo, pretty, expected, monkeypatch):
Original Context
from unittest.mock import Mock
import pytest
from planet.cli import io
@pytest.mark.parametrize(
"pretty,expected",
[(False, '{"key": "val"}'), (True, '{\n "key": "val"\n}')])
def test_cli_echo_json(pretty, expected, monkeypatch):
mock_echo = Mock()
monkeypatch.setattr(io.click, 'echo', mock_echo)
obj = {'key': 'val'}
io.echo_json(obj, pretty)
mock_echo.assert_called_once_with(expected)
Ref: https://github.com/planetlabs/planet-client-python/pull/385#discussion_r798899867