I want to cause Path.exists() to only return True when a specific Path is being tested:
from unittest import TestCase
from mock import patch
import pathlib
def fn(names):
for index, name in enumerate(names):
if pathlib.Path(name).exists():
return index
class T(TestCase):
@patch.object(pathlib.Path, 'exists', side_effect=lambda: self.name == "countme")
def test_fn(self, exists_mock):
self.assertEqual(2, fn(["not", "not", "countme", "not"]))
I've also tried using
@patch.object(pathlib.Path, 'exists', side_effect=lambda self: self.name == "countme")