Update tests/test_utils_elog.py
Run CI Tests / test (push) Successful in 1m44s

This commit is contained in:
2025-08-14 10:40:51 +02:00
parent f98b83db28
commit 4c457544be
+16 -42
View File
@@ -2,6 +2,7 @@ import os
import sys
import tempfile
import requests
from elog import LogbookAuthenticationError
import elog
import pytest
from getpass import getuser, getpass
@@ -10,23 +11,6 @@ from slic.utils.elog import Elog, get_default_elog_instance
from unittest.mock import patch
from bs4 import BeautifulSoup
# Helper pour extraire uniquement le mot de passe comme dans la vraie fonction
def get_default_elog_password(url, **kwargs):
kwargs.setdefault("user", getuser())
user = kwargs["user"]
if "password" not in kwargs:
try:
home = Path.home()
fn = home / ".elog_psi"
with fn.open() as f:
pw = f.read().strip()
except Exception:
print(f"Enter elog password for user: {user}")
pw = getpass()
kwargs["password"] = pw
return kwargs["password"], kwargs["user"]
def get_test_elog():
return Elog("http://localhost:8080/demo", user="robot", password="testpassword")
@@ -36,18 +20,16 @@ def test_get_default_elog_instance_with_direct_password_and_real_check():
user = "robot"
password = "testpassword"
elog_instance, returned_user = get_default_elog_instance(url, user=user, password=password)
try:
elog_instance, returned_user = get_default_elog_instance(url, user=user, password=password)
except Exception as e:
pytest.fail(f"elog.open() raised an unexpected exception: {e}")
assert returned_user == user
assert hasattr(elog_instance, "post")
pw, user_returned = get_default_elog_password(url, user=user, password=password)
try:
elog.open(url, user=user_returned, password=pw)
except Exception as e:
pytest.fail(f"elog.open() raised an unexpected exception: {e}")
@patch("slic.utils.elog.getpass")
@patch("slic.utils.elog.Path.home")
def test_get_default_elog_instance_asks_password_and_opens(mock_home, mock_getpass):
@@ -57,18 +39,14 @@ def test_get_default_elog_instance_asks_password_and_opens(mock_home, mock_getpa
url = "http://localhost:8080/demo"
user = "robot"
elog_instance, returned_user = get_default_elog_instance(url, user=user)
try:
elog_instance, returned_user = get_default_elog_instance(url, user=user)
except Exception as e:
pytest.fail(f"elog.open() raised an unexpected exception: {e}")
assert returned_user == user
assert hasattr(elog_instance, "post")
pw, user_returned = get_default_elog_password(url, user=user)
try:
elog.open(url, user=user_returned, password=pw)
except Exception as e:
pytest.fail(f"elog.open() raised an unexpected exception: {e}")
@patch("slic.utils.elog.getpass")
@patch("slic.utils.elog.getuser")
@@ -88,18 +66,14 @@ def test_get_default_elog_with_path_home(mock_home, mock_getuser, mock_getpass):
url = "http://localhost:8080/demo"
try:
elog_instance, returned_user = get_default_elog_instance(url)
try:
elog_instance, returned_user = get_default_elog_instance(url)
except Exception as e:
pytest.fail(f"elog.open() raised an unexpected exception: {e}")
assert returned_user == fake_user
assert hasattr(elog_instance, "post")
pw, user_returned = get_default_elog_password(url)
try:
elog.open(url, user=user_returned, password=pw)
except Exception as e:
pytest.fail(f"elog.open() raised an unexpected exception: {e}")
finally:
pw_file.unlink(missing_ok=True)
tmp_home.rmdir()
@@ -109,7 +83,7 @@ def test_get_default_elog_instance_with_wrong_password():
user = "robot"
wrong_password = "wrongpassword"
with pytest.raises(LogbookAuthenticationError):
with pytest.raises(elog.LogbookAuthenticationError):
get_default_elog_instance(url, user=user, password=wrong_password)