def test_pod_log(client: lightkube.Client): result = ['line1\n', 'line2\n', 'line3\n'] content = "".join(result) respx.get("https://localhost:9443/api/v1/namespaces/default/pods/test/log").respond(content=content) lines = list(client.log('test')) assert lines == result respx.get("https://localhost:9443/api/v1/namespaces/default/pods/test/log?follow=true").respond( content=content) lines = list(client.log('test', follow=True)) assert lines == result respx.get("https://localhost:9443/api/v1/namespaces/default/pods/test/log?tailLines=3").respond( content=content) lines = list(client.log('test', tail_lines=3)) assert lines == result respx.get("https://localhost:9443/api/v1/namespaces/default/pods/test/log?since=30×tamps=true").respond( content=content) lines = list(client.log('test', since=30, timestamps=True)) assert lines == result respx.get("https://localhost:9443/api/v1/namespaces/default/pods/test/log?container=bla").respond( content=content) lines = list(client.log('test', container="bla")) assert lines == result
def test_pod_apis(obj_name): client = Client() # list kube-system namespace pods = [pod.metadata.name for pod in client.list(Pod, namespace='kube-system')] assert len(pods) > 0 assert any(name.startswith('metrics-server') for name in pods) # create a pod pod = client.create(create_pod(obj_name, "while true;do echo 'this is a test';sleep 5; done")) try: assert pod.metadata.name == obj_name assert pod.metadata.namespace == client.namespace assert pod.status.phase wait_pod(client, pod) # read pod logs for l in client.log(obj_name, follow=True): assert l == 'this is a test\n' break finally: # delete the pod client.delete(Pod, obj_name)