aboutsummaryrefslogtreecommitdiff
path: root/conftest.py
blob: 141cba5f64684f3ca4b8facdee5773ca46758dfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# SPDX-License-Identifier: CC0-1.0

# Copyright (C) 2022 Wojtek Kosior <koszko@koszko.org>
#
# Available under the terms of Creative Commons Zero v1.0 Universal.

import sys
from pathlib import Path

import pytest

here = Path(__file__).resolve().parent
sys.path.insert(0, str(here / 'src'))

@pytest.fixture(autouse=True)
def no_requests(monkeypatch):
    """Remove requests.sessions.Session.request for all tests."""
    monkeypatch.delattr('requests.sessions.Session.request')

@pytest.fixture
def mock_subprocess_run(monkeypatch, request):
    """
    Temporarily replace subprocess.run() with a function supplied through pytest
    marker 'subprocess_run'.

    The marker excepts 2 arguments:
    * the module inside which the subprocess attribute should be mocked and
    * a run() function to use.
    """
    where, mocked_run = request.node.get_closest_marker('subprocess_run').args

    class MockedSubprocess:
        """Minimal mocked version of the subprocess module."""
        run = mocked_run

    monkeypatch.setattr(where, 'subprocess', MockedSubprocess)