import datetime from urllib.parse import urlencode from flask import Blueprint, jsonify import jwt from mock import patch from modules.base import handlers from modules.data import get_models from testing import TrottoTestCase User = get_models('users').User class TestHandlers(TrottoTestCase): blueprints_under_test = [handlers.routes] def test_login_endpoint__no_upstream_host_header(self): response = self.testapp.get('/_/auth/login', headers={'Host': 'trot.to'}) expected_oauth_redirect_uri = urlencode( {'redirect_uri': 'https://trot.to/_/auth/oauth2_callback'}) self.assertEqual(302, response.status_int) self.assertIn(expected_oauth_redirect_uri, response.headers['Location']) def test_login_endpoint__upstream_host_header(self): response = self.testapp.get('/_/auth/login',
from mock import patch from modules.data import get_models from modules.users import helpers models = get_models('users') from testing import TrottoTestCase class TestHelperFunctions(TrottoTestCase): database = 'postgres' def test_get_users_by_organization(self): users = [ models.User(id=1, email='*****@*****.**', organization='googs.com', domain_type='corporate'), models.User(id=2, email='*****@*****.**', organization='alph.com', domain_type='corporate'), models.User(id=3, email='*****@*****.**', organization='googs.com', domain_type='corporate') ] for u in users:
from mock import patch from modules.data import get_models from modules.routing import handlers from testing import TrottoTestCase ShortLink = get_models('links').ShortLink class TestRedirectHandlerWithoutLogin(TrottoTestCase): blueprints_under_test = [handlers.routes] def test_get__not_logged_in__normal_redirect_from_browser_extension(self): response = self.testapp.get('/benefits?s=crx') self.assertEqual(302, response.status_int) self.assertEqual( 'http://localhost/_/auth/login?redirect_to=%2Fbenefits%3Fs%3Dcrx', response.location) def test_get__not_logged_in__http_bare_host_request_coming_from_browser_extension( self): response = self.testapp.get('/benefits?s=crx&sc=http') self.assertEqual(302, response.status_int) self.assertEqual('http://benefits?tr=ot', response.location) def test_get__not_logged_in__https_bare_host_request_coming_from_browser_extension( self): response = self.testapp.get('/benefits?s=crx&sc=https')
import re from urllib.parse import urlparse, urlencode import validators from validators.utils import ValidationFailure from modules.data import get_models from modules.organizations.utils import get_organization_id_for_email from shared_helpers import config from shared_helpers.encoding import convert_entity_to_dict from shared_helpers.events import enqueue_event models = get_models('links') class LinkCreationException(Exception): pass def _matches_pattern(provided_shortpath, candidate_match): provided_shortpath_components = provided_shortpath.split('/') candidate_match_components = candidate_match.split('/') if len(provided_shortpath_components) != len(candidate_match_components): return None matching_formatting_args = [] for i in range(len(provided_shortpath_components)): if candidate_match_components[i] == '%s':
import base64 import datetime import json from freezegun import freeze_time import jwt from mock import patch, call from modules.data import get_models from modules.links import handlers from testing import TrottoTestCase ShortLink = get_models('links').ShortLink User = get_models('users').User class TestHandlers(TrottoTestCase): blueprints_under_test = [handlers.routes] @patch('modules.links.helpers.create_short_link') def test_create_link(self, mock_create_short_link): mock_shortlink = ShortLink(id=123, created=datetime.datetime(2018, 10, 1), modified=datetime.datetime(2018, 11, 1), organization='googs.com', owner='*****@*****.**', shortpath='there', destination_url='http://example.com/there') mock_create_short_link.return_value = mock_shortlink