blob: 96bfca5b81b90c27af8c8d30d608687a94def6d5 [file] [log] [blame]
Xixuan Wu51bb7102019-03-18 14:51:44 -07001# Copyright 2018 The Chromium OS Authors. All rights reserved.
Xixuan Wuabbaa4c2017-08-23 17:31:49 -07002# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Xixuan Wu51bb7102019-03-18 14:51:44 -07005"""Module for task config reader unittests."""
Xixuan Wu5ff0fac2019-01-07 10:06:35 -08006# pylint: disable=g-missing-super-call
Xixuan Wuabbaa4c2017-08-23 17:31:49 -07007
8import unittest
9
10import config_reader
Xixuan Wu244e0ec2018-05-23 14:49:55 -070011
Xixuan Wuabbaa4c2017-08-23 17:31:49 -070012
13class LabReaderTestCase(unittest.TestCase):
14
15 def setUp(self):
16 self.config = config_reader.ConfigReader(None)
Xixuan Wu26d06e02017-09-20 14:50:28 -070017 self.config.add_section(config_reader.ANDROID_SETTINGS)
Xixuan Wu6fb16272017-10-19 13:16:00 -070018 self.config.add_section(config_reader.CROS_SETTINGS)
Xixuan Wuabbaa4c2017-08-23 17:31:49 -070019
20 def testGetAndroidBoardList(self):
21 """Ensure android board list can be correctly fetched."""
Xixuan Wu26d06e02017-09-20 14:50:28 -070022 self.config.set(config_reader.ANDROID_SETTINGS, 'board_list',
23 '\nabox_edge,\nandroid-angler-1,\nangler-6')
Xixuan Wuabbaa4c2017-08-23 17:31:49 -070024 lab_config = config_reader.LabConfig(self.config)
25 self.assertEqual(lab_config.get_android_board_list(),
26 set(['abox_edge', 'android-angler', 'angler']))
27
28 def testGetInvalidAndroidBoardListEntry(self):
29 """Ensure ValueError is raised if no valid board list entry."""
Xixuan Wu26d06e02017-09-20 14:50:28 -070030 self.config.set(config_reader.ANDROID_SETTINGS, 'invalid_board_list',
31 '\nabox_edge,\nandroid-angler-1,\nangler-6')
Xixuan Wuabbaa4c2017-08-23 17:31:49 -070032 lab_config = config_reader.LabConfig(self.config)
33 self.assertRaises(ValueError, lab_config.get_android_board_list)
34
35 def testGetEmptyAndroidBoardListEntry(self):
36 """Ensure ValueError is raised if no android board list is found."""
37 lab_config = config_reader.LabConfig(self.config)
38 self.assertRaises(ValueError, lab_config.get_android_board_list)
39
Xixuan Wu6fb16272017-10-19 13:16:00 -070040 def testGetCrOSBoardList(self):
41 """Ensure android board list can be correctly fetched."""
42 self.config.set(config_reader.CROS_SETTINGS, 'board_list',
43 '\nlink,\nandroid-angler-1,\nangler-6')
44 self.config.set(config_reader.ANDROID_SETTINGS, 'board_list',
45 '\nandroid-angler-1,\nangler-6')
46 lab_config = config_reader.LabConfig(self.config)
47 self.assertEqual(lab_config.get_cros_board_list(),
48 set(['link']))
49
C Shapiro7f24a002017-12-05 14:25:09 -070050 def testGetCrOSModelMap(self):
51 """Ensure cros_model_map can be correctly fetched."""
52 self.config.set(config_reader.CROS_SETTINGS, 'model_list',
53 '\ncoral_astronaut,\ncoral_robo360')
54 lab_config = config_reader.LabConfig(self.config)
55 result = lab_config.get_cros_model_map()
56 self.assertEqual(len(result), 1)
57 self.assertEqual(result['coral'], ['astronaut', 'robo360'])
58
Xixuan Wuf4a4c882019-03-15 14:48:26 -070059 def testGetEmptyCrOSModelMap(self):
60 """Ensure cros_model_map can be correctly fetched."""
61 lab_config = config_reader.LabConfig(self.config)
62 self.assertEqual(lab_config.get_cros_model_map(), {})
63
64
Xixuan Wuabbaa4c2017-08-23 17:31:49 -070065if __name__ == '__main__':
66 unittest.main()