Как имитировать вызов Python-Jenkins в FastAPIPython

Программы на Python
Ответить
Anonymous
 Как имитировать вызов Python-Jenkins в FastAPI

Сообщение Anonymous »

У меня есть простое приложение FastAPI, которое использует python-jenkins для выполнения пользовательских вызовов нашего экземпляра Jenkins.
Вот несколько примеров:
< pre class="lang-py Prettyprint-override">

Код: Выделить всё

@app.get("/jenkins_data")
async def get_jenkins_nodes() -> list:
server = jenkins.Jenkins(url, user, key)

try:
nodes = server.get_nodes()
return get_nodes_and_states(nodes)
except jenkins.JenkinsException:
nodes = []
return nodes
Или у меня может быть что-то вроде этого:

Код: Выделить всё

@app.get("/job/{node_name}")
def get_current_jenkins_job(node_name: str) -> str:
server = jenkins.Jenkins(url, user, key)
node = server.get_node_info(f"{node_name}", 2)
if node["executors"][0]["currentExecutable"] is not None:
display_name = node["executors"][0]["currentExecutable"]["displayName"]
else:
display_name = "No Jobs Running"
return display_name
Как мне имитировать объект Jenkin, чтобы правильно протестировать эти методы с помощью pytest? Я хочу написать тест, который заставит Jenkins вызывать jenkins.JenkinsException в первом примере или имитировать его, чтобы установить "currentExecutable" для второго.
Спасибо! п>

Подробнее здесь: https://stackoverflow.com/questions/792 ... in-fastapi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»