class TestLoginOperations(unittest.TestCase): def setUp(self): self.g = Geocaching() def test_login(self): with self.subTest("bad username"): with self.assertRaises(LoginFailedException): self.g.login("", "") with self.subTest("good username"): self.g.login(_username, _password) with self.subTest("good username already logged"): self.g.login(_username, _password) with self.subTest("bad username automatic logout"): with self.assertRaises(LoginFailedException): self.g.login("", "") def test_login_needed(self): with self.assertRaises(NotLoggedInException): self.g.load_cache("GC41FJC") def test_get_logged_user(self): self.g.login(_username, _password) self.assertEqual(self.g.get_logged_user(), _username) def test_logout(self): self.g.login(_username, _password) self.g.logout() self.assertIsNone(self.g.get_logged_user()) def tearDown(self): self.g.logout()