HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
ftest_DBTaskStatistic.py
Go to the documentation of this file.
1 '''
2 @package: dc
3 @author scorp
4 @link: http://hierarchical-cluster-engine.com/
5 @copyright: Copyright © 2013-2014 IOIX Ukraine
6 @license: http://hierarchical-cluster-engine.com/license/
7 @since: 0.1
8 '''
9 import ppath
10 
11 import threading
12 import unittest
13 import os
14 try:
15  import cPickle as pickle
16 except ImportError:
17  import pickle
18 
19 CMD_SNEW1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
20  "<../hce/ftests/db-task-stat-data/site_new1.dat")
21 CMD_SNEW2 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
22  "<../hce/ftests/db-task-stat-data/site_new2.dat")
23 CMD_SNEW3 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
24  "<../hce/ftests/db-task-stat-data/site_new3.dat")
25 CMD_SNEW4 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
26  "<../hce/ftests/db-task-stat-data/site_new4.dat")
27 CMD_UNEW1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
28  "<../hce/ftests/db-task-stat-data/url_new1.dat")
29 CMD_UUPDATE1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
30  "<../hce/ftests/db-task-stat-data/url_update1.dat")
31 CMD_UUPDATE2 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
32  "<../hce/ftests/db-task-stat-data/url_update2.dat")
33 CMD_UUPDATE3 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
34  "<../hce/ftests/db-task-stat-data/url_update3.dat")
35 CMD_UUPDATE4 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
36  "<../hce/ftests/db-task-stat-data/url_update4.dat")
37 CMD_UDELETE1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
38  "<../hce/ftests/db-task-stat-data/url_delete1.dat")
39 CMD_UAGE1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
40  "<../hce/ftests/db-task-stat-data/url_age1.dat")
41 CMD_SCEANUP1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
42  "<../hce/ftests/db-task-stat-data/site_cleanup1.dat")
43 CMD_SCEANUP2 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
44  "<../hce/ftests/db-task-stat-data/site_cleanup2.dat")
45 CMD_UPURGE1 = ("cd ../../bin && /usr/bin/python ./db-task.py --cfg=../ini/db-task.ini " +
46  "<../hce/ftests/db-task-stat-data/url_purge1.dat")
47 
48 
49 class Test(unittest.TestCase):
50 
51  mutex = threading.Lock()
52 
53  def setUp(self):
54  pass
55 
56 
57  def tearDown(self):
58  pass
59 
60 
61  def execCommand(self, command, step):
62  obj = None
63  print ">>> Start = " + str(command)
64  fd = os.popen(command)
65  if fd:
66  localStr = fd.read()
67  fd.close()
68  print ">>> Finish = " + str(command)
69  try:
70  obj = pickle.loads(localStr)
71  except EOFError:
72  self.assertTrue(False, "Step%s >>> Invalid return data" % str(step))
73  else:
74  print ">>> Bad FD " + + str(command)
75  return obj
76 
77 
78  def testSuite1(self):
79  try:
80  self.mutex.acquire()
81  print "Suite1"
82  self.execCommand(CMD_SNEW1, 0)
83  self.execCommand(CMD_SNEW2, 0)
84  self.execCommand(CMD_SNEW3, 0)
85  self.execCommand(CMD_SNEW4, 0)
86  self.execCommand(CMD_UNEW1, 1)
87  self.execCommand(CMD_UUPDATE1, 2)
88  self.execCommand(CMD_UUPDATE2, 2)
89  self.execCommand(CMD_UUPDATE3, 2)
90  self.execCommand(CMD_UUPDATE4, 2)
91  self.execCommand(CMD_UDELETE1, 3)
92  self.execCommand(CMD_UAGE1, 4)
93  self.execCommand(CMD_SCEANUP1, 5)
94  self.execCommand(CMD_SCEANUP2, 5)
95  self.execCommand(CMD_UPURGE1, 6)
96  print "Suite1 FN"
97  self.mutex.release()
98  except:
99  self.mutex.release()
100  raise
101 
102 
103 if __name__ == "__main__":
104  #import sys;sys.argv = ['', 'Test.testName']
105  unittest.TestLoader.sortTestMethodsUsing = None
106  unittest.main()
def execCommand(self, command, step)