# Copyright (C) 2003 by Intevation GmbH # Authors: # Thomas Arendsen Hein # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. """ Unit test for detailsbox.py """ __version__ = "$Revision: 1.14 $" # $Source: /greaterrepository/sciparam/test/test_detailsbox.py,v $ # $Id: test_detailsbox.py,v 1.14 2003/09/23 10:30:44 thomas Exp $ import unittest import support support.init() from wxPython.wx import * from SciParam import DistParam from SciParam.UI import ParameterDialog from SciParam.UI.detailsbox import ParameterDistributionDialog from SciParam.UI.test_parameter_list import parameter as parameter_list class ParameterDetailsBoxTest(support.wxTestCase): def wxappSetUp(self): """create test application""" self.dialog={} self.parameter={} for name, parameter in parameter_list: dialog = ParameterDialog(NULL, -1, name, parameter) dialog.Show(true) dialog.pargrid.connect(dialog.pargrid.controls[0]) self.dialog[name] = dialog self.parameter[name] = parameter def tearDown(self): """destroy test application window""" for dialog in self.dialog.values(): dialog.Close() dialog.Destroy() def test_description_size(self): """check size of description in details box""" for dialog in self.dialog.values(): details = dialog.pargrid.details size = dialog.GetFullTextExtent('Parameter:') maxwidth = size[0] maxheight = size[1] + size[2] for par in dialog.get_parameters(): width = 0 height = 0 for line in details.get_name_desc(par).splitlines(): size = details.name_desc.GetFullTextExtent(line) width = max(width, size[0]) height += size[1] + size[2] maxwidth = max(maxwidth, width) maxheight = max(maxheight, height) self.assertEqual(details.name_desc.GetSizeTuple(), (maxwidth, maxheight)) class ParameterDistributionDialogTest(support.wxTestCase): def wxappSetUp(self): """create test application""" parameter = [ DistParam('DistParam', value='1;2/uniform'), ] self.dialog = ParameterDialog(NULL, -1, 'ParameterDialog', parameter) self.dialog.Show(true) self.dialog.pargrid.connect(self.dialog.pargrid.controls[0]) def tearDown(self): """destroy test application window""" self.dialog.Close() self.dialog.Destroy() def test_distdialog(self): """check ParameterDistributionDialog""" parctrl = self.dialog.pargrid.controls[0] self.dialog.pargrid.connect(parctrl) dist = parctrl.parameter.value for dist_type in dist.types: parctrl.dist_type = dist_type distdialog = ParameterDistributionDialog(self.dialog, parctrl) distdialog.Show(true) self.assertCenteredOnParent(distdialog) for i in range(dist.descriptives_len(dist_type)): self.assertEqual(distdialog.desc_params[dist_type][i].name, dist.descriptives_map[dist_type][i]) self.assert_(distdialog.Validate()) self.assert_(distdialog.TransferDataFromWindow()) distdialog.Close() distdialog.Destroy() if __name__ == "__main__": unittest.main()