async def test_patching_without_inconsistencies(resource, settings, caplog, assert_logs, version_api, aresponses, hostname, resp_mocker, patch, response): caplog.set_level(logging.DEBUG) url = resource.get_url(namespace='ns1', name='name1') patch_mock = resp_mocker(return_value=aiohttp.web.json_response(response)) aresponses.add(hostname, url, 'patch', patch_mock) body = Body({'metadata': {'namespace': 'ns1', 'name': 'name1'}}) logger = LocalObjectLogger(body=body, settings=settings) await patch_and_check( resource=resource, body=body, patch=Patch(patch), logger=logger, ) assert_logs([ "Patching with:", ], prohibited=[ "Patching failed with inconsistencies:", ])
async def test_patching_with_disappearance( resource, namespace, settings, caplog, assert_logs, version_api, aresponses, hostname, resp_mocker): caplog.set_level(logging.DEBUG) patch = {'spec': {'x': 'y'}, 'status': {'s': 't'}} # irrelevant url = resource.get_url(namespace=namespace, name='name1') patch_mock = resp_mocker(return_value=aresponses.Response(status=404)) aresponses.add(hostname, url, 'patch', patch_mock) body = Body({'metadata': {'namespace': namespace, 'name': 'name1'}}) logger = LocalObjectLogger(body=body, settings=settings) await patch_and_check( resource=resource, body=body, patch=Patch(patch), logger=logger, ) assert_logs([ "Patching with:", "Patching was skipped: the object does not exist anymore", ], prohibited=[ "inconsistencies" ])
async def test_skipping_when_local_with_all_levels(settings, caplog, logstream, logfn, event_queue, event_queue_loop): logger = LocalObjectLogger(body=OBJ1, settings=settings) logger_fn = getattr(logger, logfn) logger_fn("hello %s", "world") assert event_queue.qsize() == 0 assert caplog.messages == ["hello world"]
async def test_skipping_when_disabled(settings, caplog, logstream, logfn, event_queue, event_queue_loop): logger = LocalObjectLogger(body=OBJ1, settings=settings) logger_fn = getattr(logger, logfn) settings.posting.enabled = False settings.posting.level = 0 logger_fn("hello %s", "world") assert event_queue.qsize() == 0 assert caplog.messages == ["hello world"]
def cluster_record(settings, cluster_body): handler = logging.handlers.BufferingHandler(capacity=100) logger = LocalObjectLogger(body=cluster_body, settings=settings) # to avoid k8s-posting logger.logger.addHandler(handler) logger.info("hello") return handler.buffer[0]