def test_update_from_dict_empty(self): dic = {} store = TokenStore() store.update_from_dict(dic) self.assertIsNone(store.access_token) self.assertIsNone(store.refresh_token) self.assertIsNone(store._timestamp)
def test_update_from_dict_no_ts(self): dic = { _ACCESS_TOKEN: 'a', _REFRESH_TOKEN: 'b', } store = TokenStore() store.update_from_dict(dic) self.assertEqual('a', store.access_token) self.assertEqual('b', store.refresh_token) self.assertIsNone(store._timestamp)
def test_update_from_dict(self): ts = datetime.datetime.utcnow() dic = { _ACCESS_TOKEN: 'a', _REFRESH_TOKEN: 'b', _KEY_TIMESTAMP: ts, } store = TokenStore() store.update_from_dict(dic) self.assertEqual('a', store.access_token) self.assertEqual('b', store.refresh_token) self.assertEqual(ts, store._timestamp)
def test_from_dict_ok(self): timestamp = datetime.datetime.utcnow() ts = TokenStore.from_dict({ _ACCESS_TOKEN: 'a', _REFRESH_TOKEN: 'b', _KEY_TIMESTAMP: timestamp }) self.assertEqual('a', ts.access_token) self.assertEqual('b', ts.refresh_token) self.assertEqual(timestamp, ts._timestamp)
def test_refresh_token_unknown_exception(self): class MyAllegroAuth(AuthorizationCodeAuth): def fetch_token(self) -> None: raise NotImplementedError() with patch.object(OAuth2Session, 'refresh_token', side_effect=Exception('UNKNOWN')): tested = MyAllegroAuth( ClientCodeStore('client_id', 'client_secret'), TokenStore(), 'redirect_uri') self.assertRaises(Exception, tested.refresh_token)
def test_refresh_token(self): class MyAllegroAuth(AuthorizationCodeAuth): def fetch_token(self) -> None: raise TokenError() with patch.object( OAuth2Session, 'refresh_token', side_effect=CustomOAuth2Error( error='invalid_token', description='Invalid refresh token: [SENSITIVE DATA]')): under_test = MyAllegroAuth( ClientCodeStore('client_id', 'client_secret'), TokenStore(), 'redirect_uri') try: under_test.refresh_token() except TokenError: buf = StringIO() with contextlib.redirect_stderr(buf): sys.excepthook(*sys.exc_info()) self.assertNotIn('[SENSITIVE DATA]', buf.getvalue()) else: self.fail()
def test_update_from_dict_none(self): store = TokenStore() self.assertRaises(AttributeError, lambda: store.update_from_dict(None))
def test_init(self): ts = TokenStore('a', 'b') self.assertEqual('a', ts.access_token) self.assertEqual('b', ts.refresh_token)
def test_from_dict_empty(self): ts = TokenStore.from_dict({}) self.assertIsNone(ts.access_token) self.assertIsNone(ts.refresh_token)
def test_from_dict_invalid(self): ts = TokenStore.from_dict({'invalid_key': 'value'}) self.assertIsNone(ts.access_token) self.assertIsNone(ts.refresh_token)
def test_from_dict_ok(self): ts = TokenStore.from_dict({'access_token': 'a', 'refresh_token': 'b'}) self.assertEqual('a', ts.access_token) self.assertEqual('b', ts.refresh_token)
def test_from_dict_None(self): with self.assertRaises(ValueError): TokenStore.from_dict(None)
def test_set_refresh_token_updates_ts(self): ts = TokenStore() ts.refresh_token = 'a' self.assertIsNotNone(ts._timestamp)
def test_to_dict_empty(self): ts = TokenStore() self.assertDictEqual({}, ts.to_dict())
def test_init(self): timestamp = datetime.datetime.utcnow() ts = TokenStore('a', 'b', timestamp) self.assertEqual('a', ts.access_token) self.assertEqual('b', ts.refresh_token) self.assertEqual(timestamp, ts._timestamp)
def test_to_dict_access_tkn(self): ts = TokenStore() ts.access_token = 'a' dic = ts.to_dict() self.assertEqual('a', dic.get(_ACCESS_TOKEN)) self.assertIn(_KEY_TIMESTAMP, dic.keys())
def test_to_dict_refresh_tkn(self): ts = TokenStore() ts.refresh_token = 'a' dic = ts.to_dict() self.assertEqual('a', dic.get(_REFRESH_TOKEN)) self.assertIn(_KEY_TIMESTAMP, dic.keys())