diff options
| author | Albert Krewinkel <albert@zeitkraut.de> | 2019-05-20 18:52:28 +0200 |
|---|---|---|
| committer | John MacFarlane <jgm@berkeley.edu> | 2019-05-20 12:52:28 -0400 |
| commit | 6208d4e7fcf1792203b3069d0002ad5cb1ec05dd (patch) | |
| tree | 4aa85637c54ffaf67b950c1ed3c9ff7ce9a940de /test/lua/test-pandoc-utils.lua | |
| parent | 90141e7b4fc48477106ee5481e3d9b1b4a54338e (diff) | |
Improve output of Lua tests (#5499)
This makes use of tasty-lua, a package to write tests in Lua
and integrate the results into Tasty output. Test output becomes
more informative: individual tests and test groups become visible
in test output. Failures are reported with helpful error messages.
Diffstat (limited to 'test/lua/test-pandoc-utils.lua')
| -rw-r--r-- | test/lua/test-pandoc-utils.lua | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/test/lua/test-pandoc-utils.lua b/test/lua/test-pandoc-utils.lua deleted file mode 100644 index 4421603ec..000000000 --- a/test/lua/test-pandoc-utils.lua +++ /dev/null @@ -1,138 +0,0 @@ -utils = require 'pandoc.utils' - --- Squash blocks to inlines ------------------------------------------------------------------------- -function test_blocks_to_inlines () - local blocks = { - pandoc.Para{ pandoc.Str 'Paragraph1' }, - pandoc.Para{ pandoc.Emph 'Paragraph2' } - } - local inlines = utils.blocks_to_inlines(blocks, {pandoc.LineBreak()}) - return #inlines == 3 - and inlines[1].text == "Paragraph1" - and inlines[2].t == 'LineBreak' - and inlines[3].content[1].text == "Paragraph2" -end - --- hierarchicalize ------------------------------------------------------------------------- -function test_hierarchicalize () - local blks = { - pandoc.Header(1, {pandoc.Str 'First'}), - pandoc.Header(2, {pandoc.Str 'Second'}), - pandoc.Header(2, {pandoc.Str 'Third'}), - } - local hblks = utils.hierarchicalize(blks) - return hblks[1].t == "Sec" - and hblks[1].contents[1].t == "Sec" - and hblks[1].contents[2].numbering[1] == 1 - and hblks[1].contents[2].numbering[2] == 2 -end - --- SHA1 ------------------------------------------------------------------------- -function test_sha1 () - local ref_hash = '0a0a9f2a6772942557ab5355d76af442f8f65e01' - local hash = utils.sha1 'Hello, World!' - return hash == ref_hash -end - --- Pipe ------------------------------------------------------------------------- -function file_exists (filename) - local fh = io.open(filename, 'r') - return fh ~= nil and (fh:close() or true) -end - -function warn (...) io.stderr:write(...) end - -function os_is_windows () - return package.config:sub(1,1) == '\\' -end - -function test_pipe () - if os_is_windows() then - local pipe_result = pandoc.pipe('find', {'hi'}, 'hi') - return pipe_result:match("%a+") == 'hi' - else - local pipe_result = pandoc.pipe('tr', {'a', 'b'}, 'abc') - return pipe_result:match("%a+") == 'bbc' - end -end - -function test_failing_pipe () - if os_is_windows() then - local res, err = pcall(pandoc.pipe, 'find', {'/a'}, 'hi') - return not res and - err.command == 'find' and - err.error_code ~= 0 - else - local res, err = pcall(pandoc.pipe, 'false', {}, 'abc') - return not res and - err.command == 'false' and - err.error_code == 1 and - err.output == '' - end -end - --- Read ------------------------------------------------------------------------- -function test_read () - local valid_markdown = '*Hello*, World!\n' - local res = pandoc.read(valid_markdown).blocks[1].content - return res[1].t == 'Emph' and res[3].t == 'Space' and res[4].t == 'Str' -end - -function test_failing_read () - local res, err = pcall(pandoc.read, 'foo', 'nosuchreader') - return not res and err:match 'Unknown reader: nosuchreader' -end - --- Stringify ------------------------------------------------------------------------- -function test_stringify () - local inline = pandoc.Emph{ - pandoc.Str 'Cogito', - pandoc.Space(), - pandoc.Str 'ergo', - pandoc.Space(), - pandoc.Str 'sum.', - } - return utils.stringify(inline) == 'Cogito ergo sum.' -end - --- to_roman_numeral ------------------------------------------------------------------------- -function test_to_roman_numeral () - return utils.to_roman_numeral(1888) == 'MDCCCLXXXVIII' - -- calling with a string fails - and not pcall(utils.to_roman_numeral, 'not a number') -end - --- normalize_date ------------------------------------------------------------------------- -function test_normalize_date () - return utils.normalize_date("12/31/2017") == '2017-12-31' - and utils.normalize_date("pandoc") == nil -end - --- Return result ------------------------------------------------------------------------- -function run(fn) - return fn() and "OK" or "FAIL" -end - -function Para (el) - return { - pandoc.Plain{pandoc.Str("blocks_to_inlines: " .. run(test_blocks_to_inlines))}, - pandoc.Plain{pandoc.Str("hierarchicalize: " .. run(test_hierarchicalize))}, - pandoc.Plain{pandoc.Str("normalize_date: " .. run(test_normalize_date))}, - pandoc.Plain{pandoc.Str("pipe: " .. run(test_pipe))}, - pandoc.Plain{pandoc.Str("failing pipe: " .. run(test_failing_pipe))}, - pandoc.Plain{pandoc.Str("read: " .. run(test_read))}, - pandoc.Plain{pandoc.Str("failing read: " .. run(test_failing_read))}, - pandoc.Plain{pandoc.Str("sha1: " .. run(test_sha1))}, - pandoc.Plain{pandoc.Str("stringify: " .. run(test_stringify))}, - pandoc.Plain{pandoc.Str("to_roman_numeral: " .. run(test_to_roman_numeral))}, - } -end |
