xref: /aosp_15_r20/external/autotest/autotest_lib/server/cros/ap_config_unittest.py (revision 9c5db1993ded3edbeafc8092d69fe5de2ee02df7)
1# Lint as: python2, python3
2# Copyright 2019 The Chromium OS Authors. All rights reserved.
3# Use of this source code is governed by a BSD-style license that can be
4# found in the LICENSE file.
5
6import io
7import six
8import unittest
9
10from . import common
11
12from autotest_lib.client.common_lib import seven
13from autotest_lib.server.cros import ap_config
14
15
16class APTestCase(unittest.TestCase):
17    def test_not_rpm_managed(self):
18        conf = _parse_config_from_string("""
19[test_bss]
20rpm_managed = False
21rpm_hostname = chromeos3-row2-rack3-rpm1
22rpm_outlet = .A15""")
23        ap = ap_config.AP('test_bss', conf)
24        self.assertIsNone(ap.get_rpm_unit())
25
26
27    def test_rpm_managed(self):
28        conf = _parse_config_from_string("""
29[test_bss]
30rpm_managed = True
31rpm_hostname = chromeos3-row2-rack3-rpm1
32rpm_outlet = .A15""")
33        ap = ap_config.AP('test_bss', conf)
34        rpm_unit = ap.get_rpm_unit()
35        self.assertIsNotNone(rpm_unit)
36        self.assertEqual('chromeos3-row2-rack3-rpm1', rpm_unit.hostname)
37        self.assertEqual('.A15', rpm_unit.outlet)
38
39    def test_get_ap_list_returns_non_empty(self):
40        self.assertGreater(len(ap_config.get_ap_list()), 0)
41
42
43def _parse_config_from_string(conf):
44    parser = seven.config_parser()
45    if six.PY2:
46        parser.readfp(io.BytesIO(conf))
47    else:
48        parser.read_string(conf)
49
50    return parser
51
52
53if __name__ == '__main__':
54    unittest.main()