blob: 3c97bc23a7bc87746c6d3caa1376981a1a99254f [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.cros.faft.utils import (os_interface,
saft_flashrom_util,
shell_wrapper)
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 ShellError 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(shell_wrapper.ShellError):
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()