コード例 #1
0
def test_preserved_name_of_dict(all_modes_kwargs):
    obj = {'metadata': {'name': 'preexisting-name'}}

    kopf.harmonize_naming(obj, name='provided-name', **all_modes_kwargs)

    assert 'name' in obj['metadata']
    assert 'generateName' not in obj['metadata']
    assert obj['metadata']['name'] == 'preexisting-name'
コード例 #2
0
def test_prefixed_name_of_dict(relaxed_kwargs):
    obj = {}

    kopf.harmonize_naming(obj, name='provided-name', **relaxed_kwargs)

    assert 'name' not in obj['metadata']
    assert 'generateName' in obj['metadata']
    assert obj['metadata']['generateName'] == 'provided-name-'
コード例 #3
0
def test_assigned_name_of_dict(strict_kwargs):
    obj = {}

    kopf.harmonize_naming(obj, name='provided-name', **strict_kwargs)

    assert 'name' in obj['metadata']
    assert 'generateName' not in obj['metadata']
    assert obj['metadata']['name'] == 'provided-name'
コード例 #4
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_preserved_name_of_dict(forcedness, strictness, obj1):
    obj1 = copy.deepcopy(obj1)
    kopf.harmonize_naming(obj1,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert obj1['metadata'].get('name') != 'provided-name'
    assert obj1['metadata'].get('generateName') != 'provided-name'
コード例 #5
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_assignment_of_nonstrict_name_of_kubernetes_model(
        forcedness, strictness, kubernetes_model):
    kubernetes_model.metadata = None
    kopf.harmonize_naming(kubernetes_model,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert kubernetes_model.metadata.name is None
    assert kubernetes_model.metadata.generate_name == 'provided-name-'
コード例 #6
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_assignment_of_nonstrict_name_of_dict(forcedness, strictness, obj1):
    obj1 = copy.deepcopy(obj1)
    kopf.harmonize_naming(obj1,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert 'name' not in obj1['metadata']
    assert 'generateName' in obj1['metadata']
    assert obj1['metadata']['generateName'] == 'provided-name-'
コード例 #7
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_preserved_names_of_pykube_object(forcedness, strictness,
                                          pykube_object, obj1):
    pykube_object.obj = copy.deepcopy(obj1)
    kopf.harmonize_naming(pykube_object,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert pykube_object.obj['metadata'].get('name') != 'provided-name'
    assert pykube_object.obj['metadata'].get('generateName') != 'provided-name'
コード例 #8
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_assignment_of_strict_name_of_pykube_object(forcedness, strictness,
                                                    pykube_object, obj1):
    pykube_object.obj = copy.deepcopy(obj1)
    kopf.harmonize_naming(pykube_object,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert pykube_object.obj['metadata'].get('name') == 'provided-name'
    assert pykube_object.obj['metadata'].get('generateName') is None
コード例 #9
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_overwriting_of_relaxed_name_of_kubernetes_model(
        forcedness, strictness, kubernetes_model, obj1):
    kubernetes_model.metadata.name = obj1.get('metadata', {}).get('name')
    kubernetes_model.metadata.generate_name = obj1.get('metadata',
                                                       {}).get('generateName')
    kopf.harmonize_naming(kubernetes_model,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert kubernetes_model.metadata.name is None
    assert kubernetes_model.metadata.generate_name == 'provided-name-'
コード例 #10
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_preserved_names_of_kubernetes_model(forcedness, strictness,
                                             kubernetes_model, obj1):
    kubernetes_model.metadata.name = obj1.get('metadata', {}).get('name')
    kubernetes_model.metadata.generate_name = obj1.get('metadata',
                                                       {}).get('generateName')
    kopf.harmonize_naming(kubernetes_model,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert kubernetes_model.metadata.name != 'provided-name'
    assert kubernetes_model.metadata.generate_name != 'provided-name'
コード例 #11
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_preserved_names_of_dicts(forcedness, strictness, multicls, obj1,
                                  obj2):
    obj1, obj2 = copy.deepcopy(obj1), copy.deepcopy(obj2)
    objs = multicls([obj1, obj2])
    kopf.harmonize_naming(objs,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert obj1['metadata'].get('name') != 'provided-name'
    assert obj2['metadata'].get('name') != 'provided-name'
    assert obj1['metadata'].get('generateName') != 'provided-name'
    assert obj2['metadata'].get('generateName') != 'provided-name'
コード例 #12
0
ファイル: test_name_harmonizing.py プロジェクト: nnazeer/kopf
def test_assignment_of_nonstrict_names_of_dicts(forcedness, strictness,
                                                multicls, obj1, obj2):
    obj1, obj2 = copy.deepcopy(obj1), copy.deepcopy(obj2)
    objs = multicls([obj1, obj2])
    kopf.harmonize_naming(objs,
                          name='provided-name',
                          **forcedness,
                          **strictness)
    assert 'name' not in obj1['metadata']
    assert 'name' not in obj2['metadata']
    assert 'generateName' in obj1['metadata']
    assert 'generateName' in obj2['metadata']
    assert obj1['metadata']['generateName'] == 'provided-name-'
    assert obj2['metadata']['generateName'] == 'provided-name-'
コード例 #13
0
def test_assigned_names_of_multiple_objects(strict_kwargs, multicls):
    obj1 = {'metadata': {'name': 'preexisting-name-1'}}
    obj2 = {'metadata': {'name': 'preexisting-name-2'}}
    objs = multicls([obj1, obj2])

    kopf.harmonize_naming(objs, name='provided-name', **strict_kwargs)

    assert 'name' in obj1['metadata']
    assert 'generateName' not in obj1['metadata']
    assert obj1['metadata']['name'] == 'preexisting-name-1'

    assert 'name' in obj2['metadata']
    assert 'generateName' not in obj2['metadata']
    assert obj2['metadata']['name'] == 'preexisting-name-2'
コード例 #14
0
def test_prefixed_names_of_multiple_objects(relaxed_kwargs, multicls):
    obj1 = {}
    obj2 = {}
    objs = multicls([obj1, obj2])

    kopf.harmonize_naming(objs, name='provided-name', **relaxed_kwargs)

    assert 'name' not in obj1['metadata']
    assert 'generateName' in obj1['metadata']
    assert obj1['metadata']['generateName'] == 'provided-name-'

    assert 'name' not in obj2['metadata']
    assert 'generateName' in obj2['metadata']
    assert obj2['metadata']['generateName'] == 'provided-name-'
コード例 #15
0
def test_when_unset_for_name_harmonization():
    with pytest.raises(LookupError) as e:
        kopf.harmonize_naming([])
    assert 'Owner must be set explicitly' in str(e.value)
コード例 #16
0
def test_when_empty_for_name_harmonization(owner):
    owner._replace_with({})
    with pytest.raises(LookupError) as e:
        kopf.harmonize_naming([])
    assert 'Name must be set explicitly' in str(e.value)
コード例 #17
0
def test_when_set_for_name_harmonization(owner):
    obj = {}
    kopf.harmonize_naming(obj)
    assert obj['metadata']['generateName'].startswith(OWNER_NAME)
コード例 #18
0
def test_in_name_harmonization():
    with pytest.raises(TypeError) as e:
        kopf.harmonize_naming(object(), 'x')
    assert "K8s object class is not supported" in str(e.value)