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_BatchTasksManager.py
Go to the documentation of this file.
1 '''
2 HCE project, Python bindings, Distributed Crawler application.
3 BatchTasksManager 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
20 import dc.EventObjects
21 from transport.ConnectionBuilderLight import ConnectionBuilderLight
22 from transport.Event import EventBuilder
23 
24 import dc.Constants as DC_CONSTS
25 import transport.Consts as TRANSPORT_CONSTS
26 
27 
28 if __name__ == "__main__":
29  logger = logging.getLogger(DC_CONSTS.LOGGER_NAME)
30  ch = logging.StreamHandler(sys.stdout)
31  ch.setLevel(logging.DEBUG)
32  logger.setLevel(logging.DEBUG)
33  formatter = logging.Formatter('%(asctime)s - %(thread)ld - %(threadName)s - %(name)s - %(funcName)s - %(levelname)s - %(message)s')
34  ch.setFormatter(formatter)
35  logger.addHandler(ch)
36 
37 if __name__ == "__main__":
38  TEST_TITLE = "Test "
39  TEST_TITLE_OBJECT = " object:\n"
40  TTL = 60 * 60
41 
42  #Test SitesManager instantiation
43  CONFIG_SECTION = "BatchTasksManager"
44  config = ConfigParser.RawConfigParser()
45  config.add_section(CONFIG_SECTION)
46  config.set(CONFIG_SECTION, "server", CONFIG_SECTION)
47  config.set(CONFIG_SECTION, "DTMDHost", "localhost")
48  config.set(CONFIG_SECTION, "DTMDPort", "5501")
49  config.set(CONFIG_SECTION, "DTMDTimeout", "2000")
50  config.set(CONFIG_SECTION, "clientSitesManager", "SitesManager")
51  config.set(CONFIG_SECTION, "PollingTimeout", "30000")
52  config.set(CONFIG_SECTION, "DRCECrawlerAppName", "cd api/python/bin && ./crawler-task.py -c=../ini/crawler-task.ini")
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  print TEST_TITLE + btm.__class__.__name__ + TEST_TITLE_OBJECT, vars(btm)
65  btm.setName(btm.__class__.__name__)
66  btm.start()
67 
68  #Simulate ExecuteTask request
69  eventBuilder = EventBuilder()
70  urlObj = dc.EventObjects.URL("0", "http://127.0.0.1/")
71  clientResponseItem = dc.EventObjects.ClientResponseItem([urlObj])
72  clientResponse = dc.EventObjects.ClientResponse([clientResponseItem])
73  event = eventBuilder.build(DC_CONSTS.EVENT_TYPES.URL_FETCH, clientResponse)
74  btm.onURLFetchResponse(event)
75  print "ExecuteTask event sent"
76 
77  time.sleep(TTL)
78  btm.exit_flag = True
79 
80  print "Stopped after " + str(TTL) + " sec!"
81 
Class hides routines of bulding connection objects.