Skip to content

Commit 7bf67d2

Browse files
committed
TST: cover changed methods in ParametersPanel
Failing test due to old unconditional needsSave call.
1 parent c089f29 commit 7bf67d2

1 file changed

Lines changed: 118 additions & 0 deletions

File tree

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
#!/usr/bin/env python
2+
##############################################################################
3+
#
4+
# diffpy.pdfgui Complex Modeling Initiative
5+
# (c) 2018 Brookhaven Science Associates,
6+
# Brookhaven National Laboratory.
7+
# All rights reserved.
8+
#
9+
# File coded by: Pavol Juhas
10+
#
11+
# See AUTHORS.txt for a list of people who contributed.
12+
# See LICENSE.txt for license information.
13+
#
14+
##############################################################################
15+
16+
"""
17+
Unit tests for ParametersPanel class
18+
"""
19+
20+
import unittest
21+
22+
import wx.grid
23+
24+
from diffpy.pdfgui.gui.parameterspanel import ParametersPanel
25+
from diffpy.pdfgui.control.parameter import Parameter
26+
from diffpy.pdfgui.gui.pdfguiglobals import dbopts
27+
28+
# ----------------------------------------------------------------------------
29+
30+
class TestParametersPanel(unittest.TestCase):
31+
32+
def setUp(self):
33+
self._save_noerrordialog = dbopts.noerrordialog
34+
dbopts.noerrordialog = True
35+
self.app = wx.App()
36+
self.frame = wx.Frame(None)
37+
self.panel = ParametersPanel(self.frame, -1)
38+
self.panel.parameters.update([
39+
(1, Parameter(1, 0.1)),
40+
(5, Parameter(5, 0.5)),
41+
])
42+
self.panel.refresh()
43+
self.panel.mainFrame = _TMainFrame()
44+
self.frame.window = self.panel
45+
return
46+
47+
def tearDown(self):
48+
self.frame.Close()
49+
dbopts.noerrordialog = self._save_noerrordialog
50+
return
51+
52+
53+
def _leftclickcell(self, row, col, **kw):
54+
gp = self.panel.grid_parameters
55+
eventtype = wx.grid.EVT_GRID_CELL_LEFT_CLICK.typeId
56+
e = wx.grid.GridEvent(gp.Id, eventtype, gp, row, col, **kw)
57+
gp.ProcessEvent(e)
58+
return
59+
60+
61+
@unittest.expectedFailure
62+
def test_applyCellChange(self):
63+
"Check ParametersPanel.applyCellChange"
64+
gp = self.panel.grid_parameters
65+
mf = self.panel.mainFrame
66+
panel = self.panel
67+
self.assertFalse(mf.altered)
68+
panel.applyCellChange(0, 0, 0.1)
69+
self.assertFalse(mf.altered)
70+
panel.applyCellChange(0, 0, 1.5)
71+
self.assertTrue(mf.altered)
72+
self.assertEqual("1.5", gp.GetCellValue(0, 0))
73+
self.assertEqual(1.5, panel.parameters[1].initialValue())
74+
return
75+
76+
77+
def test_onCellLeftClick(self):
78+
"Check click handling on the Parameters grid."
79+
gp = self.panel.grid_parameters
80+
p = self.panel.parameters[1]
81+
self.assertFalse(self.panel.mainFrame.altered)
82+
self.assertEqual("0", gp.GetCellValue(0, 1))
83+
self.assertFalse(p.fixed)
84+
self._leftclickcell(0, 1)
85+
self.assertEqual("1", gp.GetCellValue(0, 1))
86+
self.assertTrue(p.fixed)
87+
self.assertTrue(self.panel.mainFrame.altered)
88+
self._leftclickcell(0, 1)
89+
self.assertEqual("0", gp.GetCellValue(0, 1))
90+
self._leftclickcell(0, 1, control=True)
91+
self.assertEqual("0", gp.GetCellValue(0, 1))
92+
self._leftclickcell(0, 1, shift=True)
93+
self.assertEqual("0", gp.GetCellValue(0, 1))
94+
gp.SelectAll()
95+
self._leftclickcell(0, 1)
96+
self.assertEqual("0", gp.GetCellValue(0, 1))
97+
gp.ClearSelection()
98+
self._leftclickcell(0, 1)
99+
self.assertEqual("1", gp.GetCellValue(0, 1))
100+
return
101+
102+
# End of class TestParametersPanel
103+
104+
# Local Helpers --------------------------------------------------------------
105+
106+
class _TMainFrame(object):
107+
"Think mockup of the used MainFrame methods."
108+
109+
altered = False
110+
111+
def needsSave(self):
112+
self.altered = True
113+
return
114+
115+
# ----------------------------------------------------------------------------
116+
117+
if __name__ == '__main__':
118+
unittest.main()

0 commit comments

Comments
 (0)