Ejemplo n.º 1
0
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',
Ejemplo n.º 2
0
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:
Ejemplo n.º 3
0
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')
Ejemplo n.º 4
0
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':
Ejemplo n.º 5
0
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