Skip to content

Commit c282acc

Browse files
authored
Merge pull request #449 from splunk/set-cookie-issue-438
Set cookie issue 438
2 parents 8881cd8 + 368f936 commit c282acc

File tree

3 files changed

+14
-17
lines changed

3 files changed

+14
-17
lines changed

splunklib/binding.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -507,13 +507,13 @@ def get_cookies(self):
507507
return self.http._cookies
508508

509509
def has_cookies(self):
510-
"""Returns true if the ``HttpLib`` member of this instance has at least
511-
one cookie stored.
510+
"""Returns true if the ``HttpLib`` member of this instance has auth token stored.
512511
513-
:return: ``True`` if there is at least one cookie, else ``False``
512+
:return: ``True`` if there is auth token present, else ``False``
514513
:rtype: ``bool``
515514
"""
516-
return len(self.get_cookies()) > 0
515+
auth_token_key = "splunkd_"
516+
return any(auth_token_key in key for key in self.get_cookies().keys())
517517

518518
# Shared per-context request headers
519519
@property

tests/test_binding.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -586,23 +586,22 @@ def test_got_updated_cookie_with_get(self):
586586
self.assertTrue(found)
587587

588588
def test_login_fails_with_bad_cookie(self):
589-
new_context = binding.connect(**{"cookie": "bad=cookie"})
590589
# We should get an error if using a bad cookie
591590
try:
592-
new_context.get("apps/local")
591+
new_context = binding.connect(**{"cookie": "bad=cookie"})
593592
self.fail()
594593
except AuthenticationError as ae:
595-
self.assertEqual(str(ae), "Request failed: Session is not logged in.")
594+
self.assertEqual(str(ae), "Login failed.")
596595

597596
def test_login_with_multiple_cookies(self):
598-
bad_cookie = 'bad=cookie'
599-
new_context = binding.connect(**{"cookie": bad_cookie})
600597
# We should get an error if using a bad cookie
598+
new_context = binding.Context()
599+
new_context.get_cookies().update({"bad": "cookie"})
601600
try:
602-
new_context.get("apps/local")
601+
new_context = new_context.login()
603602
self.fail()
604603
except AuthenticationError as ae:
605-
self.assertEqual(str(ae), "Request failed: Session is not logged in.")
604+
self.assertEqual(str(ae), "Login failed.")
606605
# Bring in a valid cookie now
607606
for key, value in self.context.get_cookies().items():
608607
new_context.get_cookies()[key] = value

tests/test_service.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -214,15 +214,14 @@ def test_login_fails_with_bad_cookie(self):
214214
service2 = client.Service()
215215
self.assertEqual(len(service2.get_cookies()), 0)
216216
service2.get_cookies().update(bad_cookie)
217-
service2.login()
218217
self.assertEqual(service2.get_cookies(), {'bad': 'cookie'})
219218

220219
# Should get an error with a bad cookie
221220
try:
222-
service2.apps.get()
221+
service2.login()
223222
self.fail()
224223
except AuthenticationError as ae:
225-
self.assertEqual(str(ae), "Request failed: Session is not logged in.")
224+
self.assertEqual(str(ae), "Login failed.")
226225

227226
def test_autologin_with_cookie(self):
228227
self.service.login()
@@ -264,14 +263,13 @@ def test_login_with_multiple_cookies(self):
264263
self.assertIsNotNone(self.service.get_cookies())
265264

266265
service2 = client.Service(**{"cookie": bad_cookie})
267-
service2.login()
268266

269267
# Should get an error with a bad cookie
270268
try:
271-
service2.apps.get()
269+
service2.login()
272270
self.fail()
273271
except AuthenticationError as ae:
274-
self.assertEqual(str(ae), "Request failed: Session is not logged in.")
272+
self.assertEqual(str(ae), "Login failed.")
275273

276274
# Add on valid cookies, and try to use all of them
277275
service2.get_cookies().update(self.service.get_cookies())

0 commit comments

Comments
 (0)