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_DTMA.py
Go to the documentation of this file.
1 '''
2 Created on Mar 27, 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 from dtma.DTMA import DTMA
13 from mock import MagicMock
14 from transport.ConnectionBuilderLight import ConnectionBuilderLight
15 from dtm.Constants import EVENT_TYPES as EVENT_TYPES
16 import unittest
17 import dtm.EventObjects
18 import transport.Event
19 
20 
21 class ConnectionStub(object):
22 
23 
24  def __init__(self):
25  self.eventType = None
26 
27 
28  def send(self, event):
29  self.eventType = event.eventType
30  '''
31  if event.eventType == EVENT_TYPES.ADMIN_FETCH_STAT_DATA:
32  print("-----------------------------------")
33  print(event.eventObj.className)
34  print(event.eventObj.fields)
35  '''
36 
37 
38  def poll(self, timeout):
39  return 1
40 
41 
42  def recv(self):
43  eventObj = None
44  retEventType = None
45  retEvent = None
46  eventBulder = transport.Event.EventBuilder()
47  if self.eventType == EVENT_TYPES.ADMIN_FETCH_STAT_DATA:
48  retEventType = EVENT_TYPES.ADMIN_FETCH_STAT_DATA_RESPONSE
49  eventObj = dtm.EventObjects.AdminStatData("")
50  elif self.eventType == EVENT_TYPES.ADMIN_SET_CONFIG_VARS:
51  retEventType = EVENT_TYPES.ADMIN_SET_CONFIG_VARS_RESPONSE
53  elif self.eventType == EVENT_TYPES.ADMIN_GET_CONFIG_VARS:
54  retEventType = EVENT_TYPES.ADMIN_GET_CONFIG_VARS_RESPONSE
56  elif self.eventType == EVENT_TYPES.ADMIN_STATE:
57  retEventType = EVENT_TYPES.ADMIN_STATE_RESPONSE
59  retEvent = eventBulder.build(retEventType, eventObj)
60  return retEvent
61 
62 
63 def connectionBuilderMockBuild(type, addr, networkType):
64  return ConnectionStub()
65 
66 
67 
69 class TestDTMA(unittest.TestCase):
70 
71 
72  def __init__(self, methodName='runTest'):
73  unittest.TestCase.__init__(self, methodName)
74  self.dtmc = None
76 
77 
78  def setUp(self):
79  self.dtmc = None
80  self.connectionBuilderMock = MagicMock(spec=ConnectionBuilderLight)
81  self.connectionBuilderMock.build.side_effect = connectionBuilderMockBuild
82 
83 
84  def tearDown(self):
85  pass
86 
87 
88  def commonTestCode(self, args, isZerro):
89  exitCode = None
90  self.dtma = DTMA()
91  self.dtma.connectionBuilder = self.connectionBuilderMock
92  DTMA.argv = args
93  self.dtma.setup()
94  try:
95  self.dtma.run()
96  except SystemExit as excp:
97  print("\nEXIT CODE >>> " + str(excp.message))
98  exitCode = excp.message
99  self.dtma.close()
100  if isZerro:
101  self.assertTrue(exitCode == 0, ">>> Error! Exit code != 0")
102  else:
103  self.assertTrue(exitCode != 0, ">>> Error! Exit code == 0")
104 
105 
107  print("HELP TEST START >>> \n")
108  self.commonTestCode(["-h"], True)
109 
110 
112  print("testFunctionalSTATBadConfig TEST START >>> \n")
113  self.commonTestCode(["--cmd", "STAT", "--config", "./bad"], False)
114 
115 
117  print("testFunctionalSTATBad1 TEST START >>> \n")
118  self.commonTestCode(["--cmd", "STAT", "--config", "./dtma.ini"], False)
119 
120 
122  print("testFunctionalSTAT TEST START >>> \n")
123 # self.commonTestCode(["--cmd", "STAT", "--fields", "adda1", "--classes", "cl1,cl2", "--config", "./dtma.ini"])
124 # "--fields", "Adm:,adm2:33,adm4",
125  self.commonTestCode(["--cmd", "STAT", "--classes",
126  "TasksManager,ExecutionEnvironmentManager ", "--config", "./dtma.ini"], True)
127 
128 
130  print("testFunctionalSETBad TEST START >>> \n")
131  self.commonTestCode(["--cmd", "SET", "--fields", "cl1,cl2","--classes", "cl1,cl2", "--config", "./dtma.ini"], False)
132 
133 
134  def testFunctionalSET(self):
135  print("testFunctionalSET TEST START >>> \n")
136  self.commonTestCode(["--cmd", "SET", "--fields", "cl1:cl2,cl4:", "--classes", "cl1,cl2",
137  "--config", "./dtma.ini"], True)
138 
139 
141  print("testFunctionalGETBad TEST START >>> \n")
142  self.commonTestCode(["--cmd", "GET", "--fields", "", "--classes", "cl1,cl2", "--config", "./dtma.ini"], False)
143 
144 
145  def testFunctionalGET(self):
146  print("testFunctionalGET TEST START >>> \n")
147  self.commonTestCode(["--cmd", "GET", "--fields", "any", "--classes", "cl1,cl2", "--config", "./dtma.ini"], True)
148 
149 
151  print("testFunctionalSTOPBad TEST START >>> \n")
152  self.commonTestCode(["--cmd", "STOP", "--classes", "", "--config", "./dtma.ini"], False)
153 
154 
156  print("testFunctionalSTOP TEST START >>> \n")
157  self.commonTestCode(["--cmd", "STOP","--classes", "cl1,cl2", "--config", "./dtma.ini"], True)
158 
159 
160 if __name__ == "__main__":
161  #import sys;sys.argv = ['', 'Test.testName']
162 
163  unittest.main()
def connectionBuilderMockBuild(type, addr, networkType)
Definition: ftest_DTMA.py:63
DTMA Class contents main functional of DTMA application, class inherits from foundation.CementApp.
Definition: DTMA.py:36
def testFunctionalSTATBad1(self)
Definition: ftest_DTMA.py:116
Definition: DTMA.py:1
GeneralResponse event object, represents general state response for multipurpose usage.
AdminConfigVars event object, for admin set or get config variables from any of threaded classes or a...
def commonTestCode(self, args, isZerro)
Definition: ftest_DTMA.py:88
def testFunctionalSTATBadConfig(self)
Definition: ftest_DTMA.py:111
AdminStatData event object, for admin fetch stat fields and possible data from any threaded classes i...
def __init__(self, methodName='runTest')
Definition: ftest_DTMA.py:72
Class TestDTMA, contains functional tests of DTMA module.
Definition: ftest_DTMA.py:69