Example #1
0
    def setUp(self):
        DbFixturesMixin.setUp(self)
        WebPySetupMixin.setUp(self)
#        super(AppSetupMixin, self).setUp()

        # Set the dev flag in Config to False.
        Config.data['dev'] = False

        # Set up the routes
        app = web.application(main.ROUTES, globals())
        SessionHolder.set(web.session.Session(app, web.session.DBStore(self.db, 'web_session')))

        # Finally, create a test app
        self.app = TestApp(app.wsgifunc())

        class ObjectDict (dict):
            def __getattr__(self, key):
                if key in self:
                    return self[key]
                else:
                    raise AttributeError(key)

            def __setattr__(self, key, value):
                self[key] = value
                return value

        self.session = ObjectDict()
        self.session.session_id = 1

        self.__real_get_session = SessionHolder.get_session
        SessionHolder.get_session = Mock(return_value=self.session)
Example #2
0
    def test_set(self):
        """
        Test `set` methods.

        """
        data = {'testing': True}
        return_data = SessionHolder.set(data)

        self.assertEqual(return_data, data)
        self.assertIsInstance(return_data, dict)
    def test_set(self):
        """
        Test `set` methods.

        """
        data = {'testing': True}
        return_data = SessionHolder.set(data)

        self.assertEqual(return_data, data)
        self.assertIsInstance(return_data, dict)
Example #4
0
    def test_get(self):
        """
        Test `get_session` methods.

        """
        data = {'testing': True}
        SessionHolder.session = data
        return_data = SessionHolder.get_session()

        self.assertEqual(return_data, data)
        self.assertIsInstance(return_data, dict)
    def test_get(self):
        """
        Test `get_session` methods.

        """
        data = {'testing': True}
        SessionHolder.session = data
        return_data = SessionHolder.get_session()

        self.assertEqual(return_data, data)
        self.assertIsInstance(return_data, dict)
Example #6
0
    def __init__(self):

        log.info("---------- %s %s --------------------------------------------------------------------------" % (web.ctx.method, web.ctx.path))

        # database
        self.db = Controller.get_db()

        # memcache
        self.cache = memcache.Client([Config.get('memcache')['address'] + ":" + str(Config.get('memcache')['port'])])

        # session
        self.session = SessionHolder.get_session()
        log.info("SESSION: %s " % self.session)

        # template data
        self.template_data = {}

        # set mode
        self.template_data['app_mode'] = self.appMode = Config.get('app_mode')

        self.template_data['app_env'] = self.appEnv = Config.get('app_env')

        #set media root
        self.template_data['media_root'] = Config.get('media')['root']

        #set city-specific map options
        self.template_data['map'] = Config.get('map')

        #set the supported features
        self.template_data['features'] = Config.get('features')

        # user
        self.setUserObject()

        # beta redirect
        if (self.appMode == 'beta' and not self.user):
            path = web.ctx.path.split('/')
            allowed = ['beta',

                       'login',

                       'join',

                       'tou',
                       'logout',
                       # Twitter related paths
                       'twitter',
                       # 'twitter/login', 'twitter/create', 'twitter/callback', 'twitter/disconnect'

                       # Facebook paths - not relevant until FB app is updated
                       'facebook',
                       # 'facebook/login', 'facebook/create', 'facebook/callback', 'facebook/disconnect'

                       # Remove the following facebook paths once app is updated
                       # 'login_facebook',
                       # 'login_facebook_create',
                       # 'disconnect_facebook',

                       ]

            if (path[1] not in allowed):
                self.redirect('/beta')
Example #7
0
    def __init__(self):

        log.info(
            "---------- %s %s --------------------------------------------------------------------------"
            % (web.ctx.method, web.ctx.path))

        # database
        self.db = Controller.get_db()

        # memcache
        self.cache = memcache.Client([
            Config.get('memcache')['address'] + ":" +
            str(Config.get('memcache')['port'])
        ])

        # session
        self.session = SessionHolder.get_session()
        log.info("SESSION: %s " % self.session)

        # template data
        self.template_data = {}

        # set mode
        self.template_data['app_mode'] = self.appMode = Config.get('app_mode')

        self.template_data['app_env'] = self.appEnv = Config.get('app_env')

        #set media root
        self.template_data['media_root'] = Config.get('media')['root']

        #set city-specific map options
        self.template_data['map'] = Config.get('map')

        #set the supported features
        self.template_data['features'] = Config.get('features')

        # user
        self.setUserObject()

        # beta redirect
        if (self.appMode == 'beta' and not self.user):
            path = web.ctx.path.split('/')
            allowed = [
                'beta',
                'login',
                'join',
                'tou',
                'logout',
                # Twitter related paths
                'twitter',
                # 'twitter/login', 'twitter/create', 'twitter/callback', 'twitter/disconnect'

                # Facebook paths - not relevant until FB app is updated
                'facebook',
                # 'facebook/login', 'facebook/create', 'facebook/callback', 'facebook/disconnect'

                # Remove the following facebook paths once app is updated
                # 'login_facebook',
                # 'login_facebook_create',
                # 'disconnect_facebook',
            ]

            if (path[1] not in allowed):
                self.redirect('/beta')