Exemplo n.º 1
1
    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")
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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"}')