# encoding: UTF-8 require 'helper' require 'mocha' class TestRbST < Test::Unit::TestCase def setup [:rst, :html, :latex].each do |f| 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')) 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) 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) assert converter.to_html RbST.executables = default_executables end should "raise error when passed bad executable key" do executables = {:markdown => "/some/path/2markdown.py"} begin RbST.executables = executables flunk rescue ArgumentError assert true end end should "convert ReST to html" do html = RbST.new(@rst_file).to_html assert_equal html, File.read(@html_file) end should "convert ReST to LaTeX" do latex = RbST.new(@rst_file).to_latex assert_equal latex, File.read(@latex_file) 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) 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{
hello world
\nhello world
\n}, fragment end should "convert unicode" do output = RbST.convert("Hello ☃", :part => :fragment) assert_equal %Q{Hello ☃
\n}, output end end