Beispiel #1
0
 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),
         ))
Beispiel #2
0
 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),
     )
Beispiel #3
0
 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))
Beispiel #4
0
 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))
Beispiel #5
0
 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())
Beispiel #6
0
 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))
Beispiel #7
0
 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))
Beispiel #8
0
 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))
Beispiel #9
0
 def test__returns_false_when_unable_to_wait_start_device_test(self):
     device = factory.make_name('device')
     self.mock_check_smart_support.return_value = (device, [42])
     self.mock_wait_smartctl_selftest.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))