mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
9d96f58f5f
Some of the file removal calls are subject to race conditions (if something else deletes the file), so extend our remove API to have an option to ignore ENOENT errors. Then update a bunch of random call sites to use this new functionality. Change-Id: I31a9090e135452033135337a202a4fc2dbf8b63c Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/319195 Reviewed-by: Sean McAllister <smcallis@google.com> Tested-by: Mike Frysinger <vapier@google.com>
51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
# Copyright 2021 The Android Open Source Project
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
"""Unittests for the platform_utils.py module."""
|
|
|
|
import os
|
|
import tempfile
|
|
import unittest
|
|
|
|
import platform_utils
|
|
|
|
|
|
class RemoveTests(unittest.TestCase):
|
|
"""Check remove() helper."""
|
|
|
|
def testMissingOk(self):
|
|
"""Check missing_ok handling."""
|
|
with tempfile.TemporaryDirectory() as tmpdir:
|
|
path = os.path.join(tmpdir, 'test')
|
|
|
|
# Should not fail.
|
|
platform_utils.remove(path, missing_ok=True)
|
|
|
|
# Should fail.
|
|
self.assertRaises(OSError, platform_utils.remove, path)
|
|
self.assertRaises(OSError, platform_utils.remove, path, missing_ok=False)
|
|
|
|
# Should not fail if it exists.
|
|
open(path, 'w').close()
|
|
platform_utils.remove(path, missing_ok=True)
|
|
self.assertFalse(os.path.exists(path))
|
|
|
|
open(path, 'w').close()
|
|
platform_utils.remove(path)
|
|
self.assertFalse(os.path.exists(path))
|
|
|
|
open(path, 'w').close()
|
|
platform_utils.remove(path, missing_ok=False)
|
|
self.assertFalse(os.path.exists(path))
|