Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
dece | a90b513369 | 2 years ago |
@ -0,0 +1,45 @@
|
|||||||
|
from bebop.metalines import RenderOptions
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
from ..external import substitute_external_command
|
||||||
|
from ..page import Page
|
||||||
|
|
||||||
|
|
||||||
|
URL = "gemini://example.com"
|
||||||
|
GEMTEXT = """\
|
||||||
|
# Test page
|
||||||
|
|
||||||
|
Blablabla
|
||||||
|
|
||||||
|
=> gemini://example.com/index.gmi Link to index
|
||||||
|
=> gemini://example.com/sub/gemlog.gmi Link to gemlog
|
||||||
|
"""
|
||||||
|
PAGE = Page.from_gemtext(GEMTEXT, RenderOptions(80, "fancy", "- "))
|
||||||
|
|
||||||
|
|
||||||
|
class TestExternal(unittest.TestCase):
|
||||||
|
|
||||||
|
def test_substitute_external_command(self):
|
||||||
|
# Replace URLs occurences.
|
||||||
|
command = "gmni $u | grep $u" # Grep for a page's own URL.
|
||||||
|
result = substitute_external_command(command, URL, PAGE)
|
||||||
|
self.assertEqual(result, "gmni {u} | grep {u}".format(u=URL))
|
||||||
|
|
||||||
|
# Replace link ID's with the target URL.
|
||||||
|
command = "gmni $1 && gmni $2" # Get both links
|
||||||
|
result = substitute_external_command(command, URL, PAGE)
|
||||||
|
expected = (
|
||||||
|
"gmni gemini://example.com/index.gmi"
|
||||||
|
" && gmni gemini://example.com/sub/gemlog.gmi"
|
||||||
|
)
|
||||||
|
self.assertEqual(result, expected)
|
||||||
|
|
||||||
|
# Invalid link ID raise a ValueError.
|
||||||
|
command = "gmni $8"
|
||||||
|
with self.assertRaises(Exception):
|
||||||
|
substitute_external_command(command, URL, PAGE)
|
||||||
|
|
||||||
|
# Replace escaped $$ with literal $.
|
||||||
|
command = "grep ^iamaregex$$ | echo dollar $" # Do nothing with last.
|
||||||
|
result = substitute_external_command(command, URL, PAGE)
|
||||||
|
self.assertEqual(result, "grep ^iamaregex$ | echo dollar $")
|
Loading…
Reference in new issue