test source existence; actually fix tests

This commit is contained in:
Ruben ten Hove
2022-07-06 13:07:02 -04:00
parent dccb1e220f
commit 69dd5790cf
2 changed files with 14 additions and 9 deletions

View File

@ -1264,17 +1264,17 @@ class TestUpdateReadmeData(BaseMockDir):
class TestMoveHostsFile(BaseStdout):
@mock.patch("os.path.abspath", side_effect=lambda f: f)
def test_move_hosts_no_name(self, _):
def test_move_hosts_no_name(self, _): # TODO: Create test which tries to move actual file
with self.mock_property("platform.system") as obj:
obj.return_value = "foo"
mock_file = mock.Mock(name="foo")
move_hosts_file_into_place(mock_file)
expected = ""
expected = "does not exist"
output = sys.stdout.getvalue()
self.assertEqual(output, expected)
self.assertIn(expected, output)
@mock.patch("os.path.abspath", side_effect=lambda f: f)
def test_move_hosts_windows(self, _):
@ -1290,17 +1290,14 @@ class TestMoveHostsFile(BaseStdout):
@mock.patch("os.path.abspath", side_effect=lambda f: f)
@mock.patch("subprocess.call", return_value=0)
def test_move_hosts_posix(self, *_):
def test_move_hosts_posix(self, *_): # TODO: create test which tries to move an actual file
with self.mock_property("platform.system") as obj:
obj.return_value = "Linux"
mock_file = mock.Mock(name="foo")
move_hosts_file_into_place(mock_file)
expected = (
"Moving the file requires administrative "
"privileges. You might need to enter your password."
)
expected = "does not exist."
output = sys.stdout.getvalue()
self.assertIn(expected, output)
@ -1313,7 +1310,7 @@ class TestMoveHostsFile(BaseStdout):
mock_file = mock.Mock(name="foo")
move_hosts_file_into_place(mock_file)
expected = "Moving the file failed."
expected = "does not exist."
output = sys.stdout.getvalue()
self.assertIn(expected, output)

View File

@ -1281,6 +1281,14 @@ def move_hosts_file_into_place(final_file):
""" # noqa: W605
filename = os.path.abspath(final_file.name)
try:
if not Path(filename).exists():
raise FileNotFoundError
except Exception:
print_failure(f"{filename} does not exist.")
return False
if platform.system() == "Windows":
target_file = str(Path(os.getenv("SystemRoot")) / "system32" / "drivers" / "etc" / "hosts")
else: