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()
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()
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' })
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' })