Changed the tests to execute against a real file system instead of a fake one.

This commit is contained in:
FemtosecondLaser 2021-10-23 02:52:58 +01:00 committed by Victor Shyba
parent e55f9dd21e
commit 25092f56be

View file

@ -7,7 +7,6 @@ import pathlib
from io import StringIO from io import StringIO
from unittest import TestCase from unittest import TestCase
from unittest.mock import patch from unittest.mock import patch
from pyfakefs.fake_filesystem_unittest import TestCase as FakeFSTestCase
from types import SimpleNamespace from types import SimpleNamespace
from contextlib import asynccontextmanager from contextlib import asynccontextmanager
@ -206,32 +205,34 @@ class DaemonDocsTests(TestCase):
self.fail("\n" + "\n".join(failures)) self.fail("\n" + "\n".join(failures))
class EnsureDirectoryExistsTests(FakeFSTestCase): class EnsureDirectoryExistsTests(TestCase):
def setUp(self):
self.setUpPyfakefs()
def test_when_parent_dir_does_not_exist_then_dir_is_created_with_parent(self): def test_when_parent_dir_does_not_exist_then_dir_is_created_with_parent(self):
dir_path = os.path.join("parent_dir", "dir") with tempfile.TemporaryDirectory() as temp_dir:
ensure_directory_exists(dir_path) dir_path = os.path.join(temp_dir, "parent_dir", "dir")
self.assertTrue(os.path.exists(dir_path)) ensure_directory_exists(dir_path)
self.assertTrue(os.path.exists(dir_path))
def test_when_non_writable_dir_exists_then_raise(self): def test_when_non_writable_dir_exists_then_raise(self):
dir_path = "dir" with tempfile.TemporaryDirectory() as temp_dir:
pathlib.Path(dir_path).mkdir(mode=0o555) # creates a non-writable, readable and executable dir dir_path = os.path.join(temp_dir, "dir")
with self.assertRaises(PermissionError): pathlib.Path(dir_path).mkdir(mode=0o555) # creates a non-writable, readable and executable dir
ensure_directory_exists(dir_path) with self.assertRaises(PermissionError):
ensure_directory_exists(dir_path)
def test_when_dir_exists_and_writable_then_no_raise(self): def test_when_dir_exists_and_writable_then_no_raise(self):
dir_path = "dir" with tempfile.TemporaryDirectory() as temp_dir:
pathlib.Path(dir_path).mkdir(mode=0o777) # creates a writable, readable and executable dir dir_path = os.path.join(temp_dir, "dir")
try: pathlib.Path(dir_path).mkdir(mode=0o777) # creates a writable, readable and executable dir
ensure_directory_exists(dir_path) try:
except (FileExistsError, PermissionError) as err: ensure_directory_exists(dir_path)
self.fail(f"{type(err).__name__} was raised") except (FileExistsError, PermissionError) as err:
self.fail(f"{type(err).__name__} was raised")
def test_when_non_dir_file_exists_at_path_then_raise(self): def test_when_non_dir_file_exists_at_path_then_raise(self):
file_path = "file.extension" with tempfile.TemporaryDirectory() as temp_dir:
self.fs.create_file(file_path) file_path = os.path.join(temp_dir, "file.extension")
with self.assertRaises(FileExistsError): with open(file_path, 'x'):
ensure_directory_exists(file_path) pass
with self.assertRaises(FileExistsError):
ensure_directory_exists(file_path)