Skip to content

move unit test patching over to unittest.patch from pytest monkeypatch #394

Open
@jreiberkyle

Description

@jreiberkyle

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: #385 (comment)

Metadata

Metadata

Assignees

No one assigned

    Labels

    better-testingImproving test coverage across the project

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions