about summary refs log tree commit diff stats
path: root/test/stuff/test1.py
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2009-12-11 13:36:48 +0100
committerhut <hut@lavabit.com>2009-12-11 13:36:48 +0100
commitf58626842bbb2bd3f8446044a44a67180b737f4e (patch)
tree74ab897879a3b151488c8348759442396ef3336b /test/stuff/test1.py
parent0c0b9489072922c0f597c7099f8728868ffbb4a4 (diff)
downloadranger-f58626842bbb2bd3f8446044a44a67180b737f4e.tar.gz
moved/fixed tests
Diffstat (limited to 'test/stuff/test1.py')
-rw-r--r--test/stuff/test1.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/test/stuff/test1.py b/test/stuff/test1.py
new file mode 100644
index 00000000..97505c41
--- /dev/null
+++ b/test/stuff/test1.py
@@ -0,0 +1,70 @@
+#!/usr/bin/python3
+# coding=utf-8
+# some tests with curses, threads and unicode
+import os
+import curses
+import time
+import threading
+import locale
+import _thread
+
+lock = _thread.allocate_lock()
+
+locale.setlocale(locale.LC_ALL, 'en_US.utf8')
+
+blocked = False
+stringy = 'ใ‚‹ใงใ‹'
+stdscr = curses.initscr()
+
+curses.noecho()
+curses.cbreak()
+curses.halfdelay(3)
+stdscr.keypad(1)
+#curses.curs_set(0)
+
+stdscr.addstr(4, 0, stringy)
+stdscr.refresh()
+
+class ThreadTest(threading.Thread):
+	def __init__(self, *a, **b):
+		threading.Thread.__init__(self, *a, **b)
+		self.killed = False
+
+	def run(self):
+		global stdscr
+		global blocked
+		for i in range(1,50):
+			while blocked: time.sleep(0.1)
+			blocked = True
+			stdscr.addstr(1, 0, str(i))
+			stdscr.refresh()
+			blocked = False
+			time.sleep(0.1)
+			if self.killed: raise SystemExit()
+
+	def kill(self):
+		self.killed = True
+
+thr = ThreadTest()
+thr.start()
+
+try:
+	while 1:
+		c = stdscr.getch()
+		if c == ord('q'): raise
+		while blocked: time.sleep(0.1)
+		blocked = True
+		stdscr.addstr(0, 0, str(c))
+		stdscr.refresh()
+		blocked = False
+
+except Exception:
+	thr.kill()
+	raise
+finally:
+	curses.nocbreak()
+	stdscr.keypad(1)
+	curses.echo()
+	curses.endwin()
+#	curses.curs_set(1)
+