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
Ejemplo n.º 8
0
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)
Ejemplo n.º 9
0
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)