コード例 #1
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_get_article_properties(client):
    article = WikiArticle.from_pk(1)
    assert len(article.languages) == 3
    assert all(l.language in {'en', 'es', 'fr'} for l in article.languages)
    assert len(article.aliases) == 4
    assert all(a in {'wiki1', 'wikiuno', 'wikione', 'diddles1'}
               for a in article.aliases)
    assert article.latest_revision.revision_id == 2
コード例 #2
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_new_wiki_article(client):
    article = WikiArticle.new(title='new article',
                              contents='new article contents',
                              user_id=1)
    assert article.id == 5
    assert article.aliases == ['newarticle']
    assert article.latest_revision.title == 'new article'
    assert article.latest_revision.contents == 'new article contents'
コード例 #3
0
def create_wiki_article(
    title: str, contents: str, language: str = None, article_id: int = None
):
    if language and WikiArticle.is_valid(article_id):
        language_id = WikiLanguage.from_language(language, error=True)
        wiki = WikiTranslation.new(
            article_id=article_id,
            title=title,
            language_id=language_id,
            contents=contents,
            user_id=flask.g.user.id,
        )
    else:
        wiki = WikiArticle.new(
            title=title, contents=contents, user_id=flask.g.user.id
        )
    return flask.jsonify(wiki)
コード例 #4
0
ファイル: admin.py プロジェクト: Kniyl/projects-artilect
 def set_as_wiki(self, request, queryset):
     try:
         # Todo: utiliser un formulaire avec les données post pour récupérer la catégorie voulue
         wiki = Wiki.objects.all()[0]
     except:
         wiki = None
     for link in queryset:
         content = "<p>%s</p>" % link.description
         if link.link:
             content = '<p>Voir la <a href="%s">référence</p>%s' % (link.link, content)
         article = WikiArticle(title=link.title, content=content, user=link.user)
         article.save()
         if wiki:
             article.wikis.add(wiki)
         for comment in link.comments.all():
             article.comments.add(comment)
         article.save()
     queryset.delete()
コード例 #5
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_wiki_new_revision(client):
    article = WikiArticle.from_pk(1)
    assert article.latest_revision.revision_id == 2
    assert len(article.aliases) == 4
    assert article.latest_revision.editor.id == 1
    assert article.latest_revision.editor_id == 1
    article.edit(title='new article 1', contents='bump', editor_id=4)
    assert article.title == 'new article 1'
    assert article.contents == 'bump'
    assert article.latest_revision.revision_id == 3
    assert article.latest_revision.editor_id == 4
    assert article.latest_revision.editor.id == 4
    assert len(article.aliases) == 5
コード例 #6
0
def edit_wiki_article(id: int, title: str, language: str, contents: str):
    wiki = WikiArticle.from_pk(id, _404=True)
    if not wiki:
        raise APIException(f'WikiArticle {id} does not exist.')
    language_id = WikiLanguage.from_language(language, error=True)
    wiki = WikiRevision.new(
        article_id=id,
        title=title,
        language_id=language_id,
        editor_id=flask.g.user.id,
        contents=contents,
    )
    return wiki
コード例 #7
0
def view_wiki_article(id: int, language: str):
    if language:
        return flask.jsonify(
            WikiTranslation.from_attrs(
                article_id=id,
                language_id=WikiLanguage.from_language(language).id,
            )
        )
    return flask.jsonify(
        WikiArticle.from_pk(
            pk=id,
            _404=True,
            include_dead=flask.g.user.has_permission(
                WikiPermissions.VIEW_DELETED
            ),
        )
    )
コード例 #8
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_new_wiki_article_clashing_name(client):
    with pytest.raises(APIException) as e:
        WikiArticle.new(title='Wiki 1',
                        contents='new article contents',
                        user_id=1)
    assert e.value.message == 'The wiki alias wiki1 has already been taken.'
コード例 #9
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_get_all_articles_include_dead(client):
    articles = WikiArticle.get_all(include_dead=True)
    assert len(articles) == 4
コード例 #10
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_last_revision_other(client):
    article = WikiArticle.from_pk(2)
    assert article.latest_revision.revision_id == 1
コード例 #11
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_get_all_articles(client):
    articles = WikiArticle.get_all()
    assert len(articles) == 3
    assert 4 not in {a.id for a in articles}
コード例 #12
0
ファイル: test_models.py プロジェクト: sharebears/pulsar-wiki
def test_serialize(authed_client):
    article = WikiArticle.from_pk(1)
    data = NewJSONEncoder().default(article)
    check_dictionary(data, {'id': 1, 'title': 'Wiki1'})