blob: 4665ad63f54243e9c8503e9e8f985fb71d5a61aa [file] [log] [blame]
"""Unit tests for saft_flashrom_util.py."""
import mock
import unittest
from autotest_lib.client.common_lib import autotemp
from autotest_lib.client.common_lib import error
from autotest_lib.client.cros.faft.utils import (os_interface,
saft_flashrom_util)
class TestFlashromUtil(unittest.TestCase):
"""Tests for saft_flashrom_util.flashrom_util()."""
def setUp(self):
self._tempdir = autotemp.tempdir(unique_id='saft_flashrom_util_test')
self.addCleanup(self._tempdir.clean)
self.os_if = os_interface.OSInterface(
self._tempdir.name, test_mode=True)
self.flashrom_util = saft_flashrom_util.flashrom_util(self.os_if)
@mock.patch('subprocess.Popen')
def testTargetIsBroken(self, mock_subproc_popen):
"""check_target should raise error.CmdError if flashrom is broken"""
bad_flashrom = mock.Mock()
attrs = {
'communicate.return_value':
('broken flashrom stdout', 'broken flashrom stderr')
}
bad_flashrom.configure_mock(**attrs)
bad_flashrom.returncode = 1
mock_subproc_popen.return_value = bad_flashrom
with self.assertRaises(error.CmdError):
self.flashrom_util.check_target()
@mock.patch('subprocess.Popen')
def testTargetIsNotBroken(self, mock_subproc_popen):
"""check_target should return True if flashrom is working"""
good_flashrom = mock.Mock()
attrs = {
'communicate.return_value':
('working flashrom stdout', 'working flashrom stderr')
}
good_flashrom.configure_mock(**attrs)
good_flashrom.returncode = 0
mock_subproc_popen.return_value = good_flashrom
self.assertTrue(self.flashrom_util.check_target())
if __name__ == '__main__':
unittest.main()