예제 #1
0
    def setUpClass(cls):
        from tutorial.models.meta import Base
        from tutorial.models import (
            User,
            Page,
            get_tm_session,
        )
        from tutorial import main

        settings = {
            'sqlalchemy.url': 'sqlite://',
            'auth.secret': 'seekrit',
        }
        app = main({}, **settings)
        cls.testapp = TestApp(app)

        session_factory = app.registry['dbsession_factory']
        cls.engine = session_factory.kw['bind']
        Base.metadata.create_all(bind=cls.engine)

        with transaction.manager:
            dbsession = get_tm_session(session_factory, transaction.manager)
            editor = User(name='editor', role='editor')
            editor.set_password('editor')
            basic = User(name='basic', role='basic')
            basic.set_password('basic')
            page1 = Page(name='FrontPage', data='This is the front page')
            page1.creator = editor
            page2 = Page(name='BackPage', data='This is the back page')
            page2.creator = basic
            dbsession.add_all([basic, editor, page1, page2])
예제 #2
0
파일: views.py 프로젝트: slacy/pyramid
def add_page(request):
    name = request.matchdict['pagename']
    if 'form.submitted' in request.params:
        session = DBSession()
        body = request.params['body']
        page = Page(name, body)
        session.add(page)
        return HTTPFound(
            location=route_url('view_page', request, pagename=name))
    save_url = route_url('add_page', request, pagename=name)
    page = Page('', '')
    return dict(page=page, save_url=save_url)
    def wikipage_add(self):
        form = self.wiki_form.render()

        if 'submit' in self.request.params:
            controls = self.request.POST.items()
            try:
                appstruct = self.wiki_form.validate(controls)
            except deform.ValidationFailure as e:
                # Form is NOT valid
                return dict(form=e.render())

            # Add a new page to the database
            new_title = appstruct['title']
            new_body = appstruct['body']
            DBSession.add(Page(title=new_title, body=new_body))

            # Get the new ID and redirect
            page = DBSession.query(Page).filter_by(title=new_title).one()
            new_uid = page.uid

            # Now visit new page
            url = self.request.route_url('wikipage_view', uid=new_uid)
            return HTTPFound(url)

        return dict(form=form)
예제 #4
0
 def test_it_notsubmitted(self):
     from tutorial.models import Page
     _registerRoutes(self.config)
     request = testing.DummyRequest()
     request.matchdict = {'pagename': 'abc'}
     page = Page('abc', 'hello')
     self.session.add(page)
     info = self._callFUT(request)
     self.assertEqual(info['page'], page)
     self.assertEqual(info['save_url'], 'http://example.com/abc/edit_page')
예제 #5
0
def _initTestingDB():
    from sqlalchemy import create_engine
    from tutorial.models import (DBSession, Page, Base)
    engine = create_engine('sqlite://')
    Base.metadata.create_all(engine)
    DBSession.configure(bind=engine)
    with transaction.manager:
        model = Page('FrontPage', 'This is the front page')
        DBSession.add(model)
    return DBSession
예제 #6
0
 def test_it_submitted(self):
     from tutorial.models import Page
     _registerRoutes(self.config)
     request = testing.DummyRequest({'form.submitted':True,
                                     'body':'Hello yo!'})
     request.matchdict = {'pagename':'abc'}
     page = Page('abc', 'hello')
     self.session.add(page)
     response = self._callFUT(request)
     self.assertEqual(response.location, 'http://example.com/abc')
     self.assertEqual(page.data, 'Hello yo!')
    def setUpClass(cls):
        from tutorial.models.meta import Base
        from tutorial.models import (
            User,
            Page,
            get_tm_session,
        )
        from tutorial import main

        settings = {
            'sqlalchemy.url': 'sqlite://',
            'auth.secret': 'seekrit',
        }
        app = main({}, **settings)
        cls.testapp = webtest.TestApp(app)

        session_factory = app.registry['dbsession_factory']
        cls.engine = session_factory.kw['bind']
        Base.metadata.create_all(bind=cls.engine)

        with transaction.manager:
            dbsession = get_tm_session(session_factory, transaction.manager)
            editor = User(name='editor', role='editor')
            editor.set_password('editor')
            basic = User(name='basic', role='basic')
            basic.set_password('basic')
            page1 = Page(name='FrontPage', data='This is the front page')
            page1.creator = editor
            page2 = Page(name='BackPage', data='This is the back page')
            page2.creator = basic
            dbsession.add_all([basic, editor, page1, page2])
예제 #8
0
def add_page(context, request):
    name = request.subpath[0]
    if 'form.submitted' in request.params:
        body = request.params['body']
        page = Page(body)
        page.__name__ = name
        page.__parent__ = context
        context[name] = page
        return HTTPFound(location=resource_url(page, request))
    save_url = resource_url(context, request, 'add_page', name)
    page = Page('')
    page.__name__ = name
    page.__parent__ = context
    return dict(page=page, save_url=save_url)
예제 #9
0
 def test_it(self):
     from tutorial.models import Page
     request = testing.DummyRequest()
     request.matchdict['pagename'] = 'IDoExist'
     page = Page('IDoExist', 'Hello CruelWorld IDoExist')
     self.session.add(page)
     _registerRoutes(self.config)
     info = self._callFUT(request)
     self.assertEqual(info['page'], page)
     self.assertEqual(
         info['content'], '<div class="document">\n'
         '<p>Hello <a href="http://example.com/add_page/CruelWorld">'
         'CruelWorld</a> '
         '<a href="http://example.com/IDoExist">'
         'IDoExist</a>'
         '</p>\n</div>\n')
     self.assertEqual(info['edit_url'],
                      'http://example.com/IDoExist/edit_page')
예제 #10
0
파일: views.py 프로젝트: RyoAbe/pyramid
def add_page(context, request):
    name = request.subpath[0]
    if 'form.submitted' in request.params:
        body = request.params['body']
        page = Page(body)
        page.__name__ = name
        page.__parent__ = context
        context[name] = page
        return HTTPFound(location = model_url(page, request))
    save_url = model_url(context, request, 'add_page', name)
    page = Page('')
    page.__name__ = name
    page.__parent__ = context
    return dict(page = page, save_url = save_url)
예제 #11
0
파일: views.py 프로젝트: csenger/pyramid
def add_page(context, request):
    name = request.subpath[0]
    if 'form.submitted' in request.params:
        body = request.params['body']
        page = Page(body)
        page.__name__ = name
        page.__parent__ = context
        context[name] = page
        return HTTPFound(location = resource_url(page, request))
    save_url = resource_url(context, request, 'add_page', name)
    page = Page('')
    page.__name__ = name
    page.__parent__ = context

    logged_in = authenticated_userid(request)

    return dict(page = page, save_url = save_url, logged_in = logged_in)
예제 #12
0
파일: views.py 프로젝트: rick446/pyramid
def add_page(context, request):
    name = request.subpath[0]
    if "form.submitted" in request.params:
        body = request.params["body"]
        page = Page(body)
        page.__name__ = name
        page.__parent__ = context
        context[name] = page
        return HTTPFound(location=model_url(page, request))
    save_url = model_url(context, request, "add_page", name)
    page = Page("")
    page.__name__ = name
    page.__parent__ = context

    logged_in = authenticated_userid(request)

    return dict(page=page, save_url=save_url, logged_in=logged_in)
예제 #13
0
 def makePage(self, name, data, creator):
     from tutorial.models import Page
     return Page(name=name, data=data, creator=creator)