From e8ce6b1c54854ce4c95fb173105a64c3e37e423f Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Tue, 12 Apr 2016 10:43:28 -0700 Subject: [PATCH] Make helpers.get_pyinstaller_resource_path work when package is not frozen, and make tests report real platform to get accurate paths --- onionshare/helpers.py | 15 +++++++++------ test/onionshare_helpers_test.py | 2 ++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/onionshare/helpers.py b/onionshare/helpers.py index cb77dd43..977ae37d 100644 --- a/onionshare/helpers.py +++ b/onionshare/helpers.py @@ -36,13 +36,16 @@ def get_pyinstaller_resource_path(filename): """ Returns the path a resource file in a frozen PyInstall app """ - # Resource path from frozen PyInstaller app + # Check if app is "frozen" with pyinstaller # https://pythonhosted.org/PyInstaller/#run-time-information - p = get_platform() - if p == 'Darwin': - return os.path.join(os.path.join(os.path.dirname(sys._MEIPASS), 'Resources'), filename) - elif p == 'Windows': - return os.path.join(sys._MEIPASS, filename) + if getattr(sys, 'frozen', False): + p = get_platform() + if p == 'Darwin': + return os.path.join(os.path.join(os.path.dirname(sys._MEIPASS), 'Resources'), filename) + elif p == 'Windows': + return os.path.join(sys._MEIPASS, filename) + else: + return os.path.join(os.path.dirname(os.path.dirname(__file__)), filename) def get_html_path(filename): """ diff --git a/test/onionshare_helpers_test.py b/test/onionshare_helpers_test.py index 3e182d09..b5c16ffe 100644 --- a/test/onionshare_helpers_test.py +++ b/test/onionshare_helpers_test.py @@ -23,5 +23,7 @@ import test_helpers def test_get_platform_returns_platform_system(): """get_platform() returns platform.system() when ONIONSHARE_PLATFORM is not defined""" + p = helpers.platform.system helpers.platform.system = lambda: 'Sega Saturn' assert helpers.get_platform() == 'Sega Saturn' + helpers.platform.system = p