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_dc_SitesManager.py
Go to the documentation of this file.
1 '''
2 HCE project, Python bindings, Distributed Crawler application.
3 SitesManager object functional tests.
4 
5 @package: dc
6 @author bgv bgv.hce@gmail.com
7 @link: http://hierarchical-cluster-engine.com/
8 @copyright: Copyright © 2013-2014 IOIX Ukraine
9 @license: http://hierarchical-cluster-engine.com/license/
10 @since: 0.1
11 '''
12 
13 import ConfigParser
14 import logging
15 import sys
16 import time
17 
18 from app.BaseServerManager import BaseServerManager
19 import dc.EventObjects
20 import dc.SitesManager
21 from transport.ConnectionBuilderLight import ConnectionBuilderLight
22 from transport.Event import EventBuilder
23 import dc.Constants as DC_CONSTS
24 import transport.Consts as TRANSPORT_CONSTS
25 
26 
27 if __name__ == "__main__":
28  logger = logging.getLogger(DC_CONSTS.LOGGER_NAME)
29  ch = logging.StreamHandler(sys.stdout)
30  ch.setLevel(logging.DEBUG)
31  logger.setLevel(logging.DEBUG)
32  formatter = logging.Formatter('%(asctime)s - %(thread)ld - %(threadName)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s')
33  ch.setFormatter(formatter)
34  logger.addHandler(ch)
35 
36 if __name__ == "__main__":
37  TEST_TITLE = "Test "
38  TEST_TITLE_OBJECT = " object:\n"
39  TTL = 7
40 
41  #Test SitesManager instantiation
42  CONFIG_SECTION = "SitesManager"
43  config = ConfigParser.RawConfigParser()
44  config.add_section(CONFIG_SECTION)
45  config.set(CONFIG_SECTION, "server", CONFIG_SECTION)
46  config.set(CONFIG_SECTION, "DRCEHost", "localhost")
47  config.set(CONFIG_SECTION, "DRCEPort", "5656")
48  config.set(CONFIG_SECTION, "DRCETimeout", "5000")
49  config.set(CONFIG_SECTION, "DRCEDBAppName", "cd api/python/bin && ./db-task.py")
50 
51 
52  print sys.version
53 
54  connectionBuilderLight = ConnectionBuilderLight()
55 
56  #Admin server connection sumulator
57  adminServerConnection = connectionBuilderLight.build(TRANSPORT_CONSTS.SERVER_CONNECT,
58  BaseServerManager.ADMIN_CONNECT_ENDPOINT)
59 
60  time.sleep(1)
61 
62  #Create instance
64 
65  print TEST_TITLE + sm.__class__.__name__ + TEST_TITLE_OBJECT, vars(sm)
66 
67  sm.setName(sm.__class__.__name__)
68  sm.start()
69 
70  #Simulate ExecuteTask request
71  eventBuilder = EventBuilder()
72  siteStatus = dc.EventObjects.SiteStatus("1235151254141")
73  print "type(siteStatus)=" + str(type(siteStatus))
74  event = eventBuilder.build(DC_CONSTS.EVENT_TYPES.SITE_STATUS, siteStatus)
75  event.connect_name = sm.serverName
76 
77  sm.onEventsHandler(event)
78  print "ExecuteTask event sent"
79 
80  sm.exit_flag = True
81 
82  print "Stopped after" + str(TTL) + " sec of run!"
83 
84 
Class hides routines of bulding connection objects.