/usr/share/pyshared/traits/tests/range_test_case.py is in python-traits 4.1.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 | #-------------------------------------------------------------------------------
#
# Copyright (c) 2007, Enthought, Inc.
# All rights reserved.
#
# This software is provided without warranty under the terms of the BSD
# license included in /LICENSE.txt and may be redistributed only
# under the conditions described in the aforementioned license. The license
# is also available online at http://www.enthought.com/licenses/BSD.txt
#
# Thanks for using Enthought open source!
#
#-------------------------------------------------------------------------------
from __future__ import absolute_import
import unittest
from ..api import HasTraits, Int, Range, Str
class WithFloatRange(HasTraits):
r = Range(0.0, 100.0)
r_copied_on_change = Str
_changed_handler_calls = Int
def _r_changed(self, old, new):
self._changed_handler_calls += 1
self.r_copied_on_change = str(self.r)
if (self.r % 10) > 0:
self.r += 10-(self.r % 10)
class WithLargeIntRange(HasTraits):
r = Range(0, 1000)
r_copied_on_change = Str
_changed_handler_calls = Int
def _r_changed(self, old, new):
self._changed_handler_calls += 1
self.r_copied_on_change = str(self.r)
if self.r > 100:
self.r = 0
class RangeTestCase(unittest.TestCase):
def test_non_ui_events(self):
obj = WithFloatRange()
obj._changed_handler_calls = 0
obj.r = 10
self.failUnlessEqual(1, obj._changed_handler_calls)
obj._changed_handler_calls = 0
obj.r = 34.56
self.failUnlessEqual(2, obj._changed_handler_calls)
self.failUnlessEqual(40, obj.r)
return
def test_non_ui_int_events(self):
# Even thou the range is configured for 0..1000, the handler resets
# the value to 0 when it exceeds 100.
obj = WithLargeIntRange()
obj._changed_handler_calls = 0
obj.r = 10
self.failUnlessEqual(1, obj._changed_handler_calls)
self.failUnlessEqual(10, obj.r)
obj.r = 100
self.failUnlessEqual(2, obj._changed_handler_calls)
self.failUnlessEqual(100, obj.r)
obj.r = 101
self.failUnlessEqual(4, obj._changed_handler_calls)
self.failUnlessEqual(0, obj.r)
return
def ui_test_events(self):
import nose
raise nose.SkipTest('Requires GUI')
print
print 'enter the value 34.56 in the range text box and tab out or enter.'
print 'Notice that the changed handler call count is 2.'
print 'Notice the slider is at 34.56 and the text box still shows 34.56'
print 'Notice that r_copied_on_change shows 40.0'
print 'Click OK to close the window.'
print 'The test will not fail, because the range value was rounded by the event handler.'
print 'However, the range widget did not show that change.'
obj = WithFloatRange()
obj._changed_handler_calls = 0
obj.edit_traits(kind='livemodal', )
self.failUnlessEqual( obj.r%10, 0 )
return
def ui_test_int_events(self):
import nose
raise nose.SkipTest('Requires GUI')
print
print 'enter the value 95 in the range text box.'
print 'Notice that the changed handler call count is 2.'
print 'Notice that r_copied_on_change shows 95'
print 'Click the up arrow 5 times. Each time the handler call count will increment by one.'
print 'The R value is now 100 and the change handler call count is 7.'
print 'Click the up array 1 time. The call count is 11, R is 101 (wrong), and R copied on change is 0 (correct)'
print 'Click OK to close the window.'
print 'The test will not fail, because the range value kept below 101 by the event handler.'
print 'However, the range widget did not show that change.'
obj = WithLargeIntRange()
obj._changed_handler_calls = 0
obj.edit_traits(kind='livemodal', )
self.failUnless( obj.r <= 100 )
return
### EOF
|