Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion kcidev/libs/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import json
import logging
import os
import platform
import sys
from importlib.metadata import PackageNotFoundError, version

Expand All @@ -20,8 +21,20 @@
except PackageNotFoundError:
kcidev_version = "unknown"


def client_os_family() -> str:
system = platform.system()
if system == "Darwin":
return "macOS"
if system == "Linux" or system == "Windows":
return system
return "unknown"


kcidev_session = requests.Session()
kcidev_session.headers["User-Agent"] = f"kci-dev/{kcidev_version}"
kcidev_session.headers["User-Agent"] = (
f"kci-dev/{kcidev_version} ({client_os_family()})"
)

# Default connect and read timeouts for HTTP operations.
HTTP_TIMEOUT = (10, 60)
Expand Down
22 changes: 20 additions & 2 deletions tests/test_kcidev.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import git
import pytest

from kcidev.libs.common import kcidev_session, kcidev_version
from kcidev.libs.common import client_os_family, kcidev_session, kcidev_version
from kcidev.subcommands.config import add_config


Expand Down Expand Up @@ -869,9 +869,27 @@ def test_kcidev_results_build_with_real_id():
pass


@pytest.mark.parametrize(
("system", "expected"),
[
("Linux", "Linux"),
("Darwin", "macOS"),
("Windows", "Windows"),
("", "unknown"),
("FreeBSD", "unknown"),
],
)
def test_client_os_family(monkeypatch, system, expected):
monkeypatch.setattr("kcidev.libs.common.platform.system", lambda: system)
assert client_os_family() == expected


def test_kcidev_session_user_agent():
ua = kcidev_session.headers["User-Agent"]
assert ua == f"kci-dev/{kcidev_version}"
assert re.fullmatch(
rf"kci-dev/{re.escape(kcidev_version)} \((Linux|macOS|Windows|unknown)\)",
ua,
)


def test_kcidev_version_from_metadata():
Expand Down
Loading