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])
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)
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')
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
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])
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)
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')
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)
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)
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)
def makePage(self, name, data, creator): from tutorial.models import Page return Page(name=name, data=data, creator=creator)