@@ -1,18 +1,18 @@
|
||||
import json
|
||||
import importlib.util
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import pathlib
|
||||
import shutil
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import types
|
||||
import unittest
|
||||
from unittest.mock import Mock, patch
|
||||
import unittest.mock
|
||||
|
||||
class BuildBootstrapTests(unittest.TestCase):
|
||||
def test_arm_profile_selects_versioned_compilers_available_in_ci_and_docker(self):
|
||||
root = Path(__file__).resolve().parents[1]
|
||||
root = pathlib.Path(__file__).resolve().parents[1]
|
||||
profile = (root / 'conan/profiles/arm_64_gcc12_release').read_text()
|
||||
self.assertIn('tools.build:compiler_executables={"c": "aarch64-linux-gnu-gcc-12", "cpp": "aarch64-linux-gnu-g++-12"}', profile)
|
||||
for path in ('.gitea/workflows/ci.yml', 'package/Dockerfile.build'):
|
||||
@@ -22,12 +22,12 @@ class BuildBootstrapTests(unittest.TestCase):
|
||||
self.assertNotIn(f'{compiler}-aarch64-linux-gnu', source)
|
||||
@unittest.skipUnless(shutil.which('conan'), 'Conan is required for package identity checks')
|
||||
def test_arm_package_ids_exclude_unverified_internal_binaries_only(self):
|
||||
root = Path(__file__).resolve().parents[1]
|
||||
root = pathlib.Path(__file__).resolve().parents[1]
|
||||
if not (root / 'build/build_tools/conan/profiles/arm_64_gcc12_release').is_file():
|
||||
self.skipTest('Configure first to export the shared Conan profiles')
|
||||
profile = root / 'conan/profiles/arm_64_gcc12_release'
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
directory = Path(temporary)
|
||||
directory = pathlib.Path(temporary)
|
||||
environment = dict(os.environ, CONAN_HOME=str(directory / 'conan'), CONAN_NON_INTERACTIVE='1')
|
||||
command = ['conan', 'graph', 'info', str(directory), f'--profile:host={profile}', f'--profile:build={profile}', '--no-remote', '--format=json']
|
||||
def package_id(*extra):
|
||||
@@ -46,7 +46,7 @@ class BuildBootstrapTests(unittest.TestCase):
|
||||
self.assertNotEqual(current, legacy)
|
||||
self.assertNotEqual(current, different_compiler)
|
||||
def test_build_recipe_is_declared_and_editor_commands_do_not_bootstrap(self):
|
||||
root = Path(__file__).resolve().parents[1]
|
||||
root = pathlib.Path(__file__).resolve().parents[1]
|
||||
spec = importlib.util.spec_from_file_location('vamp_bootstrap', root / 'modulus.py')
|
||||
bootstrap = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(bootstrap)
|
||||
@@ -57,14 +57,14 @@ class BuildBootstrapTests(unittest.TestCase):
|
||||
package = types.ModuleType('modulus')
|
||||
cli = types.ModuleType('modulus.cli')
|
||||
package.cli = cli
|
||||
docker_run = Mock()
|
||||
docker_run = unittest.mock.Mock()
|
||||
cli.docker_run = docker_run
|
||||
cli.main = Mock(return_value=0)
|
||||
cli.main = unittest.mock.Mock(return_value=0)
|
||||
for command in ('clangd', 'format'):
|
||||
with patch.dict(sys.modules, {'modulus': package, 'modulus.cli': cli}), \
|
||||
patch.object(bootstrap, 'ensure_runtime') as prepare, \
|
||||
patch.object(bootstrap, 'runtime_ready', return_value=True), \
|
||||
patch.object(sys, 'path', list(sys.path)):
|
||||
with unittest.mock.patch.dict(sys.modules, {'modulus': package, 'modulus.cli': cli}), \
|
||||
unittest.mock.patch.object(bootstrap, 'ensure_runtime') as prepare, \
|
||||
unittest.mock.patch.object(bootstrap, 'runtime_ready', return_value=True), \
|
||||
unittest.mock.patch.object(sys, 'path', list(sys.path)):
|
||||
self.assertEqual(bootstrap.delegate(command, []), 0)
|
||||
prepare.assert_not_called()
|
||||
docker_run.assert_not_called()
|
||||
|
||||
Reference in New Issue
Block a user