def test_preserved_namespace_of_dict(): obj = {'metadata': {'namespace': 'preexisting-namespace'}} kopf.adjust_namespace(obj, namespace='provided-namespace') assert 'namespace' in obj['metadata'] assert obj['metadata']['namespace'] == 'preexisting-namespace'
def test_assigned_namespace_of_dict(): obj = {} kopf.adjust_namespace(obj, namespace='provided-namespace') assert 'namespace' in obj['metadata'] assert obj['metadata']['namespace'] == 'provided-namespace'
def test_assigned_namespace_of_multiple_objects(multicls): obj1 = {} obj2 = {} objs = multicls([obj1, obj2]) kopf.adjust_namespace(objs, namespace='provided-namespace') assert 'namespace' in obj1['metadata'] assert obj1['metadata']['namespace'] == 'provided-namespace' assert 'namespace' in obj2['metadata'] assert obj2['metadata']['namespace'] == 'provided-namespace'
def test_preserved_namespace_of_multiple_objects(multicls): obj1 = {'metadata': {'namespace': 'preexisting-namespace-1'}} obj2 = {'metadata': {'namespace': 'preexisting-namespace-2'}} objs = multicls([obj1, obj2]) kopf.adjust_namespace(objs, namespace='provided-namespace') assert 'namespace' in obj1['metadata'] assert obj1['metadata']['namespace'] == 'preexisting-namespace-1' assert 'namespace' in obj2['metadata'] assert obj2['metadata']['namespace'] == 'preexisting-namespace-2'
def test_when_unset_for_namespace_adjustment(): with pytest.raises(LookupError) as e: kopf.adjust_namespace([]) assert 'Owner must be set explicitly' in str(e.value)
def test_when_set_for_namespace_adjustment(owner): obj = {} kopf.adjust_namespace(obj) assert obj['metadata']['namespace'] == OWNER_NAMESPACE
def test_when_empty_for_namespace_adjustment(owner): # An absent namespace means a cluster-scoped resource -- a valid case. obj = {} owner._replace_with({}) kopf.adjust_namespace(obj) assert obj['metadata']['namespace'] is None
def test_in_namepace_adjustment(): with pytest.raises(TypeError) as e: kopf.adjust_namespace(object(), 'x') assert "K8s object class is not supported" in str(e.value)
def test_when_empty_for_namespace_adjustment(owner): owner._replace_with({}) with pytest.raises(LookupError) as e: kopf.adjust_namespace([]) assert 'Namespace must be set explicitly' in str(e.value)