def test_facebook_token(self, _get_external_data, get_new_token): self.app.test_request_context().push() _get_external_data.return_value = FACEBOOK_GRAPH_DATA from rockpack.mainsite.services.oauth.api import FacebookUser long_lived_fb_token = "fdsuioncf3w8ryl38yb7y4eius" get_new_token.return_value = FacebookUser("facebook", long_lived_fb_token, 3600) user = self._new_user() token = uuid.uuid4().hex eu = FacebookUser("facebook", token, 3600) eu._user_data = FACEBOOK_GRAPH_DATA.copy() ExternalToken.update_token(user, eu) self.session.commit() e = ExternalToken.query.filter_by(external_token=long_lived_fb_token).one() self.assertEquals("facebook", e.external_system) self.assertEquals(user.username, e.user_rel.username) # test we can overwrite token new_token = uuid.uuid4().hex eu = FacebookUser("facebook", new_token, 172800) eu._user_data = FACEBOOK_GRAPH_DATA.copy() ExternalToken.update_token(user, eu) self.session.commit() e = ExternalToken.query.filter_by(user=user.id) self.assertEquals(1, e.count(), "only one token should exist") e = e.one() self.assertEquals(new_token, e.external_token, "saved token should match new token")
def test_invalid_token(self, _get_external_data): _get_external_data.return_value = FACEBOOK_GRAPH_DATA from rockpack.mainsite.services.oauth.api import FacebookUser eu = FacebookUser("handleaflet", "", 3600) with self.assertRaises(exceptions.InvalidExternalSystem): ExternalToken.update_token(None, eu)
def test_token_data(self, _get_external_data): data = FACEBOOK_GRAPH_DATA.copy() data["id"] = uuid.uuid4().hex _get_external_data.return_value = data from rockpack.mainsite.services.oauth.api import FacebookUser expires = datetime(2020, 1, 1, 0, 0, 0) eu = FacebookUser("facebook", "xxx123", expires, "read,write", {"meta": "data"}) user = self._new_user() ExternalToken.update_token(user, eu) self.session.commit() e = ExternalToken.query.filter_by(user=user.id).one() self.assertEquals(e.expires, expires) self.assertEquals(e.permissions, "read,write") self.assertEquals(e.meta, '{"meta": "data"}')