From 1320bd427a2b33efd5a16580c54aee6a0eca0cf0 Mon Sep 17 00:00:00 2001
From: Jorrit Schaap <schaap@astron.nl>
Date: Fri, 3 Jul 2020 16:02:45 +0200
Subject: [PATCH] TMSS-189: use RAService in RATestEnvironment

---
 .../test/ra_test_environment.py               | 26 ++++++++++++++-----
 1 file changed, 19 insertions(+), 7 deletions(-)

diff --git a/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py b/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py
index 3584b48f0f4..03a0a4db19a 100644
--- a/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py
+++ b/SAS/ResourceAssignment/ResourceAssigner/test/ra_test_environment.py
@@ -31,24 +31,25 @@ from lofar.common.util import find_free_port, waitForInterrupt
 from lofar.messaging.config import DEFAULT_BROKER, DEFAULT_BUSNAME
 from lofar.common.testing.dbcredentials import TemporaryCredentials
 from lofar.sas.resourceassignment.database.testing.radb_common_testing import RADBTestDatabaseInstance
-from lofar.sas.resourceassignment.resourceassigner.resource_assigner import ResourceAssigner
+from lofar.sas.resourceassignment.resourceassigner.raservice import RAService
+from lofar.sas.resourceassignment.resourceassignmentservice.service import createService as createRADBService
 
 class RATestEnvironment:
     '''Create and run a several ResourrceAssigner services in an isolated test environment'''
     def __init__(self,
                  exchange: str=os.environ.get("RA_EXCHANGE", DEFAULT_BUSNAME), broker: str=os.environ.get("RA_BROKER", DEFAULT_BROKER)):
         self.radb = RADBTestDatabaseInstance()
-        self.resource_assigner = ResourceAssigner(radb_dbcreds=self.radb.dbcreds, exchange=exchange, broker=broker)
+        self.radb_service = createRADBService(dbcreds=self.radb.dbcreds, exchange=exchange, broker=broker)
+        self.ra_service = RAService(radbcreds=self.radb.dbcreds, exchange=exchange, broker=broker)
 
     def start(self):
         self.radb.create()
-        self.resource_assigner.open()
-        # self.resource_assigner.do_assignment(0,{ 'task_type': 'observation',
-        #                                          'task_subtype': 'bfmeasurement',
-        #                                          'status': 'approved'})
+        self.radb_service.start_listening()
+        self.ra_service.start_listening()
 
     def stop(self):
-        self.resource_assigner.close()
+        self.ra_service.stop_listening()
+        self.radb_service.stop_listening()
         self.radb.destroy()
 
     def __enter__(self):
@@ -78,7 +79,18 @@ def main():
 
     logging.basicConfig(format = '%(asctime)s %(levelname)s %(message)s', level = logging.INFO)
 
+    from lofar.sas.resourceassignment.resourceassigner.rarpc import RARPC
+    from datetime import datetime, timedelta
+
     with RATestEnvironment(exchange=options.exchange, broker=options.broker) as instance:
+        with RARPC.create(exchange=options.exchange, broker=options.broker) as rarpc:
+            rarpc.do_assignment(2000000, { 'otdb_id': 2000000,
+                                           'task_type': 'observation',
+                                           'task_subtype': 'bfmeasurement',
+                                           'status': 'approved',
+                                           'starttime': datetime.utcnow()+timedelta(hours=1),
+                                           'endtime': datetime.utcnow()+timedelta(hours=2)})
+
         # print some nice info for the user to use the test servers...
         # use print instead of log for clean lines.
         for h in logging.root.handlers:
-- 
GitLab