blob: ba8a2f1d5aa625e2192786ab126a7ff5128ccf5c [file] [log] [blame]
Jae Hoon Kimbb0ddf02023-07-21 04:23:12 +00001# Copyright 2023 The ChromiumOS Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Unit tests for cros_generate_dlc_artifacts."""
6
Jae Hoon Kimbb0ddf02023-07-21 04:23:12 +00007from unittest import mock
8
9import pytest
10
11from chromite.lib import dlc_lib
12from chromite.scripts import cros_generate_dlc_artifacts
13
14
15@pytest.mark.parametrize("dry_run", ((False), (True)))
16def test_upload_dlc_artifacts(dry_run):
17 """Tests out UploadDlcArtifacts with dry_run option"""
18 artifact_mock = mock.Mock()
19 cros_generate_dlc_artifacts.UploadDlcArtifacts(
20 artifact_mock, dry_run=dry_run
21 )
22 artifact_mock.Upload.assert_called_with(dry_run=dry_run)
23
24
25@pytest.mark.parametrize("dlc_id", ("some-dlc-id",))
26@pytest.mark.parametrize("preallocated_blocks", (123,))
27@pytest.mark.parametrize("name", ((""), ("<some-name>")))
28@pytest.mark.parametrize("description", ((""), ("<some-description>")))
29@pytest.mark.parametrize("version", ("<some-version>",))
30@mock.patch.object(dlc_lib, "EbuildParams")
31def test_generate_dlc_params(
32 mock_ebuild_params,
33 dlc_id,
34 preallocated_blocks,
35 name,
36 description,
37 version,
38 tmp_path,
39):
40 """Tests out GenerateDlcParams"""
41 tmpfile = tmp_path / "license"
42 tmpfile.touch()
43 argv = [
44 "--src-dir",
45 ".",
46 "--license",
47 str(tmpfile),
48 *(["--id", f"{dlc_id}"] if dlc_id else []),
49 *(
50 ["--preallocated-blocks", f"{preallocated_blocks}"]
51 if preallocated_blocks
52 else []
53 ),
54 *(["--name", f"{name}"] if name else []),
55 *(["--description", f"{description}"] if description else []),
56 *(["--version", f"{version}"] if version else []),
57 ]
58 opts = cros_generate_dlc_artifacts.ParseArguments(argv)
59 cros_generate_dlc_artifacts.GenerateDlcParams(opts)
60 mock_ebuild_params.assert_called_with(
61 dlc_id=dlc_id,
62 dlc_package="package",
63 fs_type=dlc_lib.SQUASHFS_TYPE,
64 pre_allocated_blocks=preallocated_blocks,
65 version=version,
66 name=name,
67 description=description,
68 preload=False,
69 used_by="",
70 mount_file_required=False,
71 fullnamerev="",
72 scaled=True,
73 loadpin_verity_digest=False,
74 )