Beispiel #1
0
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 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)
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
 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
Beispiel #8
0
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')
Beispiel #10
0
 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
Beispiel #11
0
 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
Beispiel #12
0
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
Beispiel #13
0
 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
Beispiel #14
0
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
Beispiel #15
0
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
Beispiel #16
0
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)
Beispiel #17
0
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'))
Beispiel #18
0
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
Beispiel #19
0
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
Beispiel #20
0
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)
Beispiel #21
0
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
Beispiel #22
0
    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
Beispiel #23
0
    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
Beispiel #24
0
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
Beispiel #25
0
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()
Beispiel #27
0
def words(mn, mx):
    return generate_lorem_ipsum(n=1, min=mn, max=mx, html=False)[:-1]
Beispiel #28
0
def ipsum(n, **kwargs):
    kwargs['html'] = False
    return generate_lorem_ipsum(n=n, **kwargs)
Beispiel #29
0
    __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()
Beispiel #30
0
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)
Beispiel #32
0
 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
Beispiel #33
0
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)
Beispiel #34
0
def ipsum(n, **kwargs):
    kwargs['html'] = False
    return generate_lorem_ipsum(n=n, **kwargs)
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))
Beispiel #36
0
# -*- 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)
Beispiel #37
0
def more():
    post_body = generate_lorem_ipsum(n=1)
    return post_body
Beispiel #38
0
    __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()
Beispiel #39
0
def show_post():
    post_body = generate_lorem_ipsum(n=2)  #生成两段随机文本
    return f'''
Beispiel #40
0
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': {
Beispiel #41
0
def load_post():
    return generate_lorem_ipsum(n=1)
Beispiel #42
0
def load_post():
    return generate_lorem_ipsum(n=1)
Beispiel #43
0
def words(mn, mx):
    return generate_lorem_ipsum(n=1, min=mn, max=mx, html=False)[:-1]
Beispiel #44
0
#!/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,
            },
        }
Beispiel #45
0
 def test_lorem_ipsum_markup(self):
     """Test that output of lorem_ipsum is Markup by default."""
     assert isinstance(generate_lorem_ipsum(), Markup)
Beispiel #46
0
def moretest():
    return generate_lorem_ipsum(n=1)
Beispiel #47
0
 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',
            },
Beispiel #49
0
def load_more():
    return generate_lorem_ipsum(n=1)