1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
|
"""
System tests for `jenkinsapi.jenkins` module.
"""
import logging
import pytest
from jenkinsapi_tests.test_utils.random_strings import random_string
from jenkinsapi.credentials import Credentials
from jenkinsapi.credentials import UsernamePasswordCredential
from jenkinsapi.credentials import SecretTextCredential
from jenkinsapi.credential import SSHKeyCredential
log = logging.getLogger(__name__)
def test_get_credentials(jenkins):
creds = jenkins.credentials
assert isinstance(creds, Credentials) is True
def test_delete_inexistant_credential(jenkins):
with pytest.raises(KeyError):
creds = jenkins.credentials
del creds[random_string()]
def test_create_user_pass_credential(jenkins):
creds = jenkins.credentials
cred_descr = random_string()
cred_dict = {
"description": cred_descr,
"userName": "userName",
"password": "password",
}
creds[cred_descr] = UsernamePasswordCredential(cred_dict)
assert cred_descr in creds
cred = creds[cred_descr]
assert isinstance(cred, UsernamePasswordCredential) is True
assert cred.password == ""
assert cred.description == cred_descr
del creds[cred_descr]
def test_update_user_pass_credential(jenkins):
creds = jenkins.credentials
cred_descr = random_string()
cred_dict = {
"description": cred_descr,
"userName": "userName",
"password": "password",
}
creds[cred_descr] = UsernamePasswordCredential(cred_dict)
cred = creds[cred_descr]
cred.userName = "anotheruser"
cred.password = "password2"
cred = creds[cred_descr]
assert isinstance(cred, UsernamePasswordCredential) is True
assert cred.userName == "anotheruser"
assert cred.password == "password2"
def test_create_ssh_credential(jenkins):
creds = jenkins.credentials
cred_descr = random_string()
cred_dict = {
"description": cred_descr,
"userName": "userName",
"passphrase": "",
"private_key": "-----BEGIN RSA PRIVATE KEY-----",
}
creds[cred_descr] = SSHKeyCredential(cred_dict)
assert cred_descr in creds
cred = creds[cred_descr]
assert isinstance(cred, SSHKeyCredential) is True
assert cred.description == cred_descr
del creds[cred_descr]
cred_dict = {
"description": cred_descr,
"userName": "userName",
"passphrase": "",
"private_key": "/tmp/key",
}
with pytest.raises(ValueError):
creds[cred_descr] = SSHKeyCredential(cred_dict)
cred_dict = {
"description": cred_descr,
"userName": "userName",
"passphrase": "",
"private_key": "~/.ssh/key",
}
with pytest.raises(ValueError):
creds[cred_descr] = SSHKeyCredential(cred_dict)
cred_dict = {
"description": cred_descr,
"userName": "userName",
"passphrase": "",
"private_key": "invalid",
}
with pytest.raises(ValueError):
creds[cred_descr] = SSHKeyCredential(cred_dict)
def test_delete_credential(jenkins):
creds = jenkins.credentials
cred_descr = random_string()
cred_dict = {
"description": cred_descr,
"userName": "userName",
"password": "password",
}
creds[cred_descr] = UsernamePasswordCredential(cred_dict)
assert cred_descr in creds
del creds[cred_descr]
assert cred_descr not in creds
def test_create_secret_text_credential(jenkins):
"""
Tests the creation of a secret text.
"""
creds = jenkins.credentials
cred_descr = random_string()
cred_dict = {"description": cred_descr, "secret": "newsecret"}
creds[cred_descr] = SecretTextCredential(cred_dict)
assert cred_descr in creds
cred = creds[cred_descr]
assert isinstance(cred, SecretTextCredential) is True
assert cred.secret is None
assert cred.description == cred_descr
del creds[cred_descr]
|