Sha256: 448c9b3aa08c8b262d482940602c50ea0d091c3541e11f97dc3a2c5d753f10e8

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

require 'test/unit'

require 'tmpdir'
require 'erb'
require 'json'

module TaskWarrior
  module Test
    module Integration
      class TestCase < ::Test::Unit::TestCase
        def setup
          @data_dir = Dir.mktmpdir
          @taskrc_file = build_taskrc(:data_dir => @data_dir)
        end

        def teardown
          FileUtils.rm_r(@data_dir)
          File.delete(@taskrc_file)
        end
      
      protected
        def export_tasks
          JSON[task('export')]
        end
  
        def task(cmd)
          ENV['TASKRC'] = @taskrc_file
          %x[task #{cmd}]
        end
  
        def build_taskrc(options = {})
          taskrc_file = Tempfile.new('taskrc')
          data_dir = options[:data_dir]
    
          begin
            taskrc_file.write(ERB.new(File.read(File.join(File.dirname(__FILE__), '..', '..', 'templates', 'taskrc.erb')), 0, "%<>").result(binding))
            return taskrc_file.path
          ensure
            taskrc_file.close
          end
        end        
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
twtest-0.0.2 lib/twtest/testcase.rb