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_DTMC.py
Go to the documentation of this file.
1 '''
2 Created on Mar 12, 2014
3 
4 @package: dtm
5 @author: scorp
6 @link: http://hierarchical-cluster-engine.com/
7 @copyright: Copyright © 2013-2014 IOIX Ukraine
8 @license: http://hierarchical-cluster-engine.com/license/
9 @since: 0.1
10 '''
11 
12 import ppath
13 from dtmc.DTMC import DTMC
14 from mock import MagicMock
15 from transport.ConnectionBuilderLight import ConnectionBuilderLight
16 from dtm.Constants import EVENT_TYPES as EVENT_TYPES
17 import unittest
18 import dtm.EventObjects
19 import transport.Event
20 
21 
22 class ConnectionStub(object):
23 
24 
25  def __init__(self):
26  self.eventType = None
27 
28 
29  def send(self, event):
30  self.eventType = event.eventType
31  if hasattr(event.eventObj, "id"):
32  self.id = event.eventObj.id
33  else:
34  self.id = None
35 
36 
37  def poll(self, timeout):
38  return 1
39 
40 
41  def recv(self):
42  eventObj = None
43  retEventType = None
44  retEvent = None
45  eventBulder = transport.Event.EventBuilder()
46  if self.eventType == EVENT_TYPES.NEW_TASK:
47  retEventType = EVENT_TYPES.GENERAL_RESPONSE
49  eventObj.statuses.append("was_new")
50  elif self.eventType == EVENT_TYPES.CHECK_TASK_STATE:
51  retEventType = EVENT_TYPES.FETCH_EE_DATA_RESPONSE
52  eventObj = dtm.EventObjects.EEResponseData(self.id)
53  elif self.eventType == EVENT_TYPES.DELETE_TASK:
54  retEventType = EVENT_TYPES.GENERAL_RESPONSE
56  eventObj.statuses.append("was_delete")
57  elif self.eventType == EVENT_TYPES.FETCH_TASK_RESULTS:
58  retEventType = EVENT_TYPES.FETCH_EE_DATA_RESPONSE
59  eventObj = dtm.EventObjects.EEResponseData(self.id)
60  retEvent = eventBulder.build(retEventType, eventObj)
61  return retEvent
62 
63 
64 def connectionBuilderMockBuild(type, addr, networkType):
65  return ConnectionStub()
66 
67 
68 # #Class TestDTMC, contains functional tests of DTMC module
69 #
70 class TestDTMC(unittest.TestCase):
71 
72 
73  def setUp(self):
74  self.dtmc = None
75  self.connectionBuilderMock = MagicMock(spec=ConnectionBuilderLight)
76  self.connectionBuilderMock.build.side_effect = connectionBuilderMockBuild
77 
78 
79  def tearDown(self):
80  pass
81 
82 
83  def commonTestCode(self, args):
84  self.dtmc = DTMC()
85  self.dtmc.connectionBuilder = self.connectionBuilderMock
86  DTMC.argv = args
87  self.dtmc.setup()
88  try:
89  self.dtmc.run()
90  except SystemExit as excp:
91  print("\nEXIT CODE >>> " + str(excp.message))
92  self.dtmc.close()
93 
94 
95  def testFunctionalHELP(self):
96  print("HELP TEST START >>> \n")
97  self.commonTestCode(["-h"])
98 
99 
100  def testFunctionalNEW(self):
101  print("NEW TEST START >>> \n")
102 # self.commonTestCode(["-t", "NEW", "-f", "./new_test.json", "--config", "./dtmc.ini"])
103  self.commonTestCode(["-t", "NEW", "-f", "./jsons/dtmc_new_task_1_request.json", "--config", "./dtmc.ini"])
104 
105 
107  print("CHECK TEST START >>> \n")
108 # self.commonTestCode(["-t", "CHECK", "-f", "./check_test.json", "--config", "./dtmc.ini"])
109  self.commonTestCode(["-t", "CHECK", "-f", "./jsons/dtmc_check_1_request.json", "--config", "./dtmc.ini"])
110 
111 
113  print("TERMINATE TEST START >>> \n")
114 # self.commonTestCode(["-t", "TERMINATE", "-f", "./del_test.json", "--config", "./dtmc.ini"])
115  self.commonTestCode(["-t", "TERMINATE", "-f", "./jsons/dtmc_delete_task_1_request.json",
116  "--config", "./dtmc.ini"])
117 
118 
119  def testFunctionalGET(self):
120  print("GET TEST START >>> \n")
121 # self.commonTestCode(["-t", "GET", "-f", "./get_test.json", "--config", "./dtmc.ini"])
122  self.commonTestCode(["-t", "GET", "-f", "./jsons/dtmc_fetch_task_1_request.json", "--config", "./dtmc.ini"])
123 
124 
126  print("STATUS TEST START >>> \n")
127  self.commonTestCode(["-t", "STATUS", "-f", "./jsons/dtmc_status_ok.json", "--config", "./dtmc.ini"])
128 
129 
131  print("STATUSBad TEST START >>> \n")
132  self.commonTestCode(["-t", "STATUS", "-f", "./jsons/dtmc_status_bad.json", "--config", "./dtmc.ini"])
133 
134 
136  print("CLEANUP TEST START >>> \n")
137  self.commonTestCode(["-t", "CLEANUP", "-f", "./jsons/dtmc_cleanup_ok.json", "--config", "./dtmc.ini"])
138 
139 
141  print("CLEANUPBad TEST START >>> \n")
142  self.commonTestCode(["-t", "CLEANUP", "-f", "./jsons/dtmc_cleanup_bad.json", "--config", "./dtmc.ini"])
143 
144 
145 if __name__ == "__main__":
146  # import sys;sys.argv = ['', 'Test.testName']
147 
148  unittest.main()
def testFunctionalSTATUSBad(self)
Definition: ftest_DTMC.py:130
GeneralResponse event object, represents general state response for multipurpose usage.
def commonTestCode(self, args)
Definition: ftest_DTMC.py:83
def connectionBuilderMockBuild(type, addr, networkType)
Definition: ftest_DTMC.py:64
Definition: DTMC.py:1
def testFunctionalTERMINATE(self)
Definition: ftest_DTMC.py:112
def testFunctionalCLEANUPBad(self)
Definition: ftest_DTMC.py:140
EEResponseData event object, store task results data, returned from EE.