Ejemplo n.º 1
0
 def test_cannot_open(self, mock_chmod, mock_chown, mock_flock):
     raw_file = RawFile(fixture_metadata())
     mock_open = mock.mock_open()
     with patch_file("open", mock_open):
         mock_open.side_effect = OSError(1, "some error", FILE_PATH)
         with self.assertRaises(RawFileError) as cm:
             raw_file.write(b"data")
             mock_open().write.assert_not_called()
     mock_open.assert_has_calls([mock.call(FILE_PATH, "x")])
     mock_flock.assert_not_called()
     mock_chown.assert_not_called()
     mock_chmod.assert_not_called()
     self.assertEqual(cm.exception.metadata, raw_file.metadata)
     self.assertEqual(cm.exception.action, RawFileError.ACTION_WRITE)
     self.assertEqual(cm.exception.reason, f"some error: '{FILE_PATH}'")
Ejemplo n.º 2
0
 def test_cannot_write(self, mock_chmod, mock_chown, mock_flock):
     raw_file = RawFile(fixture_metadata())
     mock_open = mock.mock_open()
     with patch_file("open", mock_open):
         mock_open().fileno.return_value = self.fileno
         mock_open().write.side_effect = OSError(1, "some error", FILE_PATH)
         with self.assertRaises(RawFileError) as cm:
             raw_file.write(b"data")
         mock_open().write.assert_called_once_with("data")
     mock_open.assert_has_calls([mock.call(FILE_PATH, "x")])
     mock_flock.assert_called_once_with(self.fileno, fcntl.LOCK_EX)
     mock_chown.assert_called_once_with(FILE_PATH, FILE_OWNER, FILE_GROUP)
     mock_chmod.assert_called_once_with(self.fileno, FILE_PERMISSIONS)
     self.assertEqual(cm.exception.metadata, raw_file.metadata)
     self.assertEqual(cm.exception.action, RawFileError.ACTION_WRITE)
     self.assertEqual(cm.exception.reason, f"some error: '{FILE_PATH}'")
Ejemplo n.º 3
0
 def test_cannot_chown_bad_user(self, mock_chmod, mock_chown, mock_flock):
     raw_file = RawFile(fixture_metadata())
     mock_chown.side_effect = LookupError("some error")
     mock_open = mock.mock_open()
     with patch_file("open", mock_open):
         mock_open().fileno.return_value = self.fileno
         with self.assertRaises(RawFileError) as cm:
             raw_file.write(b"data")
             mock_open().write.assert_not_called()
     mock_open.assert_has_calls([mock.call(FILE_PATH, "x")])
     mock_flock.assert_called_once_with(self.fileno, fcntl.LOCK_EX)
     mock_chown.assert_called_once_with(FILE_PATH, FILE_OWNER, FILE_GROUP)
     mock_chmod.assert_not_called()
     self.assertEqual(cm.exception.metadata, raw_file.metadata)
     self.assertEqual(cm.exception.action, RawFileError.ACTION_CHOWN)
     self.assertEqual(cm.exception.reason, "some error")