-
Notifications
You must be signed in to change notification settings - Fork 0
/
unitconfirm.py
142 lines (132 loc) · 5.95 KB
/
unitconfirm.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
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
133
134
135
136
137
138
139
140
141
142
import unittest
import filecmp
import glob
import shutil
import os
import subprocess
import logging
import utilsunit
import bots.botslib as botslib
import bots.botsinit as botsinit
import bots.botsglobal as botsglobal
from bots.botsconfig import *
'''plugin unitconfirm.zip'''
botssys = 'bots/botssys'
class TestMain(unittest.TestCase):
def testroutetestmdn(self):
lijst = utilsunit.getdir(os.path.join(botssys,'outfile/confirm/mdn/*'))
self.failUnless(len(lijst)==0)
for row in botslib.query(u'''SELECT idta,confirmed,confirmidta
FROM ta
WHERE status=%(status)s
AND statust=%(statust)s
AND idroute=%(idroute)s
AND confirmtype=%(confirmtype)s
AND confirmasked=%(confirmasked)s
ORDER BY idta DESC
''',
{'status':210,'statust':DONE,'idroute':'testmdn','confirmtype':'send-email-MDN','confirmasked':True}):
self.failUnless(row[1])
self.failUnless(row[2]!=0)
break
else:
self.failUnless(1==0)
for row in botslib.query(u'''SELECT idta,confirmed,confirmidta
FROM ta
WHERE status=%(status)s
AND statust=%(statust)s
AND idroute=%(idroute)s
AND confirmtype=%(confirmtype)s
AND confirmasked=%(confirmasked)s
ORDER BY idta DESC
''',
{'status':510,'statust':DONE,'idroute':'testmdn','confirmtype':'ask-email-MDN','confirmasked':True}):
self.failUnless(row[1])
self.failUnless(row[2]!=0)
break
else:
self.failUnless(1==0)
def testroutetestmdn2(self):
lijst = utilsunit.getdir(os.path.join(botssys,'outfile/confirm/mdn2/*'))
self.failUnless(len(lijst)==0)
for row in botslib.query(u'''SELECT idta,confirmed,confirmidta
FROM ta
WHERE status=%(status)s
AND statust=%(statust)s
AND idroute=%(idroute)s
AND confirmtype=%(confirmtype)s
AND confirmasked=%(confirmasked)s
ORDER BY idta DESC
''',
{'status':510,'statust':DONE,'idroute':'testmdn2','confirmtype':'ask-email-MDN','confirmasked':True}):
self.failUnless(not row[1])
self.failUnless(row[2]==0)
break
else:
self.failUnless(1==0)
def testroutetest997(self):
'''
test997 1: pickup 850; send 850 (ask confirm) and 997
test997 2: receive 997 and 850; send 997
test997 3: send 997 and 850 to trash
test997 4: receive 997; 997 to trash
'''
lijst = utilsunit.getdir(os.path.join(botssys,'outfile/confirm/x12/*'))
self.failUnless(len(lijst)==0)
lijst = utilsunit.getdir(os.path.join(botssys,'outfile/confirm/trash/*'))
self.failUnless(len(lijst)==3)
counter=0
for row in botslib.query(u'''SELECT idta,confirmed,confirmidta
FROM ta
WHERE status=%(status)s
AND statust=%(statust)s
AND idroute=%(idroute)s
AND confirmtype=%(confirmtype)s
AND confirmasked=%(confirmasked)s
ORDER BY idta DESC
''',
{'status':400,'statust':DONE,'idroute':'test997','confirmtype':'ask-x12-997','confirmasked':True}):
counter += 1
if counter == 1:
self.failUnless(not row[1])
self.failUnless(row[2]==0)
elif counter == 2:
self.failUnless(row[1])
self.failUnless(row[2]!=0)
else:
break
else:
self.failUnless(counter!=0)
for row in botslib.query(u'''SELECT idta,confirmed,confirmidta
FROM ta
WHERE status=%(status)s
AND statust=%(statust)s
AND idroute=%(idroute)s
AND confirmtype=%(confirmtype)s
AND confirmasked=%(confirmasked)s
ORDER BY idta DESC
''',
{'status':310,'statust':DONE,'idroute':'test997','confirmtype':'send-x12-997','confirmasked':True}):
counter += 1
if counter <= 2:
self.failUnless(row[1])
self.failUnless(row[2]!=0)
else:
break
else:
self.failUnless(counter!=0)
def testrouteotherx12(self):
lijst = utilsunit.getdir(os.path.join(botssys,'outfile/confirm/otherx12/*'))
self.failUnless(len(lijst)==15)
if __name__ == '__main__':
pythoninterpreter = 'C:/python25/python'
newcommand = [pythoninterpreter,'bots-engine.py',]
shutil.rmtree(os.path.join(botssys, 'outfile'),ignore_errors=True) #remove whole output directory
subprocess.call(newcommand)
botsinit.generalinit('config')
#~ botslib.initbotscharsets()
botsinit.initenginelogging()
botsinit.connect()
unittest.main()
logging.shutdown()
botsglobal.db.close