Command line script to manage the cpi lab journal users.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
1.4 KiB

import shutil
import tempfile
from typing import Dict, List
from pathlib import Path
from dataclasses import dataclass
import pytest
@dataclass
class StubCall:
func: str
args: List
kargs: Dict
class StubShell:
STDOUT = "STDOUT"
def __init__(self):
self.stack = []
def _add(self, func, args, kargs):
sc = StubCall(func, args, kargs)
self.stack.append(sc)
def check_call(self, args, **kargs):
self._add("check_call", args, kargs)
@pytest.fixture
def stub_handler():
return StubShell()
def temporary_data_file(src_data_dir, file_name):
source = src_data_dir / file_name
with tempfile.TemporaryDirectory() as tmpdirname:
destination = Path(tmpdirname) / file_name
shutil.copy(source, destination)
yield destination
@pytest.fixture
def example_data_dir():
this_file = Path(__file__).absolute()
src_dir = this_file.parent.parent
return src_dir / "test-data"
@pytest.fixture
def example_authz(example_data_dir):
yield from temporary_data_file(example_data_dir, "authz")
@pytest.fixture
def example_htpasswd(example_data_dir):
yield from temporary_data_file(example_data_dir, "htpasswd")
@pytest.fixture
def example_empty_file():
with tempfile.TemporaryDirectory() as tmpdirname:
destination = Path(tmpdirname) / "empty"
yield destination