From 393a92ae33e00509ab2889a850e04f03c085f9e7 Mon Sep 17 00:00:00 2001 From: Johan Holmberg Date: Thu, 14 Apr 2016 19:54:50 +0200 Subject: [PATCH] require file argument to 'import_file' + test --- lib/cmdtest/testcase.rb | 7 ++++++- t/CMDTEST_import_file.rb | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/cmdtest/testcase.rb b/lib/cmdtest/testcase.rb index a530aed..dd4530d 100644 --- a/lib/cmdtest/testcase.rb +++ b/lib/cmdtest/testcase.rb @@ -26,6 +26,7 @@ require "stringio" module Cmdtest class AssertFailed < RuntimeError ; end + class UsageError < RuntimeError ; end # Base class for testcases. # Some attributes and methods are prefixed with an "_" to avoid @@ -88,7 +89,11 @@ module Cmdtest src_path = File.expand_path(src, @_runner.test_files_top) tgt_path = _cwd_path(tgt) FileUtils.mkdir_p(File.dirname(tgt_path)) - FileUtils.cp(src_path, tgt_path) + if File.file?(src_path) + FileUtils.cp(src_path, tgt_path) + else + raise UsageError, "'import_file' argument not a file: '#{src}'" + end end #------------------------------ diff --git a/t/CMDTEST_import_file.rb b/t/CMDTEST_import_file.rb index bdee802..01d4608 100644 --- a/t/CMDTEST_import_file.rb +++ b/t/CMDTEST_import_file.rb @@ -9,6 +9,22 @@ class CMDTEST_import_file < Cmdtest::Testcase # import_file #---------------------------------------- + def test_import_file_ERROR + create_file "file1.dir/empty.txt", "" + + create_CMDTEST_foo [ + "import_file 'file1.dir', 'qwerty1.dir'", + ] + + cmd_cmdtest do + stdout_equal /CAUGHT EXCEPTION:/ + stdout_equal /'import_file' argument not a file: 'file1.dir'/ + exit_nonzero + end + end + + #---------------------------------------- + def test_import_file_DIFFERENT_DIRS create_file "file1.txt", "This is file1.txt\n" create_file "file2.txt", "This is file2.txt\n"