@@ -33,6 +33,49 @@ def test_session_from_url():
3333 assert s .hostname == 'example.com'
3434 assert s ._settings ['protocol' ] == 'http'
3535
36+
37+ def test_from_authinfo (tmpdir_factory ):
38+ filename = str (tmpdir_factory .mktemp ('tmp' ).join ('authinfo' ))
39+
40+ HOSTNAME = 'example.com'
41+ USERNAME = 'BlackKnight'
42+ PASSWORD = 'iaminvincible!'
43+
44+ with open (filename , 'w' ) as f :
45+ f .write ('machine %s login %s password %s'
46+ % (HOSTNAME , USERNAME , PASSWORD ))
47+
48+ # Get username & password from matching hostname
49+ with mock .patch ('sasctl.core.Session.get_token' ):
50+ s = Session ('http://example.com' , authinfo = filename )
51+ assert s .hostname == HOSTNAME
52+ assert s .username == USERNAME
53+ assert s ._settings ['password' ] == PASSWORD
54+
55+
56+ with open (filename , 'w' ) as f :
57+ f .write ('host %s user %s password %s'
58+ % (HOSTNAME , USERNAME , PASSWORD ))
59+
60+ with mock .patch ('sasctl.core.Session.get_token' ):
61+ s = Session ('http://example.com' , authinfo = filename )
62+ assert s .hostname == HOSTNAME
63+ assert s .username == USERNAME
64+ assert s ._settings ['password' ] == PASSWORD
65+
66+ with open (filename , 'w' ) as f :
67+ f .write ('host %s user %s password %s\n '
68+ % (HOSTNAME , 'Arthur' , 'kingofthebrittons' ))
69+ f .write ('host %s user %s password %s\n '
70+ % (HOSTNAME , USERNAME , PASSWORD ))
71+
72+ with mock .patch ('sasctl.core.Session.get_token' ):
73+ s = Session ('http://example.com' , username = USERNAME , authinfo = filename )
74+ assert s .hostname == HOSTNAME
75+ assert s .username == USERNAME
76+ assert s ._settings ['password' ] == PASSWORD
77+
78+
3679def test_new_session (missing_packages ):
3780 HOST = 'example.com'
3881 USERNAME = 'user'
0 commit comments