Revision: 4112
Author: pekka.klarck
Date: Thu Sep 23 09:42:58 2010
Log: cleaned up list_dir tests and added testing of non-ascii files to
reproduce jython issue 643
http://code.google.com/p/robotframework/source/detail?r=4112
Modified:
/trunk/atest/robot/standard_libraries/operating_system/list_dir.txt
/trunk/atest/testdata/standard_libraries/operating_system/list_dir.txt
=======================================
--- /trunk/atest/robot/standard_libraries/operating_system/list_dir.txt Thu
Sep 23 07:16:08 2010
+++ /trunk/atest/robot/standard_libraries/operating_system/list_dir.txt Thu
Sep 23 09:42:58 2010
@@ -1,28 +1,71 @@
*** Settings ***
Suite Setup Run Tests ${EMPTY}
standard_libraries/operating_system/list_dir.txt
-Force Tags regression jybot pybot
+Force Tags regression pybot jybot
Resource atest_resource.txt
+*** Variables ***
+${BASE} ${TEMPDIR}${/}robot_list_dir_temp
+${DIR} foodir
+${F1} foo.txt
+${F2} ŋöŋ-äßćïï.txt
+
+
*** Test Cases ***
-List Directory
- ${tc} = Check testcase List Directory
- ${dir} = Join Path ${CURDIR}/../../.. testdata standard_libraries
operating_system robot_temp_dir
- Check Log Message ${tc.kws[3].msgs[0]} Listing contents of
directory '<a href="file://${dir}">${dir}</a>' HTML
- Check Log Message ${tc.kws[3].msgs[1]} bar.txt\nfoo.txt
- Check Log Message ${tc.kws[12].msgs[0]} Listing contents of
directory '<a href="file://${dir}">${dir}</a>' HTML
- Check Log Message ${tc.kws[12].msgs[1]} foo.txt
-
-List Directory With Patterns
- ${tc} = Check testcase List Directory With Patterns
+List And Count Directory
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List And Count Messages ${tc.kws[0]} 3 items
\n${F1}\n${DIR}\n${F2}
+ Verify List And Count Messages ${tc.kws[-1]} 0 items
+
+List And Count Files In Directory
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List And Count Messages ${tc.kws[0]} 2 files \n${F1}\n${F2}
+ Verify List And Count Messages ${tc.kws[-1]} 0 files
+
+List And Count Directories In Directory
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List And Count Messages ${tc.kws[0]} 1 directory \n${DIR}
+ Verify List And Count Messages ${tc.kws[-1]} 0 directories
+
+List And Count Directory With Patterns
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List And Count Messages ${tc.kws[0]} 2 items \n${F1}\n${F2}
+ Verify List And Count Messages ${tc.kws[1]} 2 items \n${F1}\n${DIR}
+ Verify List And Count Messages ${tc.kws[2]} 0 items
+
+List And Count Files In Directory With Patterns
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List And Count Messages ${tc.kws[0]} 2 files \n${F1}\n${F2}
+ Verify List And Count Messages ${tc.kws[1]} 1 file \n${F1}
+ Verify List And Count Messages ${tc.kws[2]} 0 files
+
+List And Count Directories In Directory With Patterns
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List And Count Messages ${tc.kws[0]} 1 directory \n${DIR}
+ Verify List And Count Messages ${tc.kws[-1]} 0 directories
List Directory With Absolute
- ${tc} = Check testcase List Directory With Absolute
- ${dir} = Join Path ${CURDIR}/../../.. testdata standard_libraries
operating_system robot_temp_dir
- Check Log Message ${tc.kws[4].msgs[0]} Listing contents of
directory '<a href="file://${dir}">${dir}</a>' HTML
- Check Log Message ${tc.kws[4].msgs[1]} ${dir}${/}bar.txt\n
${dir}${/}foo.txt\n ${dir}${/}foodir
- Check Log Message ${tc.kws[12].msgs[1]} Signature of 'List
Directory' keywords has changed. Please update how 'absolute' argumemt is
given. WARN
-
-List And Count Files And Directories In Directory
- [Documentation] Tests 'List Files In Directory', 'List Directories In
Directory', 'Count Files In Directory', 'Count Directories In Directory'
and 'Count Items In Directory'
- Check testcase List And Count Files And Directories In Directory
+ ${tc} = Check Test Case ${TESTNAME}
+ Verify List Message ${tc.kws[1]} 2 items
\n${BASE}${/}${F1}\n${BASE}${/}${F2}
+ Verify List Message ${tc.kws[3]} 2 files
\n${BASE}${/}${F1}\n${BASE}${/}${F2}
+ Verify List Message ${tc.kws[5]} 1 directory \n${BASE}${/}${DIR}
+ Check Log Message ${tc.kws[5].msgs[1]} Signature of 'List Directory'
keywords has changed. Please update how 'absolute' argumemt is given. WARN
+
+
+*** Keywords ***
+
+Verify List And Count Messages
+ [Arguments] ${kw} ${count} ${files}=
+ Verify List Message ${kw.kws[0]} ${count} ${files}
+ Verify Count Message ${kw.kws[1]} ${count}
+
+Verify List Message
+ [Arguments] ${kw} ${count} ${files}=
+ Check Log Message ${kw.msgs[0]} Listing contents of directory '<a
href="file://${BASE}">${BASE}</a>'. HTML
+ Check Log Message ${kw.msgs[-2]} ${count}:${files}
+
+Verify Count Message
+ [Arguments] ${kw} ${count}
+ Check Log Message ${kw.msgs[0]} Listing contents of directory '<a
href="file://${BASE}">${BASE}</a>'. HTML
+ Check Log Message ${kw.msgs[1]} ${count}.
+
=======================================
--- /trunk/atest/testdata/standard_libraries/operating_system/list_dir.txt
Thu Sep 23 07:16:08 2010
+++ /trunk/atest/testdata/standard_libraries/operating_system/list_dir.txt
Thu Sep 23 09:42:58 2010
@@ -1,111 +1,110 @@
*** Settings ***
-Suite Teardown Remove Temps
-Test Setup Remove Temps
+Test Setup Create Test Directories
+Suite Teardown Remove Test Directories
Library OperatingSystem
+Library Collections
*** Variables ***
-${TESTDIR} ${CURDIR}${/}robot_temp_dir
+${BASE} ${TEMPDIR}${/}robot_list_dir_temp
+${DIR} foodir
+${F1} foo.txt
+${F2} ŋöŋ-äßćïï.txt
*** Test Cases ***
-List Directory
- [Documentation] This test also tests setting variables
- Create Dir ${TESTDIR}
- Create File ${TESTDIR}${/}foo.txt
- Create File ${TESTDIR}${/}bar.txt
- ${files} = List Directory ${TESTDIR}
- Should Be True ${files} == ['bar.txt','foo.txt']
- @{files2} = List Directory ${TESTDIR}
- Should Be Equal @{files2}[0] bar.txt
- Should Be Equal @{files2}[1] foo.txt
- ${file} @{files3} = List Dir ${TESTDIR}
- Should Be Equal ${file} bar.txt
- Should Be Equal @{files3}[0] foo.txt
- Remove File ${TESTDIR}${/}bar.txt
- ${files4} = List Directory ${TESTDIR}
- Should Be True ${files4} == ['foo.txt']
- @{files5} = List Directory ${TESTDIR}
- Should Be Equal @{files5}[0] foo.txt
- ${file2} @{files6} = List Dir ${TESTDIR}
- Should Be Equal ${file2} foo.txt
- Should Be True @{files6} == []
- Remove File ${TESTDIR}${/}foo.txt
- ${files7} = List Directory ${TESTDIR}
- Should Be True ${files7} == []
- @{files8} = List Directory ${TESTDIR}
- Should Be True @{files8} == []
-
-List Directory With Patterns
- Comment Setup
- Create Directory ${TESTDIR}
- Create File ${TESTDIR}${/}foo.txt
- Create File ${TESTDIR}${/}bar.txt
- Create Directory ${TESTDIR}${/}foodir
- Comment Actual test
- ${names} = List Directory ${TESTDIR} ???.txt
- Should Be True ${names} == ['bar.txt', 'foo.txt']
- ${names} = List Directory ${TESTDIR} *oo*
- Should Be True ${names} == ['foo.txt', 'foodir']
-
-List Directory With Absolute
- [Documentation] This tests also List Files In Directory And List
Directories In Directory
- Create Directory ${TESTDIR}
- Create File ${TESTDIR}${/}foo.txt
- Create File ${TESTDIR}${/}bar.txt
- Create Directory ${TESTDIR}${/}foodir
- ${names} = List Directory ${TESTDIR} ${EMPTY} absolute
- Log ${names}
- Should Be Equal ${names[0]} ${TESTDIR}${/}bar.txt
- Should Be Equal ${names[1]} ${TESTDIR}${/}foo.txt
- Should Be Equal ${names[2]} ${TESTDIR}${/}foodir
- ${names} = List Files In Directory ${TESTDIR} ${EMPTY} whatever
- Should Be Equal ${names[0]} ${TESTDIR}${/}bar.txt
- Should Be Equal ${names[1]} ${TESTDIR}${/}foo.txt
- ${names} = List Directories In Directory ${TESTDIR} ${EMPTY}
${EMPTY} deprecated absolute
- Should Be Equal ${names[0]} ${TESTDIR}${/}foodir
-
-List And Count Files And Directories In Directory
- [Documentation] Tests 'List Files In Directory', 'List Directories In
Directory', 'Count Files In Directory', 'Count Directories In Directory'
and 'Count Items In Directory'
- Comment 0) Setup
- Create Dir ${TESTDIR}
- Create File ${TESTDIR}${/}foo.txt
- Create File ${TESTDIR}${/}bar.txt
- Create File ${TESTDIR}${/}zap.txt
- Create Dir ${TESTDIR}${/}foodir
- Create Dir ${TESTDIR}${/}bardir
- Comment 1) List Files In Dir
- ${files} = List Files In Directory ${TESTDIR}
- ${bar_files} = List Files In Directory ${TESTDIR} bar*
- Should Be True ${files} == ['bar.txt','foo.txt','zap.txt']
- Should Be True ${bar_files} == ['bar.txt']
- Comment 2) List Dirs In Dir
- ${dirs} = List Directories In Directory ${TESTDIR}
- ${foo_dirs} = List Directories In Directory ${TESTDIR} *o*
- Should Be True ${dirs} == ['bardir', 'foodir']
- Should Be True ${foo_dirs} == ['foodir']
- ${file_count} = Count Files In Directory ${TESTDIR}
- ${txt_file_count} = Count Files In Directory ${TESTDIR} *.txt
- Should Be Equal ${file_count} ${3}
- Should Be Equal ${file_count} ${txt_file_count}
- Comment 4) Count Dirs In Dir
- ${dir_count} = Count Directories In Directory ${TESTDIR}
- ${dir_dir_count} = Count Directories In Directory ${TESTDIR} *dir
- Should Be Equal ${dir_count} ${2}
- Should Be Equal ${dir_count} ${dir_dir_count}
- Comment 5) Count Items In Dir
- ${count} = Count Items In Directory ${TESTDIR}
- ${foo_count} = Count Items In Directory ${TESTDIR} foo*
- Should Be Equal ${count} ${5}
- Should Be Equal ${foo_count} ${2}
- Comment 6) Misc tests
- ${html_file_count} = Count Files In Directory ${CURDIR} *.html
- ${html_dir_count} = Count Directories In Directory ${CURDIR} *.html
- ${html_item_count} = Count Items In Directory ${CURDIR} *.html
- Should Be True ${html_file_count} > 0
- Should Be Equal ${html_dir_count} ${0}
- Should Be Equal ${html_file_count} ${html_item_count}
+List And Count Directory
+ List And Count Directory ${F1} ${DIR} ${F2}
+ Remove File ${BASE}/${F1}
+ List And Count Directory ${DIR} ${F2}
+ Remove File ${BASE}/${F2}
+ List And Count Directory ${DIR}
+ Remove Directory ${BASE}/${DIR}
+ List And Count Directory
+
+List And Count Files In Directory
+ List And Count Files In Directory ${F1} ${F2}
+ Remove Files ${BASE}/${F1} ${BASE}/${F2}
+ List And Count Files In Directory
+
+List And Count Directories In Directory
+ List And Count Directories In Directory ${DIR}
+ Remove Directory ${BASE}/${DIR}
+ List And Count Directories In Directory
+
+List And Count Directory With Patterns
+ List And Count Directory With Pattern *.txt ${F1} ${F2}
+ List And Count Directory With Pattern f??* ${F1} ${DIR}
+ List And Count Directory With Pattern nomatch
+
+List And Count Files In Directory With Patterns
+ List And Count Files In Directory With Pattern * ${F1} ${F2}
+ List And Count Files In Directory With Pattern foo* ${F1}
+ List And Count Files In Directory With Pattern none
+
+List And Count Directories In Directory With Patterns
+ List And Count Directories In Directory With Pattern f* ${DIR}
+ List And Count Directories In Directory With Pattern *.txt
+
+List Directory With Absolute
+ @{expected} = Create List ${BASE}${/}${F1} ${BASE}${/}${F2}
+ @{items} = List Directory ${BASE} *.txt absolute
+ Lists Should Be Equal ${items} ${expected}
+ @{items} = List Files In Directory ${BASE} absolute=yes
+ Lists Should Be Equal ${items} ${expected}
+ @{items} = List Directories In Directory ${BASE} ${EMPTY}
${EMPTY} deprecated absolute
+ Should Be True @{items} == ['${BASE}${/}${DIR}']
*** Keywords ***
-Remove Temps
- Remove Dir ${TESTDIR} recursive
+
+Create Test Directories
+ Remove Test Directories
+ Create Directory ${BASE}
+ Create Directory ${BASE}/${DIR}
+ Create File ${BASE}/${F1}
+ Create File ${BASE}/${F2}
+
+Remove Test Directories
+ Remove Directory ${BASE} recursive
+
+List And Count Directory
+ [Arguments] @{expected}
+ @{items} = List Directory ${BASE}
+ ${count} = Count Items In Directory ${BASE}
+ Lists Should Be Equal ${items} ${expected}
+ Length Should Be ${items} ${count}
+
+List And Count Directory With Pattern
+ [Arguments] ${pattern} @{expected}
+ @{items} = List Directory ${BASE} ${pattern}
+ ${count} = Count Items In Directory ${BASE} ${pattern}
+ Lists Should Be Equal ${items} ${expected}
+ Length Should Be ${items} ${count}
+
+List And Count Files In Directory
+ [Arguments] @{expected}
+ ${items} = List Files In Directory ${BASE}
+ ${count} = Count Files In Directory ${BASE}
+ Lists Should Be Equal ${items} ${expected}
+ Length Should Be ${items} ${count}
+
+List And Count Files In Directory With Pattern
+ [Arguments] ${pattern} @{expected}
+ ${items} = List Files In Directory ${BASE} ${pattern}
+ ${count} = Count Files In Directory ${BASE} ${pattern}
+ Lists Should Be Equal ${items} ${expected}
+ Length Should Be ${items} ${count}
+
+List And Count Directories In Directory
+ [Arguments] @{expected}
+ ${items} = List Directories In Directory ${BASE}
+ ${count} = Count Directories In Directory ${BASE}
+ Lists Should Be Equal ${items} ${expected}
+ Length Should Be ${items} ${count}
+
+List And Count Directories In Directory With Pattern
+ [Arguments] ${pattern} @{expected}
+ ${items} = List Directories In Directory ${BASE} ${pattern}
+ ${count} = Count Directories In Directory ${BASE} ${pattern}
+ Lists Should Be Equal ${items} ${expected}
+ Length Should Be ${items} ${count}