xref: /aosp_15_r20/external/toolchain-utils/cros_utils/misc_test.py (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1#!/usr/bin/env python3
2# -*- coding: utf-8 -*-
3# Copyright 2019 The ChromiumOS Authors
4# Use of this source code is governed by a BSD-style license that can be
5# found in the LICENSE file.
6
7"""Tests for misc."""
8
9
10__author__ = "[email protected] (Ahmad Sharif)"
11
12# System modules
13import unittest
14
15# Local modules
16from cros_utils import misc
17
18
19class UtilsTest(unittest.TestCase):
20    """Tests for misc."""
21
22    def testGetFilenameFromString(self):
23        string = 'a /b=c"d^$?\\'
24        filename = misc.GetFilenameFromString(string)
25        self.assertEqual(filename, "a___bcd")
26
27    def testPrependMergeEnv(self):
28        var = "USE"
29        use_flags = "hello 123"
30        added_use_flags = "bla bla"
31        env_string = "%s=%r" % (var, use_flags)
32        new_env_string = misc.MergeEnvStringWithDict(
33            env_string, {var: added_use_flags}
34        )
35        expected_new_env = "%s=%r" % (
36            var,
37            " ".join([added_use_flags, use_flags]),
38        )
39        self.assertEqual(
40            new_env_string, " ".join([env_string, expected_new_env])
41        )
42
43    def testGetChromeOSVersionFromLSBVersion(self):
44        versions_dict = {"2630.0.0": "22", "2030.0.0": "19"}
45        f = misc.GetChromeOSVersionFromLSBVersion
46        for k, v in versions_dict.items():
47            self.assertEqual(f(k), "R%s-%s" % (v, k))
48
49    def testPostpendMergeEnv(self):
50        var = "USE"
51        use_flags = "hello 123"
52        added_use_flags = "bla bla"
53        env_string = "%s=%r" % (var, use_flags)
54        new_env_string = misc.MergeEnvStringWithDict(
55            env_string, {var: added_use_flags}, False
56        )
57        expected_new_env = "%s=%r" % (
58            var,
59            " ".join([use_flags, added_use_flags]),
60        )
61        self.assertEqual(
62            new_env_string, " ".join([env_string, expected_new_env])
63        )
64
65
66if __name__ == "__main__":
67    unittest.main()
68