Esempio n. 1
0
def test_add_service():
    service_alias = "test-1"
    manager = ServiceManager("service-manager-1")
    service_meta = ServiceMetaData(service_alias)
    test_service = BaseService(service_meta.alias)

    # Add service

    assert manager.add_service(test_service, service_meta) == True

    # Add adding again should fail
    assert manager.add_service(test_service, service_meta) == False
def test_baseservice():
    """
    Base service tests for:
        - [x] name on init
        - [x] idle state on init
        - [x] starting state on start()
        - [x] ready() alias for idle state
        - [x] stopped state on stop()
        - [x] idle state exception when service not in stopped state
        - [x] idle state on idle()
    :return:
    """

    name = "base-service-1"
    base = BaseService(name)
    assert base.alias == name
    assert base.unique_name == '%s/%s' % (name, base.uuid)
    assert base.get_state() == BaseStates.Idle
    assert base.ready() is True  # ready == Idle

    greenlet = base.start()
    assert greenlet is not None
    assert base.get_state() == BaseStates.Starting
    assert base.ready() is False

    # exception should be thrown if state is started
    # and asking service to make itself idle.
    try:
        base.idle()
    except IdleActionException as ex:
        assert ex is not None

    base.stop()
    assert base.get_state() == BaseStates.Stopped

    # Try restarting the service, it will fail because it is not idle
    # In order to restart a service must be set to idle again.
    try:
        base.start()
        assert not True  # <-- should never get here
    except ServiceNotIdleException as ex:
        assert ex is not None

    # now set to idle
    base.idle()  # should not throw this time
    assert base.get_state() == BaseStates.Idle

    # not start, should work and not throw an exception
    base.start()
Esempio n. 3
0
def test_stop_service():
    service_alias = "test-1"
    manager = ServiceManager("service-manager-1")
    service_meta = ServiceMetaData(service_alias)
    test_service = BaseService(service_meta.alias)

    # Add service
    assert manager.add_service(test_service, service_meta) == True
    assert manager.get_service_count() is 1

    # Stop
    assert manager.stop_service(service_alias) == True
    assert manager.get_service_count() == 0

    # Stop Again will fail
    assert manager.stop_service(service_alias) == False
def test_baseservice_service_directory():
    """
    Base service tests for:
        - [x] name on init
        - [x] idle state on init
        - [x] started state on start()
        - [x] ready() alias for idle state
        - [x] stopped state on stop()
        - [x] idle state exception when service not in stopped state
        - [x] idle state on idle()
    :return:
    """

    name = "base-service-1"
    base = BaseService(name)
    assert base.alias == name
    assert base.unique_name == '%s/%s' % (name, base.uuid)
    assert base.get_state() == BaseStates.Idle
    assert base.ready() is True  # ready == Idle

    greenlet = base.start()
    assert greenlet is not None
    assert base.get_state() == BaseStates.Starting
    assert base.ready() is False

    # exception should be thrown if state is started
    # and asking service to make itself idle.
    try:
        base.idle()
    except IdleActionException as ex:
        assert ex is not None

    base.stop()
    assert base.get_state() == BaseStates.Stopped
    base.idle()  # should not throw this time
    assert base.get_state() == BaseStates.Idle