def test_returns_false_when_unable_to_check_device(self): device = factory.make_name("device") self.mock_check_smart_support.return_value = (device, [42]) self.mock_check_smartctl.side_effect = ( random.choice( [ TimeoutExpired("smartctl", 60), CalledProcessError(42, "smartctl"), ] ), ) device = "%s,42" % device self.assertFalse( smartctl.execute_smartctl(self.blockdevice, self.test) ) self.assertThat( self.mock_check_smart_support, MockCallsMatch( call(self.blockdevice), call(self.blockdevice, device) ), ) self.assertThat( self.mock_run_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test, device), ) self.assertThat( self.mock_wait_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test, device), ) self.assertThat( self.mock_check_smartctl, MockCalledOnceWith(self.blockdevice, device), )
def test_doesnt_run_testing_when_validating(self): self.mock_check_smart_support.return_value = (None, []) self.assertTrue(smartctl.execute_smartctl(self.blockdevice, "validate")) self.assertThat(self.mock_run_smartctl_selftest, MockNotCalled()) self.assertThat(self.mock_wait_smartctl_selftest, MockNotCalled()) self.assertThat(self.mock_check_smartctl, MockCalledOnceWith(self.blockdevice))
def test_returns_false_with_check_smart_support_error(self): self.mock_check_smart_support.side_effect = random.choice([ TimeoutExpired("smartctl", 60), CalledProcessError(42, "smartctl"), ]) self.assertFalse(smartctl.execute_smartctl(self.blockdevice, self.test)) self.assertThat(self.mock_run_smartctl_selftest, MockNotCalled()) self.assertThat(self.mock_wait_smartctl_selftest, MockNotCalled()) self.assertThat(self.mock_check_smartctl, MockNotCalled())
def test_returns_true(self): self.mock_check_smart_support.return_value = (None, []) self.assertTrue(smartctl.execute_smartctl(self.blockdevice, self.test)) self.assertThat( self.mock_run_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test), ) self.assertThat( self.mock_wait_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test), ) self.assertThat(self.mock_check_smartctl, MockCalledOnceWith(self.blockdevice))
def test_returns_false_when_starting_test_fails(self): self.mock_check_smart_support.return_value = (None, []) self.mock_run_smartctl_selftest.side_effect = random.choice([ TimeoutExpired("smartctl", 60), CalledProcessError(42, "smartctl"), ]) self.assertFalse(smartctl.execute_smartctl(self.blockdevice, self.test)) self.assertThat( self.mock_run_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test), ) self.assertThat(self.mock_wait_smartctl_selftest, MockNotCalled()) self.assertThat(self.mock_check_smartctl, MockCalledOnceWith(self.blockdevice))
def test_doesnt_run_testing_when_validating_device(self): device = factory.make_name("device") self.mock_check_smart_support.return_value = (device, [42]) device = "%s,42" % device self.assertTrue(smartctl.execute_smartctl(self.blockdevice, "validate")) self.assertThat( self.mock_check_smart_support, MockCallsMatch(call(self.blockdevice), call(self.blockdevice, device)), ) self.assertThat(self.mock_run_smartctl_selftest, MockNotCalled()) self.assertThat(self.mock_wait_smartctl_selftest, MockNotCalled()) self.assertThat( self.mock_check_smartctl, MockCalledOnceWith(self.blockdevice, device), )
def test_returns_true_with_device(self): device = factory.make_name("device") self.mock_check_smart_support.return_value = (device, [42]) device = "%s,42" % device self.assertTrue(smartctl.execute_smartctl(self.blockdevice, self.test)) self.assertThat( self.mock_check_smart_support, MockCallsMatch(call(self.blockdevice), call(self.blockdevice, device)), ) self.assertThat( self.mock_run_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test, device), ) self.assertThat( self.mock_wait_smartctl_selftest, MockCalledOnceWith(self.blockdevice, self.test, device), ) self.assertThat( self.mock_check_smartctl, MockCalledOnceWith(self.blockdevice, device), )
def test_tests_all_scsi_bus_nums(self): device = factory.make_name("device") self.mock_check_smart_support.return_value = (device, [1, 2, 3]) self.assertTrue(smartctl.execute_smartctl(self.blockdevice, self.test)) self.assertThat( self.mock_check_smart_support, MockCallsMatch( call(self.blockdevice), call(self.blockdevice, "%s,1" % device), call(self.blockdevice, "%s,2" % device), call(self.blockdevice, "%s,3" % device), ), ) self.assertThat( self.mock_run_smartctl_selftest, MockCallsMatch( call(self.blockdevice, self.test, "%s,1" % device), call(self.blockdevice, self.test, "%s,2" % device), call(self.blockdevice, self.test, "%s,3" % device), ), ) self.assertThat( self.mock_wait_smartctl_selftest, MockCallsMatch( call(self.blockdevice, self.test, "%s,1" % device), call(self.blockdevice, self.test, "%s,2" % device), call(self.blockdevice, self.test, "%s,3" % device), ), ) self.assertThat( self.mock_check_smartctl, MockCallsMatch( call(self.blockdevice, "%s,1" % device), call(self.blockdevice, "%s,2" % device), call(self.blockdevice, "%s,3" % device), ), )