def test_end_of_line(self): # we want to make sure we don't generate windows-style EOL article = Article() article.set_metadata("title", u"ok") article["body"] = u"hey\r\nyou" result = article.render() self.assertTrue(u"\r\n" not in result) self.assertTrue(u"hey\nyou" in result)
def create_article_or_page(): data = dict(request.POST.decode()) category = u'resultats' page = None for key, val in data.items(): if key.startswith(u'cat_add_'): category = key[len(u'cat_add_'):] break if key.startswith(u'page_add_'): page = key[len(u'page_add_'):] break title = data.get('title', u'').strip() if len(title) == 0: # nope app.add_alert(_('A title is required.')) if page is None: redirect('/category/%s' % category) else: redirect('/page/%s' % page) return article = Article() article['title'] = data['title'] article['body'] = data.get('content', DEFAULT_BODY) date = datetime.datetime.now() article.set_metadata('date', date) if page is None: # it's an article cat_info = dict(app.vars['categories'])[category] article.set_metadata('category', cat_info['title']) path = cat_info['path'] else: # it's a page path = dict(app.vars['pages'])[page]['path'] # XXX we might want to put it under the year directory i = 1 filename = slugify(article['title']) fullfilename = os.path.join(path, filename) while os.path.exists(fullfilename + '.rst'): fullfilename += str(i) i += 1 with open(fullfilename + '.rst', 'w') as f: f.write(article.render().encode('utf8')) emit(EVENT_CREATED_CONTENT, article_path=fullfilename) if page is None: redirect('/category/%s/%s' % (category, filename + '.rst')) else: redirect('/page/%s/%s' % (page, filename + '.rst'))