aboutsummaryrefslogtreecommitdiff
path: root/conftest.py
blob: 65d13d561c5acdab54fc084cb680384ecb65235c (about) (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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# 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
import pkgutil

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)

@pytest.fixture(autouse=True)
def no_gettext(monkeypatch, request):
    """
    Make gettext return all strings untranslated unless we request otherwise.
    """
    if request.node.get_closest_marker('enable_gettext'):
        return

    import hydrilla
    modules_to_process = [hydrilla]

    def add_child_modules(parent):
        """
        Recursuvely collect all modules descending from 'parent' into an array.
        """
        try:
            load_paths = parent.__path__
        except AttributeError:
            return

        for module_info in pkgutil.iter_modules(load_paths):
            if module_info.name != '__main__':
                __import__(f'{parent.__name__}.{module_info.name}')
                modules_to_process.append(getattr(parent, module_info.name))
                add_child_modules(getattr(parent, module_info.name))

    add_child_modules(hydrilla)

    for module in modules_to_process:
        if hasattr(module, '_'):
            monkeypatch.setattr(module, '_', lambda message: message)
a dummy (git) module to 'compute-guix-derivation'....Ludovic Courtès 2018-09-09Merge branch 'master' into core-updatesMarius Bakke 2018-09-06build-self: Accomodate upgrades from May 2016 and earlier....Ludovic Courtès 2018-09-04Switch to Guile-Gcrypt....Ludovic Courtès 2018-07-27build-self: Default to Guile 2.2 when building a standalone Guix....Ludovic Courtès 2018-07-27gnu: guile: Remove version 2.2.2....Ludovic Courtès 2018-06-26build-self: Inherit the daemon connection from the parent process....Ludovic Courtès 2018-06-21build-self: Avoid recompilations of 'compute-guix-derivation'....Ludovic Courtès 2018-06-18self: Define derived '-directory' variables in config.scm....Ludovic Courtès 2018-06-18build-self: Do not rely on '%store-database-directory'....Ludovic Courtès 2018-06-18build: Remove checks for 'nix-instantiate'....Ludovic Courtès 2018-06-18self: Make (guix config) generation really stateless....Ludovic Courtès 2018-06-09self: Produce a complete package with the 'guix' command....Ludovic Courtès 2018-04-08build-self: Add missing 'close-pipe' call....Ludovic Courtès 2018-04-08build-self: Use (guix self)....Ludovic Courtès 2018-02-15pull: Update the %sbindir variable in (guix config) when building....Diego Nicola Barbato 2017-12-13pull: Add (guix profiling) to the build environment....Ludovic Courtès 2017-12-07pull: Build with an ABI-compatible Guile....Ludovic Courtès 2017-11-21Revert "Add (guix self) and use it when pulling."...Ludovic Courtès 2017-11-21Add (guix self) and use it when pulling....Ludovic Courtès 2017-10-23pull: Add (guix build compile) to the mix....Ludovic Courtès 2017-08-02pull: Fetch source code from Git....Ludovic Courtès 2017-06-09pull: Add a dependency to guile-git....Mathieu Othacehe 2017-05-09pull: Build with the matching Guile major version....Ludovic Courtès 2016-11-27pull: Hack to allow compilation with older Guile-SSH packages....Ludovic Courtès 2016-11-26pull: Add guile-ssh to the dependencies....宋文武 2016-07-20pull: Update the version string....Ludovic Courtès 2016-07-20pull: Install (guix config) module to override the user's one....Ludovic Courtès