Changes
This commit is contained in:
@@ -66,7 +66,7 @@ class clangd_test(unittest.TestCase):
|
||||
self.assertNotIn(unwanted, " ".join(command))
|
||||
volumes = [command[index + 1] for index, argument in enumerate(command) if argument == "--volume"]
|
||||
self.assertFalse(any(volume.startswith(str(pathlib.Path.home()) + ":") for volume in volumes))
|
||||
self.assertIn("--query-driver=/usr/bin/gcc-12,/usr/bin/g++-12,/usr/bin/aarch64-linux-gnu-gcc,/usr/bin/aarch64-linux-gnu-g++", command)
|
||||
self.assertIn("--query-driver=/usr/bin/gcc-12,/usr/bin/g++-12,/usr/bin/aarch64-linux-gnu-gcc-12,/usr/bin/aarch64-linux-gnu-g++-12", command)
|
||||
def test_startup_failure_does_not_prepare_and_keeps_stdout_clean(self):
|
||||
output, errors = io.StringIO(), io.StringIO()
|
||||
with patch.object(modulus.clangd, "current_image", return_value=None), patch.object(modulus.clangd, "prepare") as prepare, \
|
||||
|
||||
+35
-13
@@ -903,15 +903,9 @@ class upload_packages_test(unittest.TestCase):
|
||||
(install_root / "bin" / "sample").write_text("binary\n", encoding="utf-8")
|
||||
return 0
|
||||
with unittest.mock.patch.object(modulus.cli, "run", side_effect=fake_run) as run:
|
||||
status, artifacts = modulus.cli.create_artifact_package(
|
||||
context,
|
||||
context.default_target,
|
||||
"abc123",
|
||||
update=False,
|
||||
no_remote=True,
|
||||
)
|
||||
status, artifacts = modulus.cli.create_artifact_package(context, context.default_target, update=False, no_remote=True)
|
||||
self.assertEqual(status, 0)
|
||||
archive = repo / "build" / "packages" / "sample-abc123-native.tar.gz"
|
||||
archive = repo / "build" / "packages" / "sample-native.tar.gz"
|
||||
checksum = archive.with_name(archive.name + ".sha256")
|
||||
self.assertEqual(artifacts, [archive, checksum])
|
||||
self.assertTrue(archive.is_file())
|
||||
@@ -929,9 +923,11 @@ class upload_packages_test(unittest.TestCase):
|
||||
self.assertIn("-DSAMPLE_WITH_WEB=ON", cmake_command)
|
||||
self.assertIn(f"-DCMAKE_INSTALL_PREFIX={repo / 'build' / 'build_common' / 'artifacts' / 'native' / 'stage' / 'usr'}", cmake_command)
|
||||
@unittest.mock.patch.object(modulus.cli, "run", return_value=0)
|
||||
def test_generic_artifact_upload_uses_package_registry_credentials(self, run):
|
||||
@unittest.mock.patch.object(modulus.cli, "run_capture")
|
||||
@unittest.mock.patch.object(pathlib.Path, "is_file", return_value=True)
|
||||
def test_generic_artifact_upload_uses_package_registry_credentials(self, exists, capture, run):
|
||||
context = self.context()
|
||||
archive = pathlib.Path("build/packages/sample-abc123-native.tar.gz")
|
||||
archive = pathlib.Path("build/packages/sample-native.tar.gz")
|
||||
with unittest.mock.patch.dict(
|
||||
os.environ,
|
||||
{
|
||||
@@ -940,8 +936,11 @@ class upload_packages_test(unittest.TestCase):
|
||||
},
|
||||
clear=True,
|
||||
):
|
||||
status = modulus.cli.upload_generic_artifact(context, "abc123", archive)
|
||||
self.assertEqual(status, 0)
|
||||
for response in ("204", "404"):
|
||||
capture.return_value = subprocess.CompletedProcess([], 0, stdout=response, stderr="")
|
||||
self.assertEqual(modulus.cli.upload_generic_artifact(context, archive), 0)
|
||||
self.assertEqual(capture.call_args.args[1], ["curl", "--silent", "--show-error", "--user", "dev:secret", "--request", "DELETE", "--output", os.devnull, "--write-out", "%{http_code}", "https://example.test/api/packages/acme/generic/sample/latest/sample-native.tar.gz"])
|
||||
self.assertEqual(capture.call_args.kwargs["display_command"][4], "dev:<hidden>")
|
||||
self.assertEqual(
|
||||
run.call_args.args[1],
|
||||
[
|
||||
@@ -953,13 +952,36 @@ class upload_packages_test(unittest.TestCase):
|
||||
"dev:secret",
|
||||
"--upload-file",
|
||||
archive,
|
||||
"https://example.test/api/packages/acme/generic/sample/abc123/sample-abc123-native.tar.gz",
|
||||
"https://example.test/api/packages/acme/generic/sample/latest/sample-native.tar.gz",
|
||||
],
|
||||
)
|
||||
self.assertEqual(
|
||||
run.call_args.kwargs["display_command"][5],
|
||||
"dev:<hidden>",
|
||||
)
|
||||
@unittest.mock.patch.object(modulus.cli, "package_registry_credentials", return_value=("dev", "secret"))
|
||||
@unittest.mock.patch.object(pathlib.Path, "is_file", return_value=True)
|
||||
@unittest.mock.patch.object(modulus.cli, "run_capture")
|
||||
@unittest.mock.patch.object(modulus.cli, "run")
|
||||
def test_artifact_upload_stops_if_replacement_fails(self, run, capture, exists, credentials):
|
||||
for status, response in ((0, "401"), (0, "500"), (7, "000")):
|
||||
with self.subTest(status=status, response=response):
|
||||
capture.return_value = subprocess.CompletedProcess([], status, stdout=response, stderr="")
|
||||
self.assertNotEqual(modulus.cli.upload_generic_artifact(self.context(), pathlib.Path("sample-native.tar.gz")), 0)
|
||||
run.assert_not_called()
|
||||
@unittest.mock.patch.object(modulus.cli, "run_capture")
|
||||
def test_missing_artifact_does_not_touch_registry(self, capture):
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
self.assertEqual(modulus.cli.upload_generic_artifact(self.context(), pathlib.Path(temporary) / "missing.tar.gz"), 1)
|
||||
capture.assert_not_called()
|
||||
@unittest.mock.patch.object(modulus.cli, "in_docker", return_value=True)
|
||||
@unittest.mock.patch.object(modulus.cli, "create_artifact_package", return_value=(0, []))
|
||||
def test_artifact_command_needs_no_release_argument(self, create, docker):
|
||||
with tempfile.TemporaryDirectory() as temporary:
|
||||
context = self.context(repo_root=pathlib.Path(temporary))
|
||||
context.package["artifact"]["enabled"] = True
|
||||
self.assertEqual(modulus.cli.package_artifacts(context, ["--no-remote"]), 0)
|
||||
create.assert_called_once_with(context, context.default_target, False, no_remote=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
@@ -82,6 +82,19 @@ class modulus_export_test(unittest.TestCase):
|
||||
self.assertFalse(config["tooling"]["run"]["enabled"])
|
||||
self.assertFalse(config["tooling"]["lsp"]["enabled"])
|
||||
self.assertEqual(config["tooling"]["lsp"]["compile_databases"], [])
|
||||
def test_arm_profiles_pin_compilers_and_separate_legacy_internal_binaries(self):
|
||||
root = pathlib.Path(__file__).resolve().parents[1]
|
||||
for build_type in ("debug", "release"):
|
||||
profile = (root / "tools/conan/profiles" / f"arm_64_gcc12_{build_type}").read_text()
|
||||
self.assertIn('compiler.version=12', profile)
|
||||
self.assertIn('tools.build:compiler_executables={"c": "aarch64-linux-gnu-gcc-12", "cpp": "aarch64-linux-gnu-g++-12"}', profile)
|
||||
for name in ("modulus", "ligo", "noto", "luma", "sonus"):
|
||||
self.assertIn(f'{name}/*:tools.info.package_id:confs=["tools.build:compiler_executables"]', profile)
|
||||
for path in (".gitea/workflows/ci.yml", "tools/docker/Dockerfile"):
|
||||
source = (root / path).read_text()
|
||||
for compiler in ("gcc", "g++"):
|
||||
self.assertIn(f"{compiler}-12-aarch64-linux-gnu", source)
|
||||
self.assertNotIn(f"{compiler}-aarch64-linux-gnu", source)
|
||||
def test_product_artifact_and_run_config_are_validated(self):
|
||||
config = self.config()
|
||||
config["package"]["artifact"] = {
|
||||
|
||||
Reference in New Issue
Block a user