Exemplo n.º 1
0
    def test_api__try_whoami_enpoint__err_401__user_is_not_active(self):
        dbsession = get_tm_session(self.session_factory, transaction.manager)
        admin = dbsession.query(models.User) \
            .filter(models.User.email == '*****@*****.**') \
            .one()
        uapi = UserApi(
            current_user=admin,
            session=dbsession,
            config=self.app_config,
        )
        gapi = GroupApi(
            current_user=admin,
            session=dbsession,
            config=self.app_config,
        )
        groups = [gapi.get_one_with_name('users')]
        test_user = uapi.create_user(
            email='*****@*****.**',
            password='******',
            name='bob',
            groups=groups,
            timezone='Europe/Paris',
            do_save=True,
            do_notify=False,
        )
        uapi.save(test_user)
        uapi.disable(test_user)
        transaction.commit()
        self.testapp.authorization = ('Basic', ('*****@*****.**', 'pass'))

        res = self.testapp.get('/api/v2/sessions/whoami', status=401)
Exemplo n.º 2
0
    def setUp(self):
        logger.debug(self, 'Setup Test...')
        self.config = testing.setUp(
            settings={
                'sqlalchemy.url': 'sqlite:///:memory:',
                'user.auth_token.validity': '604800',
                'depot_storage_dir': '/tmp/test/depot',
                'depot_storage_name': 'test',
                'preview_cache_dir': '/tmp/test/preview_cache',
            })
        self.config.include('tracim.models')
        DepotManager._clear()
        DepotManager.configure(
            'test', {'depot.backend': 'depot.io.memory.MemoryFileStorage'})
        settings = self.config.get_settings()
        self.app_config = CFG(settings)
        from tracim.models import (
            get_engine,
            get_session_factory,
            get_tm_session,
        )

        self.engine = get_engine(settings)
        session_factory = get_session_factory(self.engine)

        self.session = get_tm_session(session_factory, transaction.manager)
        self.init_database()
Exemplo n.º 3
0
 def __call__(self, environ, start_response):
     # TODO - G.M - 18-05-2018 - This code should not create trouble
     # with thread and database, this should be verify.
     # see https://github.com/tracim/tracim_backend/issues/62
     tm = transaction.manager
     dbsession = get_tm_session(self.session_factory, tm)
     environ['tracim_tm'] = tm
     environ['tracim_dbsession'] = dbsession
     environ['tracim_cfg'] = self.app_config
     app = self._application(environ, start_response)
     dbsession.close()
     return app
Exemplo n.º 4
0
 def init_database(self, settings):
     with transaction.manager:
         dbsession = get_tm_session(self.session_factory,
                                    transaction.manager)
         try:
             fixtures_loader = FixturesLoader(dbsession, self.app_config)
             fixtures_loader.loads(self.fixtures)
             transaction.commit()
             print("Database initialized.")
         except IntegrityError:
             print('Warning, there was a problem when adding default data'
                   ', it may have already been added:')
             import traceback
             print(traceback.format_exc())
             transaction.abort()
             print('Database initialization failed')
Exemplo n.º 5
0
def set_html_document_slug_to_legacy(session_factory) -> None:
    """
    Simple function to help some functional test. This modify "html-documents"
    type content in database to legacy "page" slug.
    :param session_factory: session factory of the test
    :return: Nothing.
    """
    dbsession = get_tm_session(session_factory, transaction.manager)
    content_query = dbsession.query(ContentRevisionRO).filter(
        ContentRevisionRO.type == 'page').filter(
            ContentRevisionRO.content_id == 6)  # nopep8
    assert content_query.count() == 0
    html_documents_query = dbsession.query(ContentRevisionRO).filter(
        ContentRevisionRO.type == 'html-documents')  # nopep8
    html_documents_query.update({ContentRevisionRO.type: 'page'})
    transaction.commit()
    assert content_query.count() > 0
Exemplo n.º 6
0
    def test_api__try_login_enpoint__err_401__user_not_activated(self):
        dbsession = get_tm_session(self.session_factory, transaction.manager)
        admin = dbsession.query(models.User) \
            .filter(models.User.email == '*****@*****.**') \
            .one()
        uapi = UserApi(
            current_user=admin,
            session=dbsession,
            config=self.app_config,
        )
        gapi = GroupApi(
            current_user=admin,
            session=dbsession,
            config=self.app_config,
        )
        groups = [gapi.get_one_with_name('users')]
        test_user = uapi.create_user(
            email='*****@*****.**',
            password='******',
            name='bob',
            groups=groups,
            timezone='Europe/Paris',
            do_save=True,
            do_notify=False,
        )
        uapi.save(test_user)
        uapi.disable(test_user)
        transaction.commit()

        params = {
            'email': '*****@*****.**',
            'password': '******',
        }
        res = self.testapp.post_json(
            '/api/v2/sessions/login',
            params=params,
            status=403,
        )
Exemplo n.º 7
0
    def setUp(self):
        logger._logger.setLevel('WARNING')
        logger.debug(self, 'Setup Test...')
        self.settings = plaster.get_settings(self.config_uri,
                                             self.config_section)
        self.config = testing.setUp(settings=self.settings)
        self.config.include('tracim.models')
        DepotManager._clear()
        DepotManager.configure(
            'test', {'depot.backend': 'depot.io.memory.MemoryFileStorage'})
        settings = self.config.get_settings()
        self.app_config = CFG(settings)
        from tracim.models import (
            get_engine,
            get_session_factory,
            get_tm_session,
        )

        self.engine = get_engine(settings)
        session_factory = get_session_factory(self.engine)

        self.session = get_tm_session(session_factory, transaction.manager)
        self.init_database()
Exemplo n.º 8
0
 def run_app(self):
     self.session = get_tm_session(self.session_factory,
                                   transaction.manager)