diff --git a/splunklib/binding.py b/splunklib/binding.py index ce2c7ce0..4a4098df 100644 --- a/splunklib/binding.py +++ b/splunklib/binding.py @@ -507,13 +507,13 @@ def get_cookies(self): return self.http._cookies def has_cookies(self): - """Returns true if the ``HttpLib`` member of this instance has at least - one cookie stored. + """Returns true if the ``HttpLib`` member of this instance has auth token stored. - :return: ``True`` if there is at least one cookie, else ``False`` + :return: ``True`` if there is auth token present, else ``False`` :rtype: ``bool`` """ - return len(self.get_cookies()) > 0 + auth_token_key = "splunkd_" + return any(auth_token_key in key for key in self.get_cookies().keys()) # Shared per-context request headers @property diff --git a/tests/test_binding.py b/tests/test_binding.py index 3bce0de1..c101b19c 100755 --- a/tests/test_binding.py +++ b/tests/test_binding.py @@ -586,23 +586,22 @@ def test_got_updated_cookie_with_get(self): self.assertTrue(found) def test_login_fails_with_bad_cookie(self): - new_context = binding.connect(**{"cookie": "bad=cookie"}) # We should get an error if using a bad cookie try: - new_context.get("apps/local") + new_context = binding.connect(**{"cookie": "bad=cookie"}) self.fail() except AuthenticationError as ae: - self.assertEqual(str(ae), "Request failed: Session is not logged in.") + self.assertEqual(str(ae), "Login failed.") def test_login_with_multiple_cookies(self): - bad_cookie = 'bad=cookie' - new_context = binding.connect(**{"cookie": bad_cookie}) # We should get an error if using a bad cookie + new_context = binding.Context() + new_context.get_cookies().update({"bad": "cookie"}) try: - new_context.get("apps/local") + new_context = new_context.login() self.fail() except AuthenticationError as ae: - self.assertEqual(str(ae), "Request failed: Session is not logged in.") + self.assertEqual(str(ae), "Login failed.") # Bring in a valid cookie now for key, value in self.context.get_cookies().items(): new_context.get_cookies()[key] = value diff --git a/tests/test_service.py b/tests/test_service.py index 2aaed448..34afef2c 100755 --- a/tests/test_service.py +++ b/tests/test_service.py @@ -214,15 +214,14 @@ def test_login_fails_with_bad_cookie(self): service2 = client.Service() self.assertEqual(len(service2.get_cookies()), 0) service2.get_cookies().update(bad_cookie) - service2.login() self.assertEqual(service2.get_cookies(), {'bad': 'cookie'}) # Should get an error with a bad cookie try: - service2.apps.get() + service2.login() self.fail() except AuthenticationError as ae: - self.assertEqual(str(ae), "Request failed: Session is not logged in.") + self.assertEqual(str(ae), "Login failed.") def test_autologin_with_cookie(self): self.service.login() @@ -264,14 +263,13 @@ def test_login_with_multiple_cookies(self): self.assertIsNotNone(self.service.get_cookies()) service2 = client.Service(**{"cookie": bad_cookie}) - service2.login() # Should get an error with a bad cookie try: - service2.apps.get() + service2.login() self.fail() except AuthenticationError as ae: - self.assertEqual(str(ae), "Request failed: Session is not logged in.") + self.assertEqual(str(ae), "Login failed.") # Add on valid cookies, and try to use all of them service2.get_cookies().update(self.service.get_cookies())