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