This commit is contained in:
+16
-42
@@ -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)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user