-
Notifications
You must be signed in to change notification settings - Fork 0
/
Autotest.py
99 lines (85 loc) · 3.17 KB
/
Autotest.py
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
# -*- coding: utf-8 -*-
from Typer import *
from Prompt import *
from FileButton import *
from Tkinter import *
from ComboBox import *
from TypingField import *
from ttk import Combobox, Style
import threading
class Autotest(Frame):
def __init__(self, parent):
Frame.__init__(self,parent)
self.parent = parent
self.setUI()
if self.prompt.var.get() == 0:
self.tw = TypeWriter("US")
elif self.prompt.var.get() == 1:
self.tw = TypeWriter("UK")
self.periodicCall()
def periodicCall(self):
self.master.after(100, self.periodicCall)
def workerThread(self):
# self.randWords(4)
# self.allPermu(3)
self.runFile()
### Run threading
def runFile(self):
while not self.text.submit_tog:
try:
if self.focus_get() != self.text.text:
self.text.submit_tog = True
self.text.submit.configure(text = "Start Test")
break
if len(self.file.document) > self.file.i:
print "if"
self.sleepTime = 0.1/self.speed.speed
self.tw.keyIn(self.file.document[self.file.i])
self.file.i += 1
time.sleep(self.sleepTime)
elif len(self.file.document) == self.file.i:
self.tw.keyIn("\n")
self.tw.CtrlA()
self.tw.keyIn("BACK")
self.file.i = 0
else:
print "else"
except:
print "exception"
def setUI(self):
self.style = Style()
self.prompt = Prompt(self.parent)
self.style.theme_use("default")
self.loadLogo()
self.speed = ComboBox(self.parent)
self.speed.pack(side = RIGHT)
self.speed.box.bind("<<ComboboxSelected>>", self.pause)
self.file = FileButton(self.parent)
self.file.pack(fill = X)
self.text = TypingField(self.parent)
self.text.pack(fill=X)
self.text.submit.bind("<Button-1>", self.startPause)
self.parent.title("Autotest")
def pause(self, event):
self.text.submit_tog = True
# self.text.submit.configure(text = "Start Test")
self.speed.value(event)
self.text.text.focus_set()
# self.text.submit_tog = False
self.startPause(event)
def startPause(self, event):
self.text.startPause(event)
if not self.text.submit_tog:
self.thread = threading.Thread(target = self.workerThread)
self.thread.start()
def loadLogo(self):
try:
path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "SSicon.ico")
except NameError: # We are the main py2exe script, not a module
import sys
path = os.path.join(os.path.dirname(os.path.abspath(sys.argv[0])), "SSicon.ico")
self.parent.wm_iconbitmap(path)
if __name__ == "__main__":
root = Tk()
app = Autotest(root)
root.mainloop()