From f92253f63f0eccdd62013e75581865ac02abef0c Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 10 Sep 2026 08:45:01 +0000 Subject: [PATCH] test: Add tests for `_is_elevated` in `netsleuth.netinfo` Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com> --- tests/test_netinfo.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/tests/test_netinfo.py b/tests/test_netinfo.py index 7134cd9..b3215ba 100644 --- a/tests/test_netinfo.py +++ b/tests/test_netinfo.py @@ -2,6 +2,7 @@ from __future__ import annotations from netsleuth.models import Capabilities from netsleuth.netinfo import ( + _is_elevated, choose_latency_backend, choose_trace_backend, degradation_note, @@ -334,3 +335,45 @@ def test_collect_local_net_no_network(mock_resolvers, mock_gw, mock_stats, mock_ assert result.default_gateway_v6 is None assert result.is_dual_stack is False assert result.cgnat is False + +@patch("netsleuth.netinfo.platform.system") +@patch("netsleuth.netinfo.ctypes.windll", create=True) +def test_is_elevated_windows_admin(mock_windll, mock_system): + mock_system.return_value = "Windows" + mock_windll.shell32.IsUserAnAdmin.return_value = 1 + assert _is_elevated() is True + +@patch("netsleuth.netinfo.platform.system") +@patch("netsleuth.netinfo.ctypes.windll", create=True) +def test_is_elevated_windows_not_admin(mock_windll, mock_system): + mock_system.return_value = "Windows" + mock_windll.shell32.IsUserAnAdmin.return_value = 0 + assert _is_elevated() is False + +@patch("netsleuth.netinfo.platform.system") +@patch("netsleuth.netinfo.ctypes.windll", create=True) +def test_is_elevated_windows_exception(mock_windll, mock_system): + mock_system.return_value = "Windows" + mock_windll.shell32.IsUserAnAdmin.side_effect = Exception("Test") + assert _is_elevated() is False + +@patch("netsleuth.netinfo.platform.system") +@patch("netsleuth.netinfo.os") +def test_is_elevated_unix_root(mock_os, mock_system): + mock_system.return_value = "Linux" + mock_os.geteuid.return_value = 0 + assert _is_elevated() is True + +@patch("netsleuth.netinfo.platform.system") +@patch("netsleuth.netinfo.os") +def test_is_elevated_unix_not_root(mock_os, mock_system): + mock_system.return_value = "Linux" + mock_os.geteuid.return_value = 1000 + assert _is_elevated() is False + +@patch("netsleuth.netinfo.platform.system") +@patch("netsleuth.netinfo.os") +def test_is_elevated_unix_no_geteuid(mock_os, mock_system): + mock_system.return_value = "Linux" + del mock_os.geteuid + assert _is_elevated() is False