mirror of
https://github.com/ae-utbm/sith.git
synced 2025-07-09 19:40:19 +00:00
core: add test for Markdown syntax
Signed-off-by: Skia <skia@libskia.so>
This commit is contained in:
@ -22,6 +22,8 @@
|
||||
#
|
||||
#
|
||||
|
||||
import sys
|
||||
|
||||
from django.apps import AppConfig
|
||||
from django.core.signals import request_started
|
||||
|
||||
@ -44,7 +46,7 @@ class SithConfig(AppConfig):
|
||||
Club._memberships = {}
|
||||
Forum._club_memberships = {}
|
||||
|
||||
print("Connecting signals!")
|
||||
print("Connecting signals!", file=sys.stderr)
|
||||
request_started.connect(clear_cached_groups, weak=False, dispatch_uid="clear_cached_groups")
|
||||
request_started.connect(clear_cached_memberships, weak=False, dispatch_uid="clear_cached_memberships")
|
||||
# TODO: there may be a need to add more cache clearing
|
||||
|
37
core/management/commands/markdown.py
Normal file
37
core/management/commands/markdown.py
Normal file
@ -0,0 +1,37 @@
|
||||
# -*- coding:utf-8 -*
|
||||
#
|
||||
# Copyright 2017
|
||||
# - Skia <skia@libskia.so>
|
||||
#
|
||||
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
|
||||
# http://ae.utbm.fr.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License a published by the Free Software
|
||||
# Foundation; either version 3 of the License, or (at your option) any later
|
||||
# version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
||||
# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
||||
# details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, write to the Free Sofware Foundation, Inc., 59 Temple
|
||||
# Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
#
|
||||
|
||||
import os
|
||||
from django.core.management.base import BaseCommand
|
||||
|
||||
from core.markdown import markdown
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = "Output the fully rendered doc/SYNTAX.md file"
|
||||
|
||||
def handle(self, *args, **options):
|
||||
root_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
|
||||
with open(os.path.join(root_path) + '/doc/SYNTAX.md', 'r') as md:
|
||||
result = markdown(md.read())
|
||||
print(result, end='')
|
@ -22,6 +22,7 @@
|
||||
#
|
||||
#
|
||||
|
||||
import os
|
||||
import re
|
||||
from mistune import Renderer, InlineGrammar, InlineLexer, Markdown, escape, escape_link
|
||||
from django.core.urlresolvers import reverse
|
||||
@ -192,41 +193,7 @@ inline = SithInlineLexer(renderer)
|
||||
markdown = Markdown(renderer, inline=inline)
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(markdown.inline.default_rules)
|
||||
print(markdown.inline.inline_html_rules)
|
||||
text = """
|
||||
## Basique
|
||||
|
||||
* Mettre le texte en **gras** : `**texte**`
|
||||
|
||||
* Mettre le texte en *italique* : `*texte*`
|
||||
|
||||
* __Souligner__ le texte : `__texte__`
|
||||
|
||||
* ~~Barrer du texte~~ : `~~texte~~`
|
||||
|
||||
* Mettre ^du texte^ en ^exposant^ : `^mot` ou `^texte^`
|
||||
|
||||
* _Mettre du texte_ en _indice_ : `_mot` ou `_texte_`
|
||||
|
||||
* Pied de page [^en pied de page]
|
||||
|
||||
## Blocs de citations
|
||||
|
||||
Un bloc de citation se crée ainsi :
|
||||
```
|
||||
> Ceci est
|
||||
> un bloc de
|
||||
> citation
|
||||
```
|
||||
|
||||
> Ceci est
|
||||
> un bloc de
|
||||
> citation
|
||||
|
||||
Il est possible d'intégrer de la syntaxe Markdown-AE dans un tel bloc.
|
||||
|
||||
Petit *test* _sur_ ^une^ **seule** ^ligne pour voir^
|
||||
|
||||
"""
|
||||
print(markdown(text))
|
||||
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
with open(os.path.join(root_path) + '/doc/SYNTAX.md', 'r') as md:
|
||||
result = markdown(md.read())
|
||||
print(result, end='')
|
||||
|
@ -22,11 +22,14 @@
|
||||
#
|
||||
#
|
||||
|
||||
import os
|
||||
|
||||
from django.test import Client, TestCase
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.management import call_command
|
||||
|
||||
from core.models import User, Group, Page
|
||||
from core.markdown import markdown
|
||||
|
||||
"""
|
||||
to run these tests :
|
||||
@ -185,6 +188,15 @@ class UserRegistrationTest(TestCase):
|
||||
self.assertTrue(response.status_code == 200)
|
||||
self.assertTrue("""<p>Votre nom d\\'utilisateur et votre mot de passe ne correspondent pas. Merci de r\\xc3\\xa9essayer.</p>""" in str(response.content))
|
||||
|
||||
class MarkdownTest(TestCase):
|
||||
def test_full_markdown_syntax(self):
|
||||
root_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
with open(os.path.join(root_path) + '/doc/SYNTAX.md', 'r') as md_file:
|
||||
md = md_file.read()
|
||||
with open(os.path.join(root_path) + '/doc/SYNTAX.html', 'r') as html_file:
|
||||
html = html_file.read()
|
||||
result = markdown(md)
|
||||
self.assertTrue(result == html)
|
||||
|
||||
class PageHandlingTest(TestCase):
|
||||
def setUp(self):
|
||||
|
Reference in New Issue
Block a user