def main(argv=sys.argv): if len(argv) < 2: usage(argv) config_uri = argv[1] options = parse_vars(argv[2:]) setup_logging(config_uri) settings = get_appsettings(config_uri, options=options) engine = engine_from_config(settings, 'sqlalchemy.') DBSession.configure(bind=engine) Base.metadata.drop_all(engine) Base.metadata.create_all(engine) with transaction.manager: model = User(name=u'admin', password=u'admin') DBSession.add(model) from jinja2.utils import generate_lorem_ipsum for id, article in enumerate(range(100), start=1): title = generate_lorem_ipsum( n=1, # Одно предложение html=False, # В виде обычного текста min=2, # Минимум 2 слова max=5 # Максимум 5 ) content = generate_lorem_ipsum() article = Article(**{'title': title, 'content': content}) DBSession.add(article)
def create_topics(self, tags, users): """Generates a bunch of topics.""" from solace.models import Topic last_date = None topics = [] num, var = { 'small': (50, 10), 'medium': (200, 20), 'large': (1000, 200) }[self.data_set_size] count = 0 for locale in self.locales: for x in xrange(randrange(num - var, num + var)): topic = Topic(locale, generate_lorem_ipsum(1, False, 3, 9), generate_lorem_ipsum(randrange(1, 5), False, 40, 140), choice(users), date=self.get_date(last_date)) last_date = topic.last_change these_tags = list(tags[locale]) shuffle(these_tags) topic.bind_tags(these_tags[:randrange(2, 6)]) topics.append(topic) count += 1 print 'Generated %d topics in %d locales' % (count, len(self.locales)) return topics
def __init__(self, id): self.id = id self.href = '/article/%d' % self.id self.title = generate_lorem_ipsum(1, False, 5, 10) self.user = choice(users) self.body = generate_lorem_ipsum() self.pub_date = datetime.utcfromtimestamp(randrange(10 ** 9, 2 * 10 ** 9)) self.published = True
def __init__(self, id): self.id = id self.href = '/article/%d' % self.id self.title = generate_lorem_ipsum(1, False, 5, 10) self.user = choice(users) self.body = generate_lorem_ipsum() self.pub_date = datetime.utcfromtimestamp(randrange(10**9, 2 * 10**9)) self.published = True
def test_lorem_ipsum_min(self): """Test that at least min words are in the output of each line""" for _ in range(5): m = random.randrange(20, 99) for _ in range(10): assert generate_lorem_ipsum(n=1, min=m, html=False).count(" ") >= m - 1
def test_lorem_ipsum_max(self): """Test that at least max words are in the output of each line""" for _ in range(5): m = random.randrange(21, 100) for _ in range(10): assert generate_lorem_ipsum(n=1, max=m, html=False).count(" ") < m - 1
def create_posts(n): for x in range(n): d = random_date(date(2008, 1, 1), date.today()) post = Post() post.title = '%s Newsletter' % d.strftime('%b %Y') post.body = generate_lorem_ipsum(n=3, html=False) post.published = d db.session.add(post)
def prepare_data(db): db.drop_all() db.create_all() now = datetime.datetime.now() for i in range(NUM, 0, -1): note = Note(body=generate_lorem_ipsum(1, False, 3, 4), created_at=now - datetime.timedelta(seconds=i)) db.session.add(note) db.session.commit() assert Note.query.count() == NUM logger.info('prepare data success')
def create_topics(self, tags, users): """Generates a bunch of topics.""" from solace.models import Topic last_date = None topics = [] num, var = {'small': (50, 10), 'medium': (200, 20), 'large': (1000, 200)}[self.data_set_size] count = 0 for locale in self.locales: for x in xrange(randrange(num - var, num + var)): topic = Topic(locale, generate_lorem_ipsum(1, False, 3, 9), generate_lorem_ipsum(randrange(1, 5), False, 40, 140), choice(users), date=self.get_date(last_date)) last_date = topic.last_change these_tags = list(tags[locale]) shuffle(these_tags) topic.bind_tags(these_tags[:randrange(2, 6)]) topics.append(topic) count += 1 print 'Generated %d topics in %d locales' % (count, len(self.locales)) return topics
def create_comments(self, posts, users): """Creates comments for the posts.""" from solace.models import Comment num = {'small': 3, 'medium': 6, 'large': 10}[self.data_set_size] last_date = posts[-1].created comments = 0 for post in posts: for x in xrange(randrange(num)): comment = Comment(post, choice(users), generate_lorem_ipsum(1, False, 10, 40), self.get_date(last_date)) last_date = comment.date comments += 1 print 'Generated %d comments' % comments
def make_reader_with_entries(path, num_entries, num_feeds=NUM_FEEDS, text=False): reader = make_reader(path) reader._parser = parser = Parser() for i in range(num_feeds): feed = parser.feed(i, datetime(2010, 1, 1)) reader.add_feed(feed.url) random.seed(0) for i in range(num_entries): kwargs = {} if text: kwargs.update( title=generate_lorem_ipsum(html=False, n=1, min=1, max=10), summary=generate_lorem_ipsum(html=False), ) parser.entry(i % num_feeds, i, datetime(2010, 1, 1) + timedelta(i), **kwargs) return reader
def create_posts(): names = [u"news", u"article", u"interview", u"test", u"review", u"témoignage"] titles = [ u"voici un super post", u"un article trop cool", u"une bonne idée", u"nouvel article", u"un petit article", u"regardez ca !", u"petit retour"] for index in range(12): post = Post(mode="text") title = random.choice(titles) title = LocalizedString(value=title, lang=u"fr") post.title = title post.state = "published" post.publication_date = datetime.datetime.now() text = generate_lorem_ipsum() text = LocalizedText(value=text, lang=u"fr") post.text = text abstract = generate_lorem_ipsum(n=1, max=60) abstract = LocalizedText(value=abstract, lang=u"fr") post.abstract = abstract db.session.add(post) db.session.commit() tags_count = Tag.query.count() print "tags_count : ", tags_count tag_id = random.randint(1,tags_count) print "tag_id : ", tag_id tag = Tag.query.get(tag_id) tag.posts.append(post) db.session.commit() print post print tag
def show_post(): post_body = generate_lorem_ipsum(n=2) return ''' <h1>A very long post</h1> <div class="body">%s</div> <button id="load">Load More</button> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $('#load').click(function(){ $.ajax({ url:'/more', type:'get', success:function(data){ $('.body').append(data);}})}) </script>''' % post_body
def create_posts(n): for x in range(n): d = random_date(date(2008, 1, 1), date.today() - timedelta(days=1)) post = Post() post.title = '%s Newsletter' % d.strftime('%b %Y') post.body = generate_lorem_ipsum(n=3, html=False) post.published_date = d add(post) post = Post() post.title = 'New RaDaR Conditions' post.body = 'RaDaR is now open to two new conditions - Calciphylaxis and IgA Nephropathy. '\ 'No new approvals are needed for these conditions and patients are registered in the normal fashion.' post.published_date = date.today() add(post)
def dataload(): # Create fake messages: names = ('alice', 'bob', 'clive', 'dave', 'enid', 'frank', 'george') hosts = ('b33f.net', 'google.com', 'brah.com') channels = ('fortress.uk.scud', 'fortress.uk.ea') for i in range(1000): name = choice(names) user = '******' % (name, name, choice(hosts),) # Format a irc 'user/host' m = Message(user, choice(channels), generate_lorem_ipsum(1, html=False, min=5, max=25)) db_session.add(m) db_session.commit() # Create admins: admins = ('[email protected]', '[email protected]') [db_session.add(Admin(u)) for u in admins] db_session.commit() flash("Data loaded") return redirect(url_for('index'))
def show_post(): post_body = generate_lorem_ipsum(n=5) return """ <h1>A very long post</h1> <div class="body">%s</div> <button id="load">Load More</button> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(function(){ $('#load').click(function(){//$('#load')被称为选择器,括号中传入目标元素的id、class或是其他属性来定位到对应的元素 $.ajax({ url:'/more',//目标URL type:'get',//请求方法 sucess:function(data){//返回2xx响应后触发的回调函数 $('.body').append(data);//将返回的响应插入到页面中 } }) }) }) </script>"""%post_body
def show_post(): post_body = generate_lorem_ipsum(n=2) return ''' <h1>A very long post</h1> <div class="body">%s</div> <button id="load">Load More</button> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(function() { $('#load').click(function() { $.ajax({ url: '/more', type: 'get', success: function(data){ $('.body').append(data); } }) }) }) </script>''' % post_body
def show_post(): post_body = generate_lorem_ipsum(n=2) # 生成 两 段 随机 文本 # return ''' <h1> A very long post</h1> # <div class="body">%s</div> # <button id="load"> Load More</ button> # <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> # <script type="text/javascript"> # $(function() { # $('#load').click(function(){ # $.ajax({ # url:'/more', // 目标URL # type:'get', // 请求方法 # success:function(data){ // 返回2XX 响应后触发的回调函数 # $('.body').append(data); // 将返回的响应插入到页面中 # } # }) # }) # }) # </script>''' % post_body return render_template('post.html', post_body=post_body)
def show_post(): post_body = generate_lorem_ipsum(n=2) # 生成两段随机文本 return ''' <h1>A very long post</h1> <div class="body">%s</div> <button id="load">Load More</button> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> <script type="text/javascript"> $(function() { $('#load').click(function() { $.ajax({ url:'/more', // 目标 URL type:'get', // 请求方法 success:function(data){ // 返回2XX响应后触发的回调函数 $('.body').append(data); // 将返回的响应插入到页面中 } }) }) }) </script>''' % post_body
def answer_and_vote(self, topics, users): from solace.models import Post replies = {'small': 4, 'medium': 8, 'large': 12}[self.data_set_size] posts = [x.question for x in topics] last_date = topics[-1].last_change for topic in topics: for x in xrange(randrange(2, replies)): post = Post( topic, choice(users), generate_lorem_ipsum(randrange(1, 3), False, 20, 100), self.get_date(last_date)) posts.append(post) last_date = post.created print 'Generated %d posts' % len(posts) votes = 0 for post in posts: for x in xrange(randrange(replies * 4)): post = choice(posts) user = choice(users) if user != post.author: if random() >= 0.05: user.upvote(post) else: user.downvote(post) votes += 1 print 'Casted %d votes' % votes answered = 0 for topic in topics: replies = list(topic.replies) if replies: replies.sort(key=lambda x: x.votes) post = choice(replies[:4]) if post.votes > 0 and random() > 0.2: topic.accept_answer(post, choice(users)) answered += 1 print 'Answered %d posts' % answered return posts
def answer_and_vote(self, topics, users): from solace.models import Post replies = {'small': 4, 'medium': 8, 'large': 12}[self.data_set_size] posts = [x.question for x in topics] last_date = topics[-1].last_change for topic in topics: for x in xrange(randrange(2, replies)): post = Post(topic, choice(users), generate_lorem_ipsum(randrange(1, 3), False, 20, 100), self.get_date(last_date)) posts.append(post) last_date = post.created print 'Generated %d posts' % len(posts) votes = 0 for post in posts: for x in xrange(randrange(replies * 4)): post = choice(posts) user = choice(users) if user != post.author: if random() >= 0.05: user.upvote(post) else: user.downvote(post) votes += 1 print 'Casted %d votes' % votes answered = 0 for topic in topics: replies = list(topic.replies) if replies: replies.sort(key=lambda x: x.votes) post = choice(replies[:4]) if post.votes > 0 and random() > 0.2: topic.accept_answer(post, choice(users)) answered += 1 print 'Answered %d posts' % answered return posts
def show_post(): post_body = generate_lorem_ipsum(n=2) # 生成两段随机文本 return """ <h1>A very long post</h1> <div class="body">%s</div> <button id="load">Load more</button> <script src="https://cdn.staticfile.org/jquery/3.2.1/jquery.min.js"></script> <script type="text/javascript"> $(function () { $('#load').click(function () { $.ajax({ url: "/more", type: "get", success: function (data) { $('.body').append(data) } }) }) }) </script> """ % post_body
def create_news_test_data(): global _link_file from inyoka.core.auth.models import User from inyoka.news.models import Tag, Comment, Article users = User.query.all() tags = Tag.query.public().all() num = {'small': 10, 'medium': 50, 'large': 100}[SIZE] used = set() for x in xrange(randrange(num - 5, num + 5)): while 1: title = generate_lorem_ipsum(1, False, 3, 9) if title not in used: shuffle(tags) these_tags = tags[:randrange(2, 6)] user = choice(users) article = Article(title=title, intro=chomsky(randint(0, 5) or 10), text=chomsky(randint(0, 100) or 200), public=choice([True, False]), tags=these_tags, author=user) used.add(title) break db.session.commit() _link_file.write(u'\n'.join( [href(a, _external=True) for a in Article.query.all()])) # comments replies = {'small': 4, 'medium': 8, 'large': 12}[SIZE] articles = Article.query.all() for article in articles: for x in xrange(randrange(replies * 4)): article = choice(articles) user = choice(users) comment = Comment(text=chomsky(randint(0, 5) or 10), author=user, article=article) db.session.commit()
def create_news_test_data(): global _link_file from inyoka.core.auth.models import User from inyoka.news.models import Tag, Comment, Article users = User.query.all() tags = Tag.query.public().all() num = {'small': 10, 'medium': 50, 'large': 100}[SIZE] used = set() for x in xrange(randrange(num - 5, num + 5)): while 1: title = generate_lorem_ipsum(1, False, 3, 9) if title not in used: shuffle(tags) these_tags = tags[:randrange(2,6)] user = choice(users) article = Article(title=title, intro=chomsky(randint(0, 5) or 10), text=chomsky(randint(0, 100) or 200), public=choice([True, False]), tags=these_tags, author=user) used.add(title) break db.session.commit() _link_file.write(u'\n'.join([href(a, _external=True) for a in Article.query.all()])) # comments replies = {'small': 4, 'medium': 8, 'large': 12}[SIZE] articles = Article.query.all() for article in articles: for x in xrange(randrange(replies * 4)): article = choice(articles) user = choice(users) comment = Comment(text=chomsky(randint(0, 5) or 10), author=user, article=article) db.session.commit()
def words(mn, mx): return generate_lorem_ipsum(n=1, min=mn, max=mx, html=False)[:-1]
def ipsum(n, **kwargs): kwargs['html'] = False return generate_lorem_ipsum(n=n, **kwargs)
__tablename__ = 'articles' id = Column(Integer, primary_key=True) title = Column(String(250), nullable=False) content = Column(Text, nullable=False) def __repr__(self): return "<{}>".format(self.name) engine = create_engine('sqlite:///foo.db') Base.metadata.drop_all(engine) Base.metadata.create_all(engine) Session = sessionmaker(bind=engine) dbsession = Session() for id, article in enumerate(range(100), start=1): title = generate_lorem_ipsum( n=1, # Одно предложение html=False, # В виде обычного текста min=2, # Минимум 2 слова max=5 # Максимум 5 ) content = generate_lorem_ipsum() article = Articles(**{'id': id, 'title': title, 'content': content}) dbsession.add(article) dbsession.commit() dbsession.close()
def create_forum_test_data(): global _link_file from inyoka.forum.models import Tag, Forum, Question, Answer, Vote, ForumEntry from inyoka.core.auth.models import User links = [] u1 = User.query.filter_by(username=u'dummuser').first() u2 = User.query.filter_by(username=u'quaki').first() # tags gnome = Tag(name=u'GNOME') gtk = Tag(name=u'GTK') kde = Tag(name=u'KDE') qt = Tag(name=u'QT') window_manager = Tag(name=u'Window-Manager') hardware = Tag(name=u'Hardware') inyoka = Tag(name=u'Inyoka') audio = Tag(name=u'Audio') db.session.commit() main_tags = [gnome, gtk, kde, qt, window_manager, hardware, inyoka, audio] # forums inyoka_forum = Forum( name=u'Inyoka Project', description=u'Please tell us your opinion about the new Inyoka!', tags=[inyoka]) gnome_forum = Forum( name=u'The GNOME Desktop (Ubuntu)', description=u'Here you can find all GNOME and GTK related questions.', tags=[gnome, gtk]) kde_forum = Forum( name=u'KDE Plasma (Kubuntu)', description= u'Everything about KDE, the desktop environment of Kubuntu.', tags=[kde, qt]) window_manager_forum = Forum( name=u'Desktop Environments and Window Managers', description= u'Aks everything about GNOME, KDE or any other exotic window manager here', subforums=[gnome_forum, kde_forum], tags=[window_manager]) hardware_forum = Forum(name=u'Hardware Problems', description=u'Describe your hardware problems here', tags=[hardware]) db.session.commit() tags = Tag.query.public().all() users = tuple(User.query.options(db.eagerload('groups')).all()) last_date = None questions = [] num, var = { 'small': (50, 10), 'medium': (250, 50), 'large': (1000, 200) }[SIZE] for x in xrange(randrange(num - var, num + var)): if random() >= 0.8: # we use them a bit more than others, to get a more realistic # tag usage. these_tags = main_tags else: these_tags = list(tags) shuffle(these_tags) question = Question(title=generate_lorem_ipsum(1, False, 3, 9), text=chomsky(randint(0, 10) or 40), author=choice(users), date_created=get_date(last_date), tags=these_tags[:randrange(1, 6)]) last_date = question.date_created questions.append(question) db.session.commit() links.extend([href(q, _external=True) for q in questions]) # answers replies = {'small': 4, 'medium': 8, 'large': 12}[SIZE] answers = [] last_date = questions[-1].date_created shuffle(questions) for question in questions[:randrange(len(questions))]: for x in xrange(randrange(2, replies)): answer = Answer(question=question, author=choice(users), text=chomsky(randint(0, 10) or 40), date_created=get_date(last_date)) answers.append(answer) last_date = answer.date_created db.session.commit() voted_map = [] objects = answers + questions for obj in objects[:randrange(len(objects))]: for x in xrange(randrange(2, replies * 4)): entry = choice(objects) user = choice(users) if (user.id, entry.entry_id) not in voted_map: if random() >= 0.2: v = Vote(score=+1, user=user) elif random() >= 0.5: v = Vote(score=-1, user=user) else: break v.entry_id = entry.entry_id v.favorite = random() > 0.9 entry.votes.append(v) voted_map.append((user.id, entry.entry_id)) db.session.commit() _link_file.write(u'\n'.join(links))
#!/bin/sh import unittest import representative_image from jinja2.utils import generate_lorem_ipsum from pelican.contents import Article # Generate content with image TEST_CONTENT_IMAGE_URL = 'https://testimage.com/test.jpg' TEST_CONTENT = str(generate_lorem_ipsum(n=3, html=True)) + '<img src="' + TEST_CONTENT_IMAGE_URL + '"/>'+ str(generate_lorem_ipsum(n=2,html=True)) # noqa TEST_SUMMARY_IMAGE_URL = 'https://testimage.com/summary.jpg' TEST_SUMMARY_WITHOUTIMAGE = str(generate_lorem_ipsum(n=1, html=True)) TEST_SUMMARY_WITHIMAGE = TEST_SUMMARY_WITHOUTIMAGE + '<img src="' + TEST_SUMMARY_IMAGE_URL + '"/>' # noqa TEST_CUSTOM_IMAGE_URL = 'https://testimage.com/custom.jpg' class TestRepresentativeImage(unittest.TestCase): def setUp(self): super(TestRepresentativeImage, self).setUp() representative_image.register() def test_extract_image_from_content(self): args = { 'content': TEST_CONTENT, 'metadata': { 'summary': TEST_SUMMARY_WITHOUTIMAGE, }, } article = Article(**args)
def test_lorem_ipsum_n(self): """Test that the n (number of lines) works as expected.""" assert generate_lorem_ipsum(n=0, html=False) == "" for n in range(1, 50): assert generate_lorem_ipsum(n=n, html=False).count("\n") == (n - 1) * 2
def rand_text(min_count, max_count): """ Returns randomly generated text with the given paragraph count. """ return generate_lorem_ipsum(n=randint(min_count, max_count), html=False)
def create_forum_test_data(): global _link_file from inyoka.forum.models import Tag, Forum, Question, Answer, Vote, ForumEntry from inyoka.core.auth.models import User links = [] u1 = User.query.filter_by(username=u'dummuser').first() u2 = User.query.filter_by(username=u'quaki').first() # tags gnome = Tag(name=u'GNOME') gtk = Tag(name=u'GTK') kde = Tag(name=u'KDE') qt = Tag(name=u'QT') window_manager = Tag(name=u'Window-Manager') hardware = Tag(name=u'Hardware') inyoka = Tag(name=u'Inyoka') audio = Tag(name=u'Audio') db.session.commit() main_tags = [gnome, gtk, kde, qt, window_manager, hardware, inyoka, audio] # forums inyoka_forum = Forum( name=u'Inyoka Project', description=u'Please tell us your opinion about the new Inyoka!', tags=[inyoka]) gnome_forum = Forum( name=u'The GNOME Desktop (Ubuntu)', description=u'Here you can find all GNOME and GTK related questions.', tags=[gnome, gtk]) kde_forum = Forum( name=u'KDE Plasma (Kubuntu)', description=u'Everything about KDE, the desktop environment of Kubuntu.', tags=[kde, qt]) window_manager_forum = Forum( name=u'Desktop Environments and Window Managers', description=u'Aks everything about GNOME, KDE or any other exotic window manager here', subforums=[gnome_forum, kde_forum], tags=[window_manager]) hardware_forum = Forum( name=u'Hardware Problems', description=u'Describe your hardware problems here', tags=[hardware]) db.session.commit() tags = Tag.query.public().all() users = tuple(User.query.options(db.eagerload('groups')).all()) last_date = None questions = [] num, var = {'small': (50, 10), 'medium': (250, 50), 'large': (1000, 200)}[SIZE] for x in xrange(randrange(num - var, num + var)): if random() >= 0.8: # we use them a bit more than others, to get a more realistic # tag usage. these_tags = main_tags else: these_tags = list(tags) shuffle(these_tags) question = Question(title=generate_lorem_ipsum(1, False, 3, 9), text=chomsky(randint(0, 10) or 40), author=choice(users), date_created=get_date(last_date), tags=these_tags[:randrange(1, 6)]) last_date = question.date_created questions.append(question) db.session.commit() links.extend([href(q, _external=True) for q in questions]) # answers replies = {'small': 4, 'medium': 8, 'large': 12}[SIZE] answers = [] last_date = questions[-1].date_created shuffle(questions) for question in questions[:randrange(len(questions))]: for x in xrange(randrange(2, replies)): answer = Answer(question=question, author=choice(users), text=chomsky(randint(0, 10) or 40), date_created=get_date(last_date)) answers.append(answer) last_date = answer.date_created db.session.commit() voted_map = [] objects = answers + questions for obj in objects[:randrange(len(objects))]: for x in xrange(randrange(2, replies * 4)): entry = choice(objects) user = choice(users) if (user.id, entry.entry_id) not in voted_map: if random() >= 0.2: v = Vote(score=+1, user=user) elif random() >= 0.5: v = Vote(score=-1, user=user) else: break v.entry_id = entry.entry_id v.favorite = random() > 0.9 entry.votes.append(v) voted_map.append((user.id, entry.entry_id)) db.session.commit() _link_file.write(u'\n'.join(links))
# -*- coding: utf-8 -*- import unittest from jinja2.utils import generate_lorem_ipsum from pelican.contents import Page import pelican.settings import shell_pipe # generate one paragraph, enclosed with <p> TEST_CONTENT = str(generate_lorem_ipsum(n=1)) TEST_OUTPUT = '<<< OUTPUT >>>' TEST_COMMAND = 'echo \"%s\"' % TEST_OUTPUT class TestPipe(unittest.TestCase): def setUp(self): super(TestPipe, self).setUp() shell_pipe.register() shell_pipe.initialized(None) def test_execution_and_replace(self): page = Page(**{ 'content': TEST_CONTENT + '<!-- SHELL_BEGIN -->' + TEST_COMMAND + '<!-- SHELL_END -->', 'context': { 'localsiteurl': '', }, }) shell_pipe.run_pipes(page)
def more(): post_body = generate_lorem_ipsum(n=1) return post_body
def show_post(): post_body = generate_lorem_ipsum(n=2) #生成两段随机文本 return f'''
from posixpath import join as posix_join from sys import platform from jinja2.utils import generate_lorem_ipsum import six from pelican.contents import Article, Author, Category, Page, Static from pelican.settings import DEFAULT_CONFIG from pelican.signals import content_object_init from pelican.tests.support import LoggedTestCase, get_settings, unittest from pelican.utils import SafeDatetime, path_to_url, truncate_html_words # generate one paragraph, enclosed with <p> TEST_CONTENT = str(generate_lorem_ipsum(n=1)) TEST_SUMMARY = generate_lorem_ipsum(n=1, html=False) class TestPage(LoggedTestCase): def setUp(self): super(TestPage, self).setUp() self.old_locale = locale.setlocale(locale.LC_ALL) locale.setlocale(locale.LC_ALL, str('C')) self.page_kwargs = { 'content': TEST_CONTENT, 'context': { 'localsiteurl': '', }, 'metadata': {
def load_post(): return generate_lorem_ipsum(n=1)
#!/bin/sh import unittest import representative_image from jinja2.utils import generate_lorem_ipsum from pelican.contents import Article # Generate content with image TEST_CONTENT_IMAGE_URL = 'https://testimage.com/test.jpg' TEST_CONTENT = str(generate_lorem_ipsum( n=3, html=True)) + '<img src="' + TEST_CONTENT_IMAGE_URL + '"/>' + str( generate_lorem_ipsum(n=2, html=True)) # noqa TEST_SUMMARY_IMAGE_URL = 'https://testimage.com/summary.jpg' TEST_SUMMARY_WITHOUTIMAGE = str(generate_lorem_ipsum(n=1, html=True)) TEST_SUMMARY_WITHIMAGE = TEST_SUMMARY_WITHOUTIMAGE + '<img src="' + TEST_SUMMARY_IMAGE_URL + '"/>' # noqa TEST_CUSTOM_IMAGE_URL = 'https://testimage.com/custom.jpg' class TestRepresentativeImage(unittest.TestCase): def setUp(self): super(TestRepresentativeImage, self).setUp() representative_image.register() def test_extract_image_from_content(self): args = { 'content': TEST_CONTENT, 'metadata': { 'summary': TEST_SUMMARY_WITHOUTIMAGE, }, }
def test_lorem_ipsum_markup(self): """Test that output of lorem_ipsum is Markup by default.""" assert isinstance(generate_lorem_ipsum(), Markup)
def moretest(): return generate_lorem_ipsum(n=1)
def test_lorem_ipsum_html(self): """Test that output of lorem_ipsum is a string_type when not html.""" assert isinstance(generate_lorem_ipsum(html=False), str)
# -*- coding: utf-8 -*- import unittest from jinja2.utils import generate_lorem_ipsum # generate one paragraph, enclosed with <p> TEST_CONTENT = str(generate_lorem_ipsum(n=1)) TEST_SUMMARY = generate_lorem_ipsum(n=1, html=False) from pelican.contents import Page import summary class TestSummary(unittest.TestCase): def setUp(self): super(TestSummary, self).setUp() summary.register() summary.initialized(None) self.page_kwargs = { 'content': TEST_CONTENT, 'context': { 'localsiteurl': '', }, 'metadata': { 'summary': TEST_SUMMARY, 'title': 'foo bar', 'author': 'Blogger', },
def load_more(): return generate_lorem_ipsum(n=1)