Esempio n. 1
0
    def test_smartypants(self, html):
        text = "Don't call me Shirley"
        expected_result = "<p>Don&rsquo;t call me Shirley</p>\n"

        md = Misaka(smartypants=True)
        result = md.render(text)

        self.assertIsInstance(result, Markup)
        self.assertEqual(result, expected_result)
Esempio n. 2
0
    def test_smartypants(self, html):
        text = "Don't call me Shirley"
        expected_result = "<p>Don&rsquo;t call me Shirley</p>\n"

        md = Misaka(smartypants=True)
        result = md.render(text)

        self.assertIsInstance(result, Markup)
        self.assertEqual(result, expected_result)
Esempio n. 3
0
    def test_override_defaults(self, html):
        ext, flags = 0, 0

        md = Misaka(autolink=True)
        result = md.render(TEST_MD, autolink=False)

        html.assert_called_with(TEST_MD, extensions=ext, render_flags=flags)
        self.assertIsInstance(result, Markup)
        self.assertEqual(result, misaka.html(TEST_MD,
            extensions=ext, render_flags=flags))
Esempio n. 4
0
    def test_set_defaults(self, html):
        ext, flags = EXT_TABLES, HTML_HARD_WRAP

        md = Misaka(hard_wrap=True, tables=True)
        result = md.render(TEST_MD)

        html.assert_called_with(TEST_MD, extensions=ext, render_flags=flags)
        self.assertIsInstance(result, Markup)
        self.assertEqual(result, misaka.html(TEST_MD,
            extensions=ext, render_flags=flags))
Esempio n. 5
0
    def test_override_defaults(self, html):
        ext, flags = 0, 0

        md = Misaka(autolink=True)
        result = md.render(TEST_MD, autolink=False)

        html.assert_called_with(TEST_MD, extensions=ext, render_flags=flags)
        self.assertIsInstance(result, Markup)
        self.assertEqual(
            result, misaka.html(TEST_MD, extensions=ext, render_flags=flags))
Esempio n. 6
0
    def test_set_defaults(self, html):
        ext, flags = EXT_TABLES, HTML_HARD_WRAP

        md = Misaka(hard_wrap=True, tables=True)
        result = md.render(TEST_MD)

        html.assert_called_with(TEST_MD, extensions=ext, render_flags=flags)
        self.assertIsInstance(result, Markup)
        self.assertEqual(
            result, misaka.html(TEST_MD, extensions=ext, render_flags=flags))
Esempio n. 7
0
    def test_smartypants(self, html):
        text = "Don't call me Shirley"
        pantsed = "Don&rsquo;t call me Shirley"
        expected_result = "<p>Don&rsquo;t call me Shirley</p>\n"

        md = Misaka(smartypants=True)
        result = md.render(text)

        html.assert_called_with(pantsed, extensions=0, render_flags=0)
        self.assertIsInstance(result, Markup)
        self.assertEqual(result, expected_result)
Esempio n. 8
0
    def test_smartypants(self, html):
        text = "Don't call me Shirley"
        pantsed = "Don&rsquo;t call me Shirley"
        expected_result = "<p>Don&rsquo;t call me Shirley</p>\n"

        md = Misaka(smartypants=True)
        result = md.render(text)

        html.assert_called_with(pantsed, extensions=0, render_flags=0)
        self.assertIsInstance(result, Markup)
        self.assertEqual(result, expected_result)
Esempio n. 9
0
    def test_custom_renderer(self, html):
        class CustomRenderer(misaka.HtmlRenderer):
            def image(self, link, title, alt_text):
                return '<div><img src="{0}" alt="{2}" title="{1}"><div>{1}</div></div>'.format(
                    link, title, alt_text)

        test_md = '![Alt text](/img.jpg "Title")'
        expected_result = '<p><div><img src="/img.jpg" alt="Alt text" title="Title"><div>Title</div></div></p>\n'

        md = Misaka(None, CustomRenderer())
        result = md.render(test_md)
        self.assertFalse(html.called)
        self.assertEqual(str(result), expected_result)
Esempio n. 10
0
    def test_custom_renderer(self, html):

        class CustomRenderer(misaka.HtmlRenderer):
            def image(self, link, title, alt_text):
                return '<div><img src="{0}" alt="{2}" title="{1}"><div>{1}</div></div>'.format(
                    link, title, alt_text)

        test_md = '![Alt text](/img.jpg "Title")'
        expected_result = '<p><div><img src="/img.jpg" alt="Alt text" title="Title"><div>Title</div></div></p>\n'

        md = Misaka(None, CustomRenderer())
        result = md.render(test_md)
        self.assertFalse(html.called)
        self.assertEqual(str(result), expected_result)
Esempio n. 11
0
    def test_smartypants_table(self, html):
        "smartypants should not interfere with processing tables"

        text = dedent("""
            | Left align | Right align | Center align |
            |:-----------|------------:|:------------:|
            | This       |        This |     This     |
            | column     |      column |    column    |
            | will       |        will |     will     |
            | be         |          be |      be      |
            | left       |       right |    center    |
            | aligned    |     aligned |    aligned   |
        """)
        expected_result = dedent("""
            <table>
            <thead>
            <tr>
            <th style="text-align: left">Left align</th>
            <th style="text-align: right">Right align</th>
            <th style="text-align: center">Center align</th>
            </tr>
            </thead>

            <tbody>
            <tr>
            <td style="text-align: left">This</td>
            <td style="text-align: right">This</td>
            <td style="text-align: center">This</td>
            </tr>
            <tr>
            <td style="text-align: left">column</td>
            <td style="text-align: right">column</td>
            <td style="text-align: center">column</td>
            </tr>
            <tr>
            <td style="text-align: left">will</td>
            <td style="text-align: right">will</td>
            <td style="text-align: center">will</td>
            </tr>
            <tr>
            <td style="text-align: left">be</td>
            <td style="text-align: right">be</td>
            <td style="text-align: center">be</td>
            </tr>
            <tr>
            <td style="text-align: left">left</td>
            <td style="text-align: right">right</td>
            <td style="text-align: center">center</td>
            </tr>
            <tr>
            <td style="text-align: left">aligned</td>
            <td style="text-align: right">aligned</td>
            <td style="text-align: center">aligned</td>
            </tr>
            </tbody>
            </table>
        """)

        md = Misaka(tables=True, smartypants=True)
        result = md.render(text).strip()

        self.assertIsInstance(result, Markup)
        self.assertEqual(result.strip(), expected_result.strip())
Esempio n. 12
0
    def test_smartypants_table(self, html):
        "smartypants should not interfere with processing tables"

        text = dedent("""
            | Left align | Right align | Center align |
            |:-----------|------------:|:------------:|
            | This       |        This |     This     |
            | column     |      column |    column    |
            | will       |        will |     will     |
            | be         |          be |      be      |
            | left       |       right |    center    |
            | aligned    |     aligned |    aligned   |
        """)
        expected_result = dedent("""
            <table>
            <thead>
            <tr>
            <th style="text-align: left">Left align</th>
            <th style="text-align: right">Right align</th>
            <th style="text-align: center">Center align</th>
            </tr>
            </thead>

            <tbody>
            <tr>
            <td style="text-align: left">This</td>
            <td style="text-align: right">This</td>
            <td style="text-align: center">This</td>
            </tr>
            <tr>
            <td style="text-align: left">column</td>
            <td style="text-align: right">column</td>
            <td style="text-align: center">column</td>
            </tr>
            <tr>
            <td style="text-align: left">will</td>
            <td style="text-align: right">will</td>
            <td style="text-align: center">will</td>
            </tr>
            <tr>
            <td style="text-align: left">be</td>
            <td style="text-align: right">be</td>
            <td style="text-align: center">be</td>
            </tr>
            <tr>
            <td style="text-align: left">left</td>
            <td style="text-align: right">right</td>
            <td style="text-align: center">center</td>
            </tr>
            <tr>
            <td style="text-align: left">aligned</td>
            <td style="text-align: right">aligned</td>
            <td style="text-align: center">aligned</td>
            </tr>
            </tbody>
            </table>
        """)

        md = Misaka(tables=True, smartypants=True)
        result = md.render(text).strip()

        self.assertIsInstance(result, Markup)
        self.assertEqual(result.strip(), expected_result.strip())
Esempio n. 13
0
from flask.ext.bootstrap import Bootstrap
from flask.ext.sqlalchemy import SQLAlchemy
import os
from flask.ext.login import LoginManager
from flask.ext.openid import OpenID
from flask.ext.admin import Admin
from config import basedir, ADMINS, MAIL_SERVER, MAIL_PORT, MAIL_USERNAME, MAIL_PASSWORD
from flask_misaka import Misaka
from app.renderers import QuilltRenderer

app = Flask(__name__)
app.config.from_object('config')
Bootstrap(app)
db = SQLAlchemy(app)
m = Misaka(app, QuilltRenderer())
print(m.render("This is a test (r) [[test]]"))


#lm = LoginManager()
#lm.init_app(app)
#lm.login_view = 'login'
#oid = OpenID(app, os.path.join(basedir, 'tmp'))

if not app.debug:
    import logging
    from logging.handlers import SMTPHandler
    credentials = None
    if MAIL_USERNAME or MAIL_PASSWORD:
        credentials = (MAIL_USERNAME, MAIL_PASSWORD)
    mail_handler = SMTPHandler((MAIL_SERVER, MAIL_PORT), 
                'no-reply@' + MAIL_SERVER, ADMINS,