Piszę test dla jakiegoś kodu, który sprawdza wartość w os.environ
(Wiem, że to nie jest optymalne, ale muszę iść z tym). Chciałbym usunąć wpis z os.environ na czas trwania testu. Nie jestem pewien, czy mock popiera to. Wiem, że patch.dict
można użyć do modyfikacji elementu, ale chcę, aby usunięto parę klucz/wartość. Chciałbym coś w tym stylu:Używanie makiety Pythona do tymczasowego usunięcia obiektu z dyktafonu
print os.environ
{ ... , 'MY_THING': 'foo', ... }
with mock.patch.dict.delete('os.environ', 'MY_THING'):
# run the test
# ('MY_THING' in os.environ) should return False
# everything back to normal now
print os.environ
{ ... , 'MY_THING': 'foo', ... }
Czy istnieje sposób na wykonanie takiego wyczynu?
mock.patch.dict nie działa w ten sposób, ponieważ go wymyśliłem :) Twoje rozwiązanie działa jednak dla mnie. –