예제 #1
0
def test_positive_delete(name, module_org):
    """Create gpg key with valid name and valid gpg key via file
    import then delete it

    :id: 9640cabc-e0c3-41a0-b4de-99b06bf51c02

    :parametrized: yes

    :expectedresults: gpg key is deleted

    :CaseImportance: Critical
    """
    gpg_key = make_content_credential({
        'name': name,
        'organization-id': module_org.id
    })
    result = ContentCredential.exists(
        {'organization-id': module_org.id},
        (search_key, gpg_key[search_key]),
    )
    assert gpg_key[search_key] == result[search_key]
    ContentCredential.delete({'name': name, 'organization-id': module_org.id})
    result = ContentCredential.exists(
        {'organization-id': module_org.id},
        (search_key, gpg_key[search_key]),
    )
    assert (len(result)) == 0
예제 #2
0
def test_positive_delete_key_for_product_with_repos(module_org):
    """Create gpg key with valid name and valid gpg key via file
    import then associate it with custom product that has more than one
    repository then delete it

    :id: 3848441f-746a-424c-afc3-4d5a15888af8

    :expectedresults: gpg key is associated with product and its
        repositories during creation but removed from the product and the
        repositories after deletion

    :CaseLevel: Integration
    """
    # Create product, repositories and gpg key
    product = make_product({'organization-id': module_org.id})
    repos = [
        make_repository({'product-id': product['id']})
        for _ in range(gen_integer(2, 5))
    ]
    gpg_key = make_content_credential({'organization-id': module_org.id})
    # Associate gpg key with a product
    Product.update({
        'gpg-key': gpg_key['name'],
        'id': product['id'],
        'organization-id': module_org.id
    })
    # Verify gpg key was associated with product and its repositories
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    assert product['gpg']['gpg-key'] == gpg_key['name']
    for repo in repos:
        repo = Repository.info({'id': repo['id']})
        assert repo['gpg-key'].get('name') == gpg_key['name']
    # Delete the gpg key
    ContentCredential.delete({
        'name': gpg_key['name'],
        'organization-id': module_org.id
    })
    # Verify gpg key was actually deleted
    with pytest.raises(CLIReturnCodeError):
        ContentCredential.info({
            'id': gpg_key['id'],
            'organization-id': module_org.id
        })
    # Verify gpg key was disassociated from the product and its
    # repositories
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    assert product['gpg']['gpg-key'] != gpg_key['name']
    for repo in repos:
        repo = Repository.info({'id': repo['id']})
        assert repo['gpg-key'].get('name') != gpg_key['name']
예제 #3
0
def test_positive_delete_key_for_product_with_repo(module_org):
    """Create gpg key with valid name and valid gpg key via file
    import then associate it with custom product that has one repository
    then delete it

    :id: 1e98e588-8b5d-475c-ad84-5d566df5619c

    :expectedresults: gpg key is associated with product but and its
        repository during creation but removed from product and repository
        after deletion

    :CaseLevel: Integration
    """
    # Create product, repository and gpg key
    product = make_product({'organization-id': module_org.id})
    repo = make_repository({'product-id': product['id']})
    gpg_key = make_content_credential({'organization-id': module_org.id})
    # Associate gpg key with a product
    Product.update({
        'gpg-key': gpg_key['name'],
        'id': product['id'],
        'organization-id': module_org.id
    })
    # Verify gpg key was associated both with product and its repository
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    repo = Repository.info({'id': repo['id']})
    assert product['gpg']['gpg-key'] == gpg_key['name']
    assert repo['gpg-key'].get('name') == gpg_key['name']
    # Delete the gpg key
    ContentCredential.delete({
        'name': gpg_key['name'],
        'organization-id': module_org.id
    })
    # Verify gpg key was actually deleted
    with pytest.raises(CLIReturnCodeError):
        ContentCredential.info({
            'id': gpg_key['id'],
            'organization-id': module_org.id
        })
    # Verify gpg key was disassociated from the product and its repository
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    repo = Repository.info({'id': repo['id']})
    assert product['gpg']['gpg-key'] != gpg_key['name']
    assert repo['gpg-key'].get('name') != gpg_key['name']
예제 #4
0
def test_positive_delete_key_for_repo_from_product_with_repos(module_org):
    """Create gpg key with valid name and valid gpg key via file
    import then associate it to repository from custom product that has
    more than one repository then delete the key

    :id: 7d6a278b-1063-4e72-bc32-ca60bd17bb84

    :expectedresults: gpg key is associated with a single repository but
        not the product during creation and removed from repository after
        deletion

    :CaseLevel: Integration
    """
    # Create product, repositories and gpg key
    product = make_product({'organization-id': module_org.id})
    repos = []
    for _ in range(gen_integer(2, 5)):
        repos.append(make_repository({'product-id': product['id']}))
    gpg_key = make_content_credential({'organization-id': module_org.id})
    # Associate gpg key with a repository
    Repository.update({
        'gpg-key': gpg_key['name'],
        'id': repos[0]['id'],
        'organization-id': module_org.id
    })
    # Verify gpg key was associated with the repository
    repos[0] = Repository.info({'id': repos[0]['id']})
    assert repos[0]['gpg-key']['name'] == gpg_key['name']
    # Delete the gpg key
    ContentCredential.delete({
        'name': gpg_key['name'],
        'organization-id': module_org.id
    })
    # Verify gpg key was actually deleted
    with pytest.raises(CLIReturnCodeError):
        ContentCredential.info({
            'id': gpg_key['id'],
            'organization-id': module_org.id
        })
    # Verify gpg key is not associated with any repository or the product
    # itself
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    assert product['gpg']['gpg-key'] != gpg_key['name']
    for repo in repos:
        repo = Repository.info({'id': repo['id']})
        assert repo['gpg-key'].get('name') != gpg_key['name']
예제 #5
0
def test_positive_delete_key_for_repo_from_product_with_repo(module_org):
    """Create gpg key with valid name and valid gpg key via file
    import then associate it to repository from custom product that has
    one repository then delete the key

    :id: 2555b08f-8cee-4e84-8f4d-9b46743f5758

    :expectedresults: gpg key is associated with the single repository but
        not the product during creation and was removed from repository
        after deletion

    :CaseLevel: Integration
    """
    # Create product, repository and gpg key
    product = make_product({'organization-id': module_org.id})
    repo = make_repository({'product-id': product['id']})
    gpg_key = make_content_credential({'organization-id': module_org.id})
    # Associate gpg key with a repository
    Repository.update({
        'gpg-key': gpg_key['name'],
        'id': repo['id'],
        'organization-id': module_org.id
    })
    # Verify gpg key was associated with the repository but not with the
    # product
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    repo = Repository.info({'id': repo['id']})
    assert product['gpg']['gpg-key'] != gpg_key['name']
    assert repo['gpg-key'].get('name') == gpg_key['name']
    # Delete the gpg key
    ContentCredential.delete({
        'name': gpg_key['name'],
        'organization-id': module_org.id
    })
    # Verify gpg key was actually deleted
    with pytest.raises(CLIReturnCodeError):
        ContentCredential.info({
            'id': gpg_key['id'],
            'organization-id': module_org.id
        })
    # Verify gpg key was disassociated from the repository
    repo = Repository.info({'id': repo['id']})
    assert repo['gpg-key'].get('name') != gpg_key['name']
예제 #6
0
def test_positive_delete_key_for_empty_product(module_org):
    """Create gpg key with valid name and valid gpg key via file
    import then associate it with empty (no repos) custom product
    then delete it

    :id: 238a80f8-983a-4fd5-a168-6ef9442e2b1c

    :expectedresults: gpg key is associated with product during creation
        but removed from product after deletion

    :CaseLevel: Integration
    """
    # Create a product and a gpg key
    gpg_key = make_content_credential({'organization-id': module_org.id})
    product = make_product({
        'gpg-key-id': gpg_key['id'],
        'organization-id': module_org.id
    })
    # Verify gpg key was associated
    assert product['gpg']['gpg-key'] == gpg_key['name']
    # Delete the gpg key
    ContentCredential.delete({
        'name': gpg_key['name'],
        'organization-id': module_org.id
    })
    # Verify gpg key was actually deleted
    with pytest.raises(CLIReturnCodeError):
        ContentCredential.info({
            'id': gpg_key['id'],
            'organization-id': module_org.id
        })
    # Verify gpg key was disassociated from the product
    product = Product.info({
        'id': product['id'],
        'organization-id': module_org.id
    })
    assert product['gpg']['gpg-key'] != gpg_key['name']