blob: 5e0768a1e2eb491248475e37c2a0089cad185c05 [file] [log] [blame]
# Copyright 2020 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
from __future__ import print_function
from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals
import six
import unittest
import common
import autotest_lib.site_utils.deployment.prepare.dut as dut
from autotest_lib.server.hosts.host_info import InMemoryHostInfoStore, HostInfo
mock_labstation_args = {
"labels": [
"os:labstation",
],
"attributes": None,
"stable_versions": None,
}
mock_labstation_args_bad_config = {
"labels": [
"os:labstation",
],
"attributes": {
"powerunit_outlet": "AAAA"
},
"stable_versions": None,
}
class MockHost(object):
"""Mock Host object, mimics a labstation with a servo attached"""
SHUTDOWN_TIMEOUT = 0.001
BOOT_TIMEOUT = 0.001
def __init__(self, info, power_on=True, power_off=True):
self.host_info_store = InMemoryHostInfoStore(info=info)
self.hostname = "a"
self._called_rpm_power_off_and_wait = 0
self._called_rpm_power_on_and_wait = 0
def rpm_power_off_and_wait(self):
self._called_rpm_power_off_and_wait += 1
def rpm_power_on_and_wait(self):
self._called_rpm_power_on_and_wait += 1
class TestDut(unittest.TestCase):
def test_verify_labstation_RPM_config_unsafe(self):
"""Test successful labstation RPM powercycle"""
m = MockHost(info=HostInfo(**mock_labstation_args))
dut.verify_labstation_RPM_config_unsafe(m)
def test_verify_labstation_RPM_config_unsafe_bad_config(self):
m = MockHost(info=HostInfo(**mock_labstation_args_bad_config))
with self.assertRaises(Exception):
dut.verify_labstation_RPM_config_unsafe(m)
if __name__ == "__main__":
unittest.main()