summary refs log tree commit diff stats
path: root/test/tc_displayable.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/tc_displayable.py')
-rw-r--r--test/tc_displayable.py43
1 files changed, 23 insertions, 20 deletions
diff --git a/test/tc_displayable.py b/test/tc_displayable.py
index 1bbffa73..558a20ff 100644
--- a/test/tc_displayable.py
+++ b/test/tc_displayable.py
@@ -113,26 +113,29 @@ class TestDisplayableWithCurses(unittest.TestCase):
 		self.assertRaises(ValueError, disp.resize, -1, 0, hei, wid)
 		self.assertRaises(ValueError, disp.resize, 0, -1, hei, wid)
 
-		box = [int(randint(0, hei) * 0.2), 0,
-				int(randint(0, wid) * 0.2), 0]
-		box[1] = randint(box[0], hei)
-		box[1] = randint(box[0], hei)
-
-		def in_box(y, x):
-			return (x >= box[1] and x < box[1] + box[3]) and \
-					(y >= box[0] and y < box[0] + box[2])
-
-		disp.resize(*box)
-		for y, x in zip(range(10), range(10)):
-			is_in_box = in_box(y, x)
-
-			point1 = (y, x)
-			self.assertEqual(is_in_box, point1 in disp)
-
-			point2 = Fake()
-			point2.x = x
-			point2.y = y
-			self.assertEqual(is_in_box, point2 in disp)
+		for i in range(1000):
+			box = [int(randint(0, hei) * 0.2), int(randint(0, wid) * 0.2)]
+			box.append(randint(0, hei - box[0]))
+			box.append(randint(0, wid - box[1]))
+
+			def in_box(y, x):
+				return (y >= box[1] and y < box[1] + box[3]) and \
+						(x >= box[0] and x < box[0] + box[2])
+
+			disp.resize(*box)
+			self.assertEqual(box, [disp.y, disp.x, disp.hei, disp.wid],
+					"Resizing failed for some reason on loop " + str(i))
+
+			for y, x in zip(range(10), range(10)):
+				is_in_box = in_box(y, x)
+
+				point1 = (y, x)
+				self.assertEqual(is_in_box, point1 in disp)
+
+				point2 = Fake()
+				point2.x = x
+				point2.y = y
+				self.assertEqual(is_in_box, point2 in disp)
 
 	def test_click(self):
 		self.disp.click = raise_ok