Esempio n. 1
0
 def test_stop(self, mock_session, mock_pymongo, mock_util):
     test_mongo_client = mock.Mock()
     mock_pymongo.MongoClient = test_mongo_client
     controller = queue.QueueController(args=self.args)
     controller.stop()
     controller.session.scheduler.stop.assert_called_once_with()
     controller.client.close.assert_called_once_with()
Esempio n. 2
0
 def test_start(self, mock_session, mock_pymongo, mock_util):
     controller = queue.QueueController(args=self.args)
     controller.start()
     controller.session.scheduler.start_maintenance.assert_called_once_with(
     )
     controller.session.scheduler.start.assert_called_once_with()
     self.assertTrue(
         controller.client.queue.submissions.create_index.called)
     self.assertTrue(controller.client.queue.tasks.create_index.called)
Esempio n. 3
0
def setUpModule(mock_pymongo, mock_util):
    # for testing web-service functionality only we mock session, util in controller
    mock_pymongo.MongoClient = mock.Mock()
    mock_util.readwriteDirectory.return_value = "/None"
    mock_util.readonlyDirectory.return_value = "/None"
    with mock.patch.object(queue.QueueController,
                           "_create_session",
                           return_value=test_session):
        controller = queue.QueueController(args={})
        cherrypy.tree.mount(controller, "/", queue.getConf())
    cherrypy.engine.start()
Esempio n. 4
0
 def test_validate(self, mock_session, mock_pymongo, mock_util):
     controller = queue.QueueController(args=self.args)
     mock_util.URI.side_effect = ValueError()
     mock_util.readwriteDirectory.side_effect = ValueError()
     mock_util.readonlyDirectory.side_effect = ValueError()
     # test for all validations in controller
     with self.assertRaises(StandardError):
         controller._validate_mongodb_url("abc")
     with self.assertRaises(StandardError):
         controller._validate_working_dir("abc")
     with self.assertRaises(StandardError):
         controller._validate_service_dir("abc")
Esempio n. 5
0
 def test_get_status_dict(self, mock_session, mock_pymongo, mock_util):
     controller = queue.QueueController(args=self.args)
     metrics = controller.get_status_dict()
     self.assertEqual(metrics["code"], "TEST")
     self.assertEqual(metrics["url"], {
         "href": "http://local:8080",
         "alias": "link"
     })
     self.assertEqual(metrics["status"], const.SYSTEM_BUSY)
     self.assertEqual(metrics["scheduler"]["executor_class"],
                      "SparkStandaloneExecutor")
     self.assertEqual(metrics["scheduler"]["num_executors"], 5)
     self.assertEqual(metrics["scheduler"]["metrics"], {"a": 1, "b": 2})
     self.assertTrue("ex1" in metrics["scheduler"]["is_alive_statuses"])
     self.assertTrue("ex2" in metrics["scheduler"]["is_alive_statuses"])
     self.assertTrue("storage_url" in metrics)
Esempio n. 6
0
 def test_create_session(self, mock_session, mock_pymongo, mock_util):
     controller = queue.QueueController(args=self.args)
     with self.assertRaises(AttributeError):
         controller._create_session(None)
     with self.assertRaises(AttributeError):
         controller._create_session({"a": 1})
     conf = queue.QueueConf()
     with self.assertRaises(StandardError):
         controller._create_session(conf)
     # check spark session
     conf.setAllConf(self.args)
     session = controller._create_session(conf)
     self.assertTrue(isinstance(session, spark.SparkSession))
     # check simple session
     conf = queue.QueueConf()
     conf.setConf(const.OPT_SYSTEM_CODE, simple.SIMPLE_SYSTEM_CODE)
     conf.setConf(const.OPT_SCHEDULER_TIMEOUT, 1.0)
     conf.setConf(const.OPT_NUM_PARALLEL_TASKS, 1)
     session = controller._create_session(conf)
     self.assertTrue(isinstance(session, simple.SimpleSession))
Esempio n. 7
0
 def test_pretty_name(self, mock_session, mock_pymongo, mock_util):
     controller = queue.QueueController(args=self.args)
     self.assertEqual(controller._pretty_name(controller),
                      "QueueController")
     self.assertEqual(controller._pretty_name(queue.QueueController),
                      "QueueController")