test/test_rbst.rb in RbST-0.4.0 vs test/test_rbst.rb in RbST-0.5.1

- old
+ new

@@ -9,25 +9,33 @@ instance_variable_set( :"@#{f}_file", File.join(File.dirname(__FILE__), 'files', "test.#{f}") ) end - @rst2parts_path = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib', 'rst2parts')) + @rst2parts_path = File.expand_path( + File.join(File.dirname(__FILE__), '..', 'lib', 'rst2parts') + ) end should "call bare rest2parts when passed no options" do converter = RbST.new(@rst_file) - converter.expects(:execute).with("python #{@rst2parts_path}/rst2html.py").returns(true) + converter \ + .expects(:execute) \ + .with("python #{@rst2parts_path}/rst2html.py") \ + .returns(true) assert converter.convert end should "convert with custom executable" do executables = {:html => "/some/path/2html.py"} default_executables = RbST.executables RbST.executables = executables converter = RbST.new(@file) - converter.expects(:execute).with("python #{executables[:html]}").returns(true) + converter \ + .expects(:execute) \ + .with("python #{executables[:html]}") \ + .returns(true) assert converter.to_html RbST.executables = default_executables end should "raise error when passed bad executable key" do @@ -40,48 +48,143 @@ end end should "convert ReST to html" do html = RbST.new(@rst_file).to_html - assert_equal html, File.read(@html_file) + assert_equal( + File.read(@html_file), + html + ) end should "convert ReST to LaTeX" do latex = RbST.new(@rst_file).to_latex - assert_equal latex, File.read(@latex_file) + assert_equal( + File.read(@latex_file), + latex + ) end [:html, :latex].each do |f| should "accept options on #to_#{f}" do converter = RbST.new(@rst_file) - converter.expects(:execute).with("python #{@rst2parts_path}/rst2#{f}.py --raw-enabled").returns(true) + converter \ + .expects(:execute) \ + .with("python #{@rst2parts_path}/rst2#{f}.py --raw-enabled") \ + .returns(true) assert converter.send("to_#{f}", :raw_enabled) end end should "recognize strip_comments option" do html_with_comment = RbST.convert(".. comment") - assert_equal html_with_comment, %Q{<div class=\"document\">\n<!-- comment -->\n</div>\n} + assert_equal( + html_with_comment, + %Q{<div class=\"document\">\n<!-- comment -->\n</div>\n} + ) html_without_comment = RbST.convert(".. comment", 'strip-comments') - assert_equal html_without_comment, %Q{<div class=\"document\">\n</div>\n} + assert_equal( + html_without_comment, + %Q{<div class=\"document\">\n</div>\n} + ) end should "recognize cloak_email_addresses option" do html_with_uncloaked_email = RbST.convert("steve@mac.com") - assert_equal %Q{<div class=\"document\">\n<p><a class=\"reference external\" href=\"mailto:steve&#64;mac.com\">steve&#64;mac.com</a></p>\n</div>\n}, html_with_uncloaked_email + assert_equal( + %Q{<div class=\"document\">\n<p><a class=\"reference external\" href=\"mailto:steve&#64;mac.com\">steve&#64;mac.com</a></p>\n</div>\n}, + html_with_uncloaked_email + ) html_with_cloaked_email = RbST.convert("steve@mac.com", 'cloak-email-addresses') - assert_equal %Q{<div class=\"document\">\n<p><a class=\"reference external\" href=\"mailto:steve&#37;&#52;&#48;mac&#46;com\">steve<span>&#64;</span>mac<span>&#46;</span>com</a></p>\n</div>\n}, html_with_cloaked_email + assert_equal( + %Q{<div class=\"document\">\n<p><a class=\"reference external\" href=\"mailto:steve&#37;&#52;&#48;mac&#46;com\">steve<span>&#64;</span>mac<span>&#46;</span>com</a></p>\n</div>\n}, + html_with_cloaked_email + ) end should "recognize part option" do html_body = RbST.convert("hello world", :part => :html_body) - assert_equal %Q{<div class=\"document\">\n<p>hello world</p>\n</div>\n}, html_body + assert_equal( + %Q{<div class=\"document\">\n<p>hello world</p>\n</div>\n}, + html_body + ) fragment = RbST.convert("hello world", :part => :fragment) - assert_equal %Q{<p>hello world</p>\n}, fragment + assert_equal( + %Q{<p>hello world</p>\n}, + fragment + ) end - should "convert unicode" do - output = RbST.convert("Hello ☃", :part => :fragment) - assert_equal %Q{<p>Hello ☃</p>\n}, output + should "convert to html with unicode" do + test_string = "Hello ☃".force_encoding("utf-8") + output = RbST.new(test_string).to_html(:part => :fragment) + assert_equal( + %Q{<p>#{test_string}</p>\n}, + output + ) + end + + should "convert to latex with unicode" do + test_string = "Hello ☃".force_encoding("utf-8") + output = RbST.new(test_string).to_latex(:part => :body) + assert_equal( + %Q{\n#{test_string}\n}, + output + ) + end + + should "execute with custom python path" do + RbST.python_path = "/usr/bin/env python3" + converter = RbST.new(@rst_file) + converter \ + .expects(:execute) \ + .with("/usr/bin/env python3 #{@rst2parts_path}/rst2html.py") \ + .returns(true) + assert converter.convert + RbST.python_path = "python" + end + + should "convert to html with python3" do + RbST.python_path = "/usr/bin/env python3" + test_string = "Hello ☃".force_encoding("utf-8") + output = RbST.new(test_string).to_html(:part => :fragment) + assert_equal( + %Q{<p>#{test_string}</p>\n}, + output + ) + RbST.python_path = "python" + end + + should "convert to latex with python3" do + RbST.python_path = "/usr/bin/env python3" + test_string = "Hello ☃".force_encoding("utf-8") + output = RbST.new(test_string).to_latex(:part => :body) + assert_equal( + %Q{\n#{test_string}\n}, + output + ) + RbST.python_path = "python" + end + + should "convert to html with python2" do + RbST.python_path = "/usr/bin/env python2" + test_string = "Hello ☃".force_encoding("utf-8") + output = RbST.new(test_string).to_html(:part => :fragment) + assert_equal( + %Q{<p>#{test_string}</p>\n}, + output + ) + RbST.python_path = "python" + end + + should "convert to latex with python2" do + RbST.python_path = "/usr/bin/env python2" + test_string = "Hello ☃".force_encoding("utf-8") + output = RbST.new(test_string).to_latex(:part => :body) + assert_equal( + %Q{\n#{test_string}\n}, + output + ) + RbST.python_path = "python" end end