import unittest, cdms2, logging, sys from modules.utilities import wpsLog verbose = False if verbose: wpsLog.addHandler( logging.StreamHandler(sys.stdout) ) wpsLog.setLevel(logging.DEBUG) def getVariable( ivar, cache_level ): from modules.configuration import MERRA_TEST_VARIABLES from datacache.data_collections import CollectionManager collection = MERRA_TEST_VARIABLES["collection"] id = MERRA_TEST_VARIABLES["vars"][ivar] cm = CollectionManager.getInstance('CreateV') url = cm.getURL( collection, id ) dset = cdms2.open( url ) return dset( id, level=cache_level ) #, latitude=[self.cache_lat,self.cache_lat,'cob'] ) CacheLevel = 10000.0 class PersistenceTests(unittest.TestCase): def setUp(self): pass def tearDown(self): pass # def test01_persist_mgr_cache(self): # from datacache.persistence.manager import persistenceManager # data_chunk = TestVariable.data
def run_test(): import pprint, time, logging, sys from modules.utilities import wpsLog from engines.legacy.celeryEngine.tasks import CeleryEngine from request.manager import TaskRequest wpsLog.addHandler( logging.StreamHandler(sys.stdout) ) # logging.FileHandler( os.path.abspath( os.path.join(os.path.dirname(__file__), '..', 'logs', 'wps.log') ) ) ) wpsLog.setLevel(logging.DEBUG) pp = pprint.PrettyPrinter(indent=4) test_cache = False variable = {"collection": "MERRA/mon/atmos", "id": "clt"} region1 = {"longitude": -24.20, "latitude": 58.45, "level": 10000.0} region2 = {"longitude": -30.20, "latitude": 67.45, "level": 8500.0} op_annual_cycle = {"kernel": "time", "type": "climatology", "bounds": "annualcycle"} op_departures = {"kernel": "time", "type": "departures", "bounds": "np"} engine = CeleryEngine("celery") if test_cache: request = TaskRequest(task={"data": variable}) task = engine.execute(request, async=True) result = task.result() print "\n ---------- Result(cache): ---------- " pp.pprint(result) else: run_async = True if run_async: t0 = time.time() request = TaskRequest(task={"data": variable, "region": region1, "operation": op_departures}) task1 = engine.execute(request, async=True) # request = TaskRequest( task={ 'data': variable, 'region':region2, 'operation': op_annual_cycle } ) # task2 = engine.execute( request, async=True ) t1 = time.time() result1 = task1.result() if task1 else None print "\n ---------- Result (departures): ---------- " pp.pprint(result1) if result1 else "<NONE>" t2 = time.time() # print "\n ---------- Result (annual cycle): ---------- " # result2 = task2.result() if task2 else None # pp.pprint(result2) if result2 else "<NONE>" # t3 = time.time() # print "\n Operations Complete, dt0 = %.2f, dt1 = %.2f, , dt2 = %.2f, dt = %.2f " % ( t1-t0, t2-t1, t3-t2, t3-t0 ) else: t0 = time.time() request = TaskRequest(task={"data": variable, "region": region1, "operation": op_departures}) result1 = engine.execute(request) print "\n ---------- Result (departures): ---------- " pp.pprint(result1) t1 = time.time() request = TaskRequest(task={"data": variable, "region": region1, "operation": op_annual_cycle}) result2 = engine.execute(request) print "\n ---------- Result(annual cycle): ---------- " pp.pprint(result2) t2 = time.time() print "\n Operations Complete, dt0 = %.2f, dt1 = %.2f, dt = %.2f " % (t1 - t0, t2 - t1, t2 - t0)