Commit 425a3a28 authored by Paul McCarthy's avatar Paul McCarthy 🚵
Browse files

Merge remote-tracking branch 'upstream/master' into v1.3

parents d816ebc8 272f3c51
Pipeline #1115 passed with stages
in 2 minutes and 13 seconds
......@@ -2,6 +2,14 @@ This document contains the ``fslpy`` release history in reverse chronological
order.
1.3.1 (Wednesday 25th October 2017)
-----------------------------------
* Fixed bug in :meth:`.Platform.wxPlatform` causing it to always return
``WX_UNKNOWN``.
1.3.0 (Wednesday 25th October 2017)
-----------------------------------
......
......@@ -233,7 +233,7 @@ class Platform(notifier.Notifier):
:data:`WX_MAC_CARBON`, or :data:`WX_GTK`, indicating the wx platform.
"""
if not self.haveGui:
if not self.canHaveGui:
return WX_UNKNOWN
import wx
......@@ -245,7 +245,7 @@ class Platform(notifier.Notifier):
elif any(['gtk' in p for p in pi]): plat = WX_GTK
else: plat = WX_UNKNOWN
if platform is WX_UNKNOWN:
if plat is WX_UNKNOWN:
log.warning('Could not determine wx platform from '
'information: {}'.format(pi))
......@@ -258,7 +258,7 @@ class Platform(notifier.Notifier):
indicating the wx flavour.
"""
if not self.haveGui:
if not self.canHaveGui:
return WX_UNKNOWN
import wx
......
......@@ -41,7 +41,7 @@ import re
import string
__version__ = '1.3.0'
__version__ = '1.3.1'
"""Current version number, as a string. """
......
......@@ -6,7 +6,7 @@ universal=1
[tool:pytest]
testpaths = tests
addopts = -s -v --niters=50 --cov=fsl --cov-report=html
addopts = -v --niters=50 --cov=fsl
[flake8]
ignore = E127,E201,E203,E221,E222,E241,E271,E272,E301,E302,E303,E701
\ No newline at end of file
......@@ -8,15 +8,18 @@
import os
import os.path as op
import sys
import shutil
import tempfile
import mock
import fsl.utils.platform as fslplatform
def test_atts():
p = fslplatform.platform
p.os
p.frozen
......@@ -32,11 +35,11 @@ def test_atts():
p.glIsSoftwareRenderer
def test_gui():
def test_haveGui():
import wx
p = fslplatform.platform
p = fslplatform.Platform()
app = wx.App()
frame = wx.Frame(None)
passed = [False]
......@@ -45,10 +48,7 @@ def test_gui():
def runtest():
try:
p.haveGui
p.wxPlatform
p.wxFlavour
assert p.haveGui
passed[0] = True
finally:
frame.Destroy()
......@@ -61,14 +61,94 @@ def test_gui():
assert passed[0]
def test_wxatts():
with mock.patch.dict('sys.modules', wx=None):
p = fslplatform.Platform()
assert not p.canHaveGui
assert not p.haveGui
assert p.wxFlavour == fslplatform.WX_UNKNOWN
assert p.wxPlatform == fslplatform.WX_UNKNOWN
with mock.patch('wx.App.IsDisplayAvailable', return_value=False):
p = fslplatform.Platform()
assert not p.canHaveGui
assert not p.haveGui
assert p.wxFlavour == fslplatform.WX_UNKNOWN
assert p.wxPlatform == fslplatform.WX_UNKNOWN
with mock.patch('wx.App.IsDisplayAvailable', return_value=True), \
mock.patch('wx.PlatformInfo', ('gtk', 'phoenix')):
p = fslplatform.Platform()
assert p.canHaveGui
assert not p.haveGui
assert p.wxFlavour == fslplatform.WX_PHOENIX
assert p.wxPlatform == fslplatform.WX_GTK
# (wx.PlatformInfo, expected platform, expected flavour)
platflavtests = [
(('__WXMAC__',
'wxMac',
'unicode',
'unicode-wchar',
'wxOSX',
'wxOSX-cocoa',
'wx-assertions-on',
'phoenix',
'wxWidgets 3.0.4'),
fslplatform.WX_MAC_COCOA,
fslplatform.WX_PHOENIX),
(('__WXMAC__',
'wxMac',
'unicode',
'wxOSX',
'wxOSX-cocoa',
'wx-assertions-on',
'SWIG-1.3.29'),
fslplatform.WX_MAC_COCOA,
fslplatform.WX_PYTHON),
(('__WXGTK__',
'wxGTK',
'unicode',
'unicode-wchar',
'gtk2',
'wx-assertions-on',
'phoenix',
'wxWidgets 3.0.4'),
fslplatform.WX_GTK,
fslplatform.WX_PHOENIX),
(('__WXGTK__',
'wxGTK',
'unicode',
'gtk2',
'wx-assertions-on',
'SWIG-1.3.29'),
fslplatform.WX_GTK,
fslplatform.WX_PYTHON)]
for platinfo, expplatform, expflavour in platflavtests:
with mock.patch('wx.PlatformInfo', platinfo):
p = fslplatform.Platform()
assert p.wxFlavour == expflavour
assert p.wxPlatform == expplatform
def test_gl():
p = fslplatform.platform
p = fslplatform.Platform()
p.glVersion = '2.1'
p.glRenderer = 'Fake renderer'
assert p.glVersion == '2.1'
assert p.glRenderer == 'Fake renderer'
def test_fsldir():
# We have to make a dummy directory that looks like FSL
......@@ -84,7 +164,7 @@ def test_fsldir():
makeFSL()
p = fslplatform.platform
p = fslplatform.Platform()
newFSLDir = [None]
def fsldirChanged(p, t, val):
......@@ -104,7 +184,29 @@ def test_fsldir():
finally:
shutil.rmtree(testdir)
def test_detect_ssh():
sshVars = ['SSH_CLIENT', 'SSH_TTY']
vncVars = ['VNCDESKTOP', 'X2GO_SESSION', 'NXSESSIONID']
for sv in sshVars:
with mock.patch.dict('os.environ', **{ sv : '1'}):
p = fslplatform.Platform()
assert p.inSSHSession
for vv in vncVars:
with mock.patch.dict('os.environ', **{ vv : '1'}):
p = fslplatform.Platform()
assert p.inVNCSession
with mock.patch('os.environ', {}):
p = fslplatform.Platform()
assert not p.inSSHSession
assert not p.inVNCSession
def test_IsWidgetAlive():
import wx
......@@ -122,7 +224,7 @@ def test_IsWidgetAlive():
passed[0] = fslplatform.isWidgetAlive(btn)
btn.Destroy()
passed[0] = passed[0] and (not fslplatform.isWidgetAlive(btn))
finally:
frame.Destroy()
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment