blob: 2f78b27fd7e46828e4716a871a4a5ac04614595b [file] [log] [blame]
"""Unit tests for saft_flashrom_util.py."""
import mock
import StringIO
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()
bad_flashrom.stdout = StringIO.StringIO('broken flashrom stdout')
bad_flashrom.stderr = StringIO.StringIO('broken flashrom stderr')
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()
good_flashrom.stdout = StringIO.StringIO('working flashrom stdout')
good_flashrom.stderr = StringIO.StringIO('working flashrom stderr')
good_flashrom.returncode = 0
mock_subproc_popen.return_value = good_flashrom
self.assertTrue(self.flashrom_util.check_target())
if __name__ == '__main__':
unittest.main()