Skip to content

Commit

Permalink
Add tests for appdirs._get_win_folder variant
Browse files Browse the repository at this point in the history
  • Loading branch information
uranusjr committed Dec 20, 2019
1 parent ecec9f0 commit 4ebe4fa
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions tests/unit/test_appdirs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import os
import posixpath
import sys
import types

import pretend

Expand Down Expand Up @@ -300,3 +301,78 @@ def test_user_config_dir_linux_home_slash(self, monkeypatch):
monkeypatch.setattr(sys, "platform", "linux2")

assert appdirs.user_config_dir("pip") == "/.config/pip"


class TestGetWinFolder:

def test_win_folder_ctypes(self, monkeypatch):
if sys.platform != 'win32':

This comment has been minimized.

Copy link
@xavfernandez

xavfernandez Dec 20, 2019

Member

@pytest.mark.skipif("sys.platform != 'win32'"), directly on TestGetWinFolder should work I think.

return

@pretend.call_recorder
def _get_win_folder_from_registry(csidl_name):
return "return-value-from-registry"

@pretend.call_recorder
def _get_win_folder_with_ctypes(csidl_name):
return "return-value-from-ctypes"

monkeypatch.setitem(sys.modules, 'ctypes', types.ModuleType('ctypes'))
monkeypatch.setattr(
appdirs,
"_get_win_folder_from_registry",
_get_win_folder_from_registry,
raising=False,
)
monkeypatch.setattr(
appdirs,
"_get_win_folder_with_ctypes",
_get_win_folder_with_ctypes,
raising=False,
)

assert (
appdirs._get_win_folder("place-holder") ==
"return-value-from-ctypes"
)
assert (
_get_win_folder_with_ctypes.calls ==
[pretend.call("place-holder")]
)
assert _get_win_folder_from_registry.calls == []

def test_win_folder_registry(self, monkeypatch):
if sys.platform != 'win32':
return

@pretend.call_recorder
def _get_win_folder_from_registry(csidl_name):
return "return-value-from-registry"

@pretend.call_recorder
def _get_win_folder_with_ctypes(csidl_name):
return "return-value-from-ctypes"

monkeypatch.setitem(sys.modules, 'ctypes', None)
monkeypatch.setattr(
appdirs,
"_get_win_folder_from_registry",
_get_win_folder_from_registry,
raising=False,
)
monkeypatch.setattr(
appdirs,
"_get_win_folder_with_ctypes",
_get_win_folder_with_ctypes,
raising=False,
)

assert (
appdirs._get_win_folder("place-holder") ==
"return-value-from-registry"
)
assert _get_win_folder_with_ctypes.calls == []
assert (
_get_win_folder_from_registry.calls ==
[pretend.call("place-holder")]
)

0 comments on commit 4ebe4fa

Please sign in to comment.