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
|
import os
import platform
import shutil
import sys
from unittest.mock import MagicMock
import pytest
from briefcase.config import AppConfig
from briefcase.integrations.base import ToolCache
from briefcase.integrations.file import File
from briefcase.integrations.subprocess import Subprocess
from tests.utils import DummyConsole
@pytest.fixture
def mock_tools(tmp_path) -> ToolCache:
mock_tools = ToolCache(
console=DummyConsole(),
base_path=tmp_path / "tools",
home_path=tmp_path / "home",
)
# Mock stdlib tools
mock_tools.os = MagicMock(spec_set=os)
mock_tools.platform = MagicMock(spec_set=platform)
mock_tools.shutil = MagicMock(spec_set=shutil)
mock_tools.sys = MagicMock(spec_set=sys)
# Mock an empty environment
mock_tools.os.environ = {}
# Create base directories
mock_tools.base_path.mkdir(parents=True)
mock_tools.home_path.mkdir(parents=True)
# Make File and Subprocess always available
File.verify(tools=mock_tools)
Subprocess.verify(tools=mock_tools)
return mock_tools
@pytest.fixture
def first_app_config():
return AppConfig(
app_name="first-app",
project_name="First Project",
formal_name="First App",
author="Megacorp",
bundle="com.example",
version="0.0.1",
description="The first simple app",
sources=["src/first_app"],
license={"file": "LICENSE"},
)
|