Exemplo n.º 1
0
    def test_transform_service_leader_election(self, spark_submit_call,
                                               coordinator):
        # mock coordinator
        fake_kazoo_driver = MagicMock(name="MagicKazooDriver",
                                      spec=KazooDriver)
        coordinator.return_value = fake_kazoo_driver

        # set up transform service
        serv_thread = transform_service.TransformService()
        serv_thread.daemon = True

        # test previously running value
        self.assertFalse(serv_thread.previously_running)

        fake_event = MagicMock(name="fake_event",
                               spec='tooz.coordination.Event')

        # call leader election function
        serv_thread.when_i_am_elected_leader(fake_event)

        # test if subcall was called
        spark_submit_call.assert_called()

        # test previously running value
        self.assertTrue(serv_thread.previously_running)
    def test_transform_service_periodic_check(self,
                                              stopspark,
                                              coordinator):

        # mock coordinator
        fake_kazoo_driver = MagicMock(name="MagicKazooDriver",
                                      spec=KazooDriver)
        fake_kazoo_driver.get_leader.get.return_value = "someotherhost"
        coordinator.return_value = fake_kazoo_driver

        # set up transform service
        serv_thread = transform_service.TransformService()
        serv_thread.daemon = True
        # assume that the driver was running
        serv_thread.previously_running = True
        # set the coordinator
        serv_thread.coordinator = fake_kazoo_driver

        # call periodic leader check
        serv_thread.periodic_leader_check()

        # verify if standown leader was called
        fake_kazoo_driver.stand_down_group_leader.assert_called_with(
            'monasca-transform')
        # verify if stop spark submit process was called
        stopspark.assert_called()
Exemplo n.º 3
0
    def test_transform_service_heartbeat(self, coordinator):

        # mock coordinator
        fake_kazoo_driver = MagicMock(name="MagicKazooDriver",
                                      spec=KazooDriver)
        coordinator.return_value = fake_kazoo_driver

        # option1
        serv_thread = transform_service.TransformService()
        serv_thread.daemon = True
        serv_thread.start()
        time.sleep(2)

        # option2
        # mocks dont seem to work when spawning a service
        # pid = _spawn_transform_service()
        # time.sleep()
        # os.kill(pid, signal.SIGNAL_SIGTERM)

        fake_kazoo_driver.heartbeat.assert_called_with()