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}

Reply via email to