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