33import os
44from lufus .browse_freely import open_url_non_root
55
6+
67class TestBrowseFreely (unittest .TestCase ):
78 def setUp (self ):
89 self .url = "https://github.com/Hogjects/Lufus"
@@ -12,9 +13,9 @@ def setUp(self):
1213 def test_open_url_non_root_as_regular_user (self , mock_webbrowser , mock_geteuid ):
1314 # Simulate regular user (UID 1000)
1415 mock_geteuid .return_value = 1000
15-
16+
1617 open_url_non_root (self .url )
17-
18+
1819 # Should fallback to standard webbrowser.open
1920 mock_webbrowser .assert_called_once_with (self .url )
2021
@@ -25,32 +26,29 @@ def test_open_url_non_root_as_regular_user(self, mock_webbrowser, mock_geteuid):
2526 def test_open_url_as_root_via_pkexec (self , mock_getpwuid , mock_popen , mock_env_get , mock_geteuid ):
2627 # Simulate root (UID 0)
2728 mock_geteuid .return_value = 0
28-
29+
2930 # Mock environment variables
3031 def side_effect (key , default = None ):
31- env = {
32- "PKEXEC_UID" : "1000" ,
33- "DISPLAY" : ":0" ,
34- "XDG_RUNTIME_DIR" : "/run/user/1000"
35- }
32+ env = {"PKEXEC_UID" : "1000" , "DISPLAY" : ":0" , "XDG_RUNTIME_DIR" : "/run/user/1000" }
3633 return env .get (key , default )
34+
3735 mock_env_get .side_effect = side_effect
38-
36+
3937 # Mock pwd info
4038 mock_user = MagicMock ()
4139 mock_user .pw_name = "raphael"
4240 mock_getpwuid .return_value = mock_user
43-
41+
4442 open_url_non_root (self .url )
45-
43+
4644 # Verify subprocess.Popen was called with runuser
4745 args , kwargs = mock_popen .call_args
4846 cmd = args [0 ]
4947 self .assertEqual (cmd [0 ], "runuser" )
5048 self .assertEqual (cmd [2 ], "raphael" )
5149 self .assertIn ("xdg-open" , cmd )
5250 self .assertIn (self .url , cmd )
53-
51+
5452 # Verify env passing
5553 env = kwargs .get ("env" , {})
5654 self .assertEqual (env .get ("DISPLAY" ), ":0" )
@@ -62,24 +60,23 @@ def side_effect(key, default=None):
6260 def test_open_url_as_root_via_sudo (self , mock_popen , mock_env_get , mock_geteuid ):
6361 # Simulate root (UID 0)
6462 mock_geteuid .return_value = 0
65-
63+
6664 # Mock environment variables (no PKEXEC_UID, but SUDO_USER)
6765 def side_effect (key , default = None ):
68- env = {
69- "SUDO_USER" : "raphael" ,
70- "DISPLAY" : ":0"
71- }
66+ env = {"SUDO_USER" : "raphael" , "DISPLAY" : ":0" }
7267 return env .get (key , default )
68+
7369 mock_env_get .side_effect = side_effect
74-
70+
7571 open_url_non_root (self .url )
76-
72+
7773 # Verify subprocess.Popen was called with runuser
7874 args , _ = mock_popen .call_args
7975 cmd = args [0 ]
8076 self .assertEqual (cmd [0 ], "runuser" )
8177 self .assertEqual (cmd [2 ], "raphael" )
8278 self .assertIn (self .url , cmd )
8379
80+
8481if __name__ == "__main__" :
8582 unittest .main ()
0 commit comments