def test_wait_failed(client: lightkube.Client): base_url = "https://localhost:9443/api/v1/nodes?fieldSelector=metadata.name%3Dtest-node&watch=true" respx.get(base_url).respond(content=make_wait_failed()) respx.get(base_url + "&resourceVersion=1").respond(content=make_wait_failed()) message = r"nodes/test-node has failure condition\(s\): TestCondition" with pytest.raises(lightkube.core.exceptions.ConditionError, match=message): client.wait(Node, "test-node", for_conditions=[], raise_for_conditions=["TestCondition"])
def test_wait_deleted(client: lightkube.Client): base_url = "https://localhost:9443/api/v1/nodes?fieldSelector=metadata.name%3Dtest-node&watch=true" respx.get(base_url).respond(content=make_wait_deleted()) respx.get(base_url + "&resourceVersion=1").respond(content=make_wait_deleted()) message = "nodes/test-node was unexpectedly deleted" with pytest.raises(lightkube.core.exceptions.ObjectDeleted, match=message): client.wait(Node, "test-node", for_conditions=["TestCondition"])
def test_wait_custom(client: lightkube.Client): base_url = "https://localhost:9443/apis/custom.org/v1/customs?fieldSelector=metadata.name%3Dcustom-resource&watch=true" Custom = create_global_resource( group="custom.org", version="v1", kind="Custom", plural="customs" ) respx.get(base_url).respond(content=make_wait_custom()) respx.get(base_url + "&resourceVersion=1").respond(content=make_wait_custom()) client.wait(Custom, "custom-resource", for_conditions=["TestCondition"])
def test_wait_namespaced(resource, for_condition, spec): client = Client() requested = resource.from_dict( {"metadata": {"generateName": "e2e-test-"}, "spec": spec} ) created = client.create(requested) client.wait( resource, created.metadata.name, for_conditions=[for_condition], ) client.delete(resource, created.metadata.name)
def test_wait_success(client: lightkube.Client): base_url = "https://localhost:9443/api/v1/nodes?fieldSelector=metadata.name%3Dtest-node&watch=true" respx.get(base_url).respond(content=make_wait_success()) respx.get(base_url + "&resourceVersion=1").respond(content=make_wait_success()) node = client.wait(Node, "test-node", for_conditions=["TestCondition"]) assert node.to_dict()["metadata"]["name"] == "test-node"
def test_wait_global(resource): client = Client() for obj in client.list(resource): client.wait(resource, obj.metadata.name, for_conditions=["Ready"])