Skip to content

Commit

Permalink
Add test case that check that invalid tokens are deleted
Browse files Browse the repository at this point in the history
  • Loading branch information
FrankApiyo committed Oct 17, 2022
1 parent a90e8d3 commit fb6f249
Showing 1 changed file with 34 additions and 1 deletion.
35 changes: 34 additions & 1 deletion onadata/libs/tests/utils/test_api_export_tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
from collections import OrderedDict, defaultdict

import mock
import datetime
from google.oauth2.credentials import Credentials
from celery.backends.rpc import BacklogLimitExceeded
from django.http import Http404
from django.test.utils import override_settings
Expand All @@ -13,12 +15,14 @@

from onadata.apps.logger.models import XForm
from onadata.apps.main.tests.test_base import TestBase
from onadata.apps.main.models import TokenStorageModel
from onadata.apps.viewer.models.export import Export, ExportConnectionError
from onadata.libs.exceptions import ServiceUnavailable
from onadata.libs.utils.api_export_tools import (
get_async_response, process_async_export,
response_for_format,
get_metadata_format
get_metadata_format,
_get_google_credential
)
from onadata.libs.utils.async_status import SUCCESSFUL, status_msg

Expand All @@ -40,6 +44,35 @@ def _create_old_export(self, xform, export_type, options, filename=None):
self.export = Export.objects.filter(
xform=xform, export_type=export_type)[0]

def test_get_google_credentials(self):
"""
Test create_async_export deletes credential when invalid
"""
request = self.factory.get('/')
request.user = self.user
request.query_params = {}
request.data = {}
credential = {
"refresh_token": "refresh-token",
"token_uri": "https://oauth2.googleapis.com/token",
"client_id": "client-id",
"client_secret": "client-secret",
"scopes": ["https://www.googleapis.com/auth/drive.file"],
"expiry": datetime.datetime(2016, 8, 18, 12, 43, 30, 316792)
}
t = TokenStorageModel(id=self.user,
credential=Credentials(**credential, token=None))
t.save()
response = _get_google_credential(request)

self.assertEqual(response.status_code, 302)
self.assertEqual(
response.url[:71],
'https://accounts.google.com/o/oauth2/auth?response_type=code&client_id='
)
with self.assertRaises(TokenStorageModel.DoesNotExist):
TokenStorageModel.objects.get(id=self.user)

# pylint: disable=invalid-name
def test_process_async_export_creates_new_export(self):
"""
Expand Down

0 comments on commit fb6f249

Please sign in to comment.