コード例 #1
0
ファイル: test_file.py プロジェクト: miladalipour99/pcs
 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}'")
コード例 #2
0
ファイル: test_file.py プロジェクト: miladalipour99/pcs
 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")
コード例 #3
0
 def test_already_exists(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(errno.EEXIST, "some error",
                                         FILE_PATH)
         with self.assertRaises(FileAlreadyExists) 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, "")
コード例 #4
0
 def test_success_permissions(self, mock_chmod, mock_chown, mock_flock):
     self.assert_success(
         mock_flock,
         RawFile(fixture_metadata(owner=None, group=None)),
         "x",
         False,
     )
     mock_chown.assert_not_called()
     mock_chmod.assert_called_once_with(self.fileno, FILE_PERMISSIONS)
コード例 #5
0
 def test_success_owner_group(self, mock_chmod, mock_chown, mock_flock):
     self.assert_success(
         mock_flock,
         RawFile(fixture_metadata(owner=None, permissions=None)),
         "x",
         False,
     )
     mock_chown.assert_called_once_with(FILE_PATH, None, FILE_GROUP)
     mock_chmod.assert_not_called()
コード例 #6
0
 def test_success_overwrite(self, mock_chmod, mock_chown, mock_flock):
     self.assert_success(
         mock_flock,
         RawFile(fixture_metadata(owner=None, group=None, permissions=None)),
         "w",
         True,
     )
     mock_chown.assert_not_called()
     mock_chmod.assert_not_called()
コード例 #7
0
 def test_success_minimal(self, mock_chmod, mock_chown, mock_flock):
     self.assert_success(
         mock_flock,
         RawFile(fixture_metadata(owner=None, group=None, permissions=None)),
         "x",
         False,
     )
     mock_chown.assert_not_called()
     mock_chmod.assert_not_called()
コード例 #8
0
ファイル: test_file.py プロジェクト: miladalipour99/pcs
 def test_success_chown_permissions(
     self, mock_chmod, mock_chown, mock_flock
 ):
     self.assert_success(
         mock_flock,
         RawFile(fixture_metadata()),
         "x",
         False
     )
     mock_chown.assert_called_once_with(FILE_PATH, FILE_OWNER, FILE_GROUP)
     mock_chmod.assert_called_once_with(self.fileno, FILE_PERMISSIONS)
コード例 #9
0
 def test_success_binary(self, mock_flock):
     self.assert_read_in_correct_mode(
         mock_flock,
         RawFile(fixture_metadata(binary=True)),
         "rb",
     )
コード例 #10
0
 def test_success_text(self, mock_flock):
     self.assert_read_in_correct_mode(
         mock_flock,
         RawFile(fixture_metadata()),
         "r",
     )
コード例 #11
0
 def test_return_false_if_file_does_not_exist(self, mock_exists):
     mock_exists.return_value = False
     self.assertFalse(RawFile(fixture_metadata()).exists())
     mock_exists.assert_called_once_with(FILE_PATH)
コード例 #12
0
 def test_return_true_if_file_exists(self, mock_exists):
     mock_exists.return_value = True
     self.assertTrue(RawFile(fixture_metadata()).exists())
     mock_exists.assert_called_once_with(FILE_PATH)
コード例 #13
0
 def test_file_not_found(self, mock_remove):
     mock_remove.side_effect = OSError(errno.ENOENT, "some error", FILE_PATH)
     RawFile(fixture_metadata()).remove(fail_if_file_not_found=False)
     mock_remove.assert_called_once_with(FILE_PATH)
コード例 #14
0
 def test_success(self, mock_remove):
     RawFile(fixture_metadata()).remove()
     mock_remove.assert_called_once_with(FILE_PATH)