Example #1
0
def test_gen_request(mocker):
    mock_addr = 'mock_addr:1234'
    sched = mocker.Mock()
    framework = {'failover_timeout': 0}
    master = mocker.Mock()
    driver = MesosSchedulerDriver(sched, framework, master)
    driver._master = mock_addr
    req = driver.gen_request()
    parser = HttpParser(0)
    assert len(req) == parser.execute(req, len(req))
    assert parser.is_headers_complete()
    assert parser.get_method() == 'POST'
    assert parser.get_url() == '/api/v1/scheduler'

    assert parser.is_partial_body()
    body = parser.recv_body()
    result = json.loads(body.decode('utf-8'))
    assert result['type'] == 'SUBSCRIBE'
    assert result['subscribe'] == {'framework_info': framework}

    headers = {k.upper(): v for k, v in parser.get_headers().items()}
    assert headers == {
        'HOST': mock_addr,
        'CONTENT-TYPE': 'application/json',
        'ACCEPT': 'application/json',
        'CONNECTION': 'close',
        'CONTENT-LENGTH': str(len(body))
    }

    assert parser.is_message_complete()
Example #2
0
def test_gen_request(mocker):
    mock_addr = 'mock_addr:1234'
    sched = mocker.Mock()
    framework = {
        'failover_timeout': 0
    }
    master = mocker.Mock()
    driver = MesosSchedulerDriver(sched, framework, master)
    driver._master = mock_addr
    req = driver.gen_request()
    parser = HttpParser(0)
    assert len(req) == parser.execute(req, len(req))
    assert parser.is_headers_complete()
    assert parser.get_method() == 'POST'
    assert parser.get_url() == '/api/v1/scheduler'

    assert parser.is_partial_body()
    body = parser.recv_body()
    result = json.loads(body.decode('utf-8'))
    assert result['type'] == 'SUBSCRIBE'
    assert result['subscribe'] == {
        'framework_info': framework
    }

    headers = {k.upper(): v for k, v in parser.get_headers().items()}
    assert headers == {
        'HOST': mock_addr,
        'CONTENT-TYPE': 'application/json',
        'ACCEPT': 'application/json',
        'CONNECTION': 'close',
        'CONTENT-LENGTH': str(len(body))
    }

    assert parser.is_message_complete()
Example #3
0
def test_on_subscribed(mocker):
    sched = mocker.Mock()
    framework = {}
    master = mocker.Mock()
    driver = MesosSchedulerDriver(sched, framework, master)
    driver.version = '1.0.0'
    driver._started = True
    driver._master = 'mock_addr:12345'
    framework_id = {'value': str(uuid.uuid4())}

    event = {
        'type': 'SUBSCRIBED',
        'subscribed': {
            'framework_id': framework_id
        }
    }
    driver.on_event(event)
    sched.registered.assert_called_once_with(driver, framework_id, {
        'hostname': 'mock_addr',
        'port': 12345,
        'version': '1.0.0'
    })
Example #4
0
def test_on_subscribed(mocker):
    sched = mocker.Mock()
    framework = {}
    master = mocker.Mock()
    driver = MesosSchedulerDriver(sched, framework, master)
    driver.version = '1.0.0'
    driver._started = True
    driver._master = 'mock_addr:12345'
    framework_id = {
        'value': str(uuid.uuid4())
    }

    event = {
        'type': 'SUBSCRIBED',
        'subscribed': {
            'framework_id': framework_id
        }
    }
    driver.on_event(event)
    sched.registered.assert_called_once_with(driver, framework_id, {
        'hostname': 'mock_addr',
        'port': 12345,
        'version': '1.0.0'
    })