6 new revisions:

Revision: 267193c2e45d
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 06:43:16 2013
Log: Updated the warning about creating scalar lists in variable table. Thi...
http://code.google.com/p/robotframework/source/detail?r=267193c2e45d

Revision: e5c095952646
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 07:01:36 2013
Log:      tidyed data to get consistent 4 space separators
http://code.google.com/p/robotframework/source/detail?r=e5c095952646

Revision: e1ba8e8fa0d1
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 07:09:41 2013
Log:      test cleanup
http://code.google.com/p/robotframework/source/detail?r=e1ba8e8fa0d1

Revision: 5099bab3ed05
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 08:29:07 2013
Log:      test cleanup
http://code.google.com/p/robotframework/source/detail?r=5099bab3ed05

Revision: ec7386f91f5e
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 08:42:21 2013
Log:      import cleanup
http://code.google.com/p/robotframework/source/detail?r=ec7386f91f5e

Revision: a2376ffc0a6e
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 08:47:50 2013
Log: Fixed error message when running/reboting multiple suites and no test ...
http://code.google.com/p/robotframework/source/detail?r=a2376ffc0a6e

==============================================================================
Revision: 267193c2e45d
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 06:43:16 2013
Log: Updated the warning about creating scalar lists in variable table. This functionality was not removed in 2.7 but will in 2.8 (issue 939).
http://code.google.com/p/robotframework/source/detail?r=267193c2e45d

Modified:
 /atest/robot/variables/variable_table.txt
 /src/robot/variables/variables.py

=======================================
--- /atest/robot/variables/variable_table.txt   Fri Aug 31 03:39:28 2012
+++ /atest/robot/variables/variable_table.txt   Wed Jan  9 06:43:16 2013
@@ -68,5 +68,5 @@
     Check Syslog Contains Regexp
... Creating a scalar variable with a list value in the Variable table is ... deprecated and this functionality will be removed in Robot Framework - ... 2\\.7\\. Create a list variable '@\\{${name}}' and use it as a scalar + ... 2\\.8\\. Create a list variable '@\\{${name}}' and use it as a scalar
     ...  variable '\\$\\{${name}}' instead in file '.*'\\.
=======================================
--- /src/robot/variables/variables.py   Thu Dec 27 04:12:07 2012
+++ /src/robot/variables/variables.py   Wed Jan  9 06:43:16 2013
@@ -293,7 +293,7 @@
             return self.replace_scalar(value[0])
msg = ("Creating a scalar variable with a list value in the Variable " "table is deprecated and this functionality will be removed in "
-               "Robot Framework 2.7. Create a list variable '@%s' and use "
+               "Robot Framework 2.8. Create a list variable '@%s' and use "
                "it as a scalar variable '%s' instead" % (name[1:], name))
         if path:
             msg += " in file '%s'" % path

==============================================================================
Revision: e5c095952646
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 07:01:36 2013
Log:      tidyed data to get consistent 4 space separators
http://code.google.com/p/robotframework/source/detail?r=e5c095952646

Modified:
 /atest/robot/tags/include_and_exclude.txt
 /atest/robot/tags/include_and_exclude_with_rebot.txt

=======================================
--- /atest/robot/tags/include_and_exclude.txt   Mon Nov 26 03:54:57 2012
+++ /atest/robot/tags/include_and_exclude.txt   Wed Jan  9 07:01:36 2013
@@ -1,68 +1,68 @@
 *** Settings ***
-Force Tags      regression  jybot  pybot
-Resource        atest_resource.txt
-Test Template   Run And Check Include And Exclude
+Force Tags        regression    jybot    pybot
+Test Template     Run And Check Include And Exclude
+Resource          atest_resource.txt

 *** Variables ***
-${DATA SOURCE}  tags/include_and_exclude.txt
-${ESCAPES}      --escape star:STAR --escape quest:QUEST --escape amp:AMP
-@{INCL_ALL}     Incl-1  Incl-12  Incl-123
-@{EXCL_ALL}     Excl-1  Excl-12  Excl-123
-@{ALL}          @{INCL_ALL}  @{EXCL_ALL}
+${DATA SOURCE}    tags/include_and_exclude.txt
+${ESCAPES}        --escape star:STAR --escape quest:QUEST --escape amp:AMP
+@{INCL_ALL}       Incl-1    Incl-12    Incl-123
+@{EXCL_ALL}       Excl-1    Excl-12    Excl-123
+@{ALL}            @{INCL_ALL}    @{EXCL_ALL}

 *** Test Cases ***
 No Includes Or Excludes
-    ${EMPTY}  @{ALL}
+    ${EMPTY}    @{ALL}

 One Include
-    --include incl1  @{INCL_ALL}
+    --include incl1    @{INCL_ALL}

 Matching And Non Matching Includes
-    -i INCL3 -i nonexisting  Incl-123
+    -i INCL3 -i nonexisting    Incl-123

 More Includes
-    -i incl2 --include incl3 -i _ --include incl2  Incl-12  Incl-123
+    -i incl2 --include incl3 -i _ --include incl2    Incl-12    Incl-123

 Includes With AND
- [Documentation] Testing including like "--include tag1&tag2" both with "&" and "AND"
-    --include incl1ANDincl2  Incl-12  Incl-123
-    -i incl1AMPincl2AMPincl3  Incl-123
+ [Documentation] Testing including like "--include tag1&tag2" both with "&" and "AND"
+    --include incl1ANDincl2    Incl-12    Incl-123
+    -i incl1AMPincl2AMPincl3    Incl-123

 Include With Patterns
-    --include incl?  @{INCL_ALL}
-    -i STARcl3 -i iSTAR2  Incl-12  Incl-123  Excl-123
-    -i i?*3ANDFORCE --include iSTAR  @{INCL_ALL}
+    --include incl?    @{INCL_ALL}
+    -i STARcl3 -i iSTAR2    Incl-12    Incl-123    Excl-123
+    -i i?*3ANDFORCE --include iSTAR    @{INCL_ALL}

 One Exclude
-    --exclude excl1  @{INCL_ALL}
+    --exclude excl1    @{INCL_ALL}

 Matching And Non Matching Excludes
-    -e EXCL3 -e nonexisting  @{INCL_ALL}  Excl-1  Excl-12
+    -e EXCL3 -e nonexisting    @{INCL_ALL}    Excl-1    Excl-12

 More Excludes
-    --exclude excl3 -e excl2  @{INCL_ALL}  Excl-1
+    --exclude excl3 -e excl2    @{INCL_ALL}    Excl-1

 Exclude With AND
-    --exclude excl1AMPexcl2  @{INCL_ALL}  Excl-1
-    -e excl1AMPexcl2ANDexcl3  @{INCL_ALL}  Excl-1  Excl-12
+    --exclude excl1AMPexcl2    @{INCL_ALL}    Excl-1
+    -e excl1AMPexcl2ANDexcl3    @{INCL_ALL}    Excl-1    Excl-12

 Exclude With Patterns
-    --exclude exc??  @{INCL_ALL}
-    -e STAR3 -e eSTAR2 -e eSTAR1  Incl-1  Incl-12
+    --exclude exc??    @{INCL_ALL}
+    -e STAR3 -e eSTAR2 -e eSTAR1    Incl-1    Incl-12

 Include And Exclude
- [Documentation] Include and exclude together with and without patterns and ANDing
-    -i force --exclude excl2  @{INCL_ALL}  Excl-1
-    --include STARcl2 -i nonex -e e???2 -i forceANDi*1  @{INCL_ALL}
+ [Documentation] Include and exclude together with and without patterns and ANDing
+    -i force --exclude excl2    @{INCL_ALL}    Excl-1
+    --include STARcl2 -i nonex -e e???2 -i forceANDi*1    @{INCL_ALL}

 Include with NOT
-    --include incl1NOTincl3  Incl-1  Incl-12
+    --include incl1NOTincl3    Incl-1    Incl-12

 Exclude with NOT
-    --exclude excl1NOTexcl2ANDexcl3  Excl-123  @{INCL_ALL}
+    --exclude excl1NOTexcl2ANDexcl3    Excl-123    @{INCL_ALL}

 Include and Exclude with NOT
-    --include incl1NOTincl3 --exclude incl1NOTincl2  Incl-12
+    --include incl1NOTincl3 --exclude incl1NOTincl2    Incl-12

 Select tests without any tags
[Setup] Set Test Variable ${DATA SOURCE} tags/no_force_no_default_tags.txt
@@ -74,28 +74,27 @@

 Non Matching Include
     [Template]    Run And Check Error
-    --include nonex  includes 'nonex'
-    --include nonex -i nonex2  includes 'nonex' and 'nonex2'
+    --include nonex    includes 'nonex'
+    --include nonex -i nonex2    includes 'nonex' and 'nonex2'

 Non Matching Exclude
-    --exclude nonexisting -e nonex2 -e nonex3  @{ALL}
+    --exclude nonexisting -e nonex2 -e nonex3    @{ALL}

 Non Matching Include And Exclude
     [Template]    Run And Check Error
-    -i nonex -e nonex2  includes 'nonex' and excludes 'nonex2'
- --include nonex -i incl? -e STAR1 -e STAR2 -e STAR3 includes 'nonex' and 'incl?' and excludes '*1', '*2' and '*3'
+    -i nonex -e nonex2    includes 'nonex' and excludes 'nonex2'
+ --include nonex -i incl? -e STAR1 -e STAR2 -e STAR3 includes 'nonex' and 'incl?' and excludes '*1', '*2' and '*3'

 *** Keywords ***
 Run And Check Include And Exclude
-    [Arguments]  ${params}  @{tests}
-    Run Tests  ${params} ${ESCAPES}  ${DATA SOURCE}
+    [Arguments]    ${params}    @{tests}
+    Run Tests    ${params} ${ESCAPES}    ${DATA SOURCE}
     Stderr Should Be Empty
-    Check Suite Contains Tests  ${SUITE}  @{tests}
+    Check Suite Contains Tests    ${SUITE}    @{tests}

 Run And Check Error
-    [Arguments]  ${params}  ${filter_msg}
- Run Tests Without Processing Output ${params} ${ESCAPES} ${DATA SOURCE}
-    ${stderr} =  Get File  ${STDERR_FILE}
- Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Include And Exclude' with ${filter_msg} contains no test cases.\n\n Try --help for usage information.
-    File Should Not Exist  ${OUTFILE}
-
+    [Arguments]    ${params}    ${filter_msg}
+ Run Tests Without Processing Output ${params} ${ESCAPES} ${DATA SOURCE}
+    ${stderr} =    Get File    ${STDERR_FILE}
+ Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Include And Exclude' with ${filter_msg} contains no test cases.\n\n Try --help for usage information.
+    File Should Not Exist    ${OUTFILE}
=======================================
--- /atest/robot/tags/include_and_exclude_with_rebot.txt Mon Nov 26 03:54:57 2012 +++ /atest/robot/tags/include_and_exclude_with_rebot.txt Wed Jan 9 07:01:36 2013
@@ -1,74 +1,74 @@
 *** Settings ***
Documentation Testing rebot's include/exclude functionality. Tests also include/exclude first during test execution and then with rebot.
 Suite Setup       Create Input Files
-Suite Teardown    Remove File  ${INPUT FILE}
-Default Tags      regression  pybot  jybot
+Suite Teardown    Remove File    ${INPUT FILE}
+Default Tags      regression    pybot    jybot
+Test Template     Run And Check Include And Exclude
 Resource          rebot_resource.txt
-Test Template     Run And Check Include And Exclude

 *** Variables ***
 ${TEST FILE}      tags/include_and_exclude.txt
 ${TEST FILE2}     tags/no_force_no_default_tags.txt
 ${INPUT FILE}     %{TEMPDIR}/robot-tags-input.xml
-${INPUT FILE 2}   %{TEMPDIR}/robot-tags-input-2.xml
+${INPUT FILE 2}    %{TEMPDIR}/robot-tags-input-2.xml
 ${ESCAPES}        --escape star:STAR --escape quest:QUEST --escape amp:AMP
-@{INCL_ALL}       Incl-1  Incl-12  Incl-123
-@{EXCL_ALL}       Excl-1  Excl-12  Excl-123
+@{INCL_ALL}       Incl-1    Incl-12    Incl-123
+@{EXCL_ALL}       Excl-1    Excl-12    Excl-123
 @{ALL}            @{INCL_ALL}    @{EXCL_ALL}

 *** Test Cases ***
 No Includes Or Excludes
-    ${EMPTY}  @{ALL}
+    ${EMPTY}    @{ALL}

 One Include
-    --include incl1  @{INCL_ALL}
+    --include incl1    @{INCL_ALL}

 Matching And Non Matching Includes
-    -i INCL3 -i nonexisting  Incl-123
+    -i INCL3 -i nonexisting    Incl-123

 More Includes
-    -i incl2 --include incl3 -i _ --include incl2  Incl-12  Incl-123
+    -i incl2 --include incl3 -i _ --include incl2    Incl-12    Incl-123

 Includes With AND
- [Documentation] Testing including like "--include tag1&tag2" both with "&" and "AND"
-    --include incl1ANDincl2  Incl-12  Incl-123
-    -i incl1AMPincl2AMPincl3  Incl-123
+ [Documentation] Testing including like "--include tag1&tag2" both with "&" and "AND"
+    --include incl1ANDincl2    Incl-12    Incl-123
+    -i incl1AMPincl2AMPincl3    Incl-123

 Include With Patterns
-    --include incl?  @{INCL_ALL}
-    -i STARcl3 -i iSTAR2  Incl-12  Incl-123  Excl-123
-    -i i?*3ANDFORCE --include iSTAR  @{INCL_ALL}
+    --include incl?    @{INCL_ALL}
+    -i STARcl3 -i iSTAR2    Incl-12    Incl-123    Excl-123
+    -i i?*3ANDFORCE --include iSTAR    @{INCL_ALL}

 One Exclude
-    --exclude excl1  @{INCL_ALL}
+    --exclude excl1    @{INCL_ALL}

 Matching And Non Matching Excludes
-    -e EXCL3 -e nonexisting  @{INCL_ALL}  Excl-1  Excl-12
+    -e EXCL3 -e nonexisting    @{INCL_ALL}    Excl-1    Excl-12

 More Excludes
-    --exclude excl3 -e excl2  @{INCL_ALL}  Excl-1
+    --exclude excl3 -e excl2    @{INCL_ALL}    Excl-1

 Exclude With AND
-    --exclude excl1AMPexcl2  @{INCL_ALL}  Excl-1
-    -e excl1AMPexcl2ANDexcl3  @{INCL_ALL}  Excl-1  Excl-12
+    --exclude excl1AMPexcl2    @{INCL_ALL}    Excl-1
+    -e excl1AMPexcl2ANDexcl3    @{INCL_ALL}    Excl-1    Excl-12

 Exclude With Patterns
-    --exclude exc??  @{INCL_ALL}
-    -e STAR3 -e eSTAR2 -e eSTAR1  Incl-1  Incl-12
+    --exclude exc??    @{INCL_ALL}
+    -e STAR3 -e eSTAR2 -e eSTAR1    Incl-1    Incl-12

 Include And Exclude
- [Documentation] Include and exclude together with and without patterns and ANDing
-    -i force --exclude excl2  @{INCL_ALL}  Excl-1
-    --include STARcl2 -i nonex -e e???2 -i forceANDi*1  @{INCL_ALL}
+ [Documentation] Include and exclude together with and without patterns and ANDing
+    -i force --exclude excl2    @{INCL_ALL}    Excl-1
+    --include STARcl2 -i nonex -e e???2 -i forceANDi*1    @{INCL_ALL}

 Include with NOT
-    --include incl1NOTincl3  Incl-1  Incl-12
+    --include incl1NOTincl3    Incl-1    Incl-12

 Exclude with NOT
-    --exclude excl1NOTexcl2ANDexcl3  Excl-123  @{INCL_ALL}
+    --exclude excl1NOTexcl2ANDexcl3    Excl-123    @{INCL_ALL}

 Include and Exclude with NOT
-    --include incl1NOTincl3 --exclude incl1NOTincl2  Incl-12
+    --include incl1NOTincl3 --exclude incl1NOTincl2    Incl-12

 Select tests without any tags
     [Setup]    Set Test Variable    ${INPUT FILE}    ${INPUT FILE 2}
@@ -80,69 +80,68 @@

 Non Matching Include
     [Template]    Run And Check Error
-    --include nonex  with tag 'nonex'
-    --include nonex -i nonex2  with tags 'nonex' or 'nonex2'
+    --include nonex    with tag 'nonex'
+    --include nonex -i nonex2    with tags 'nonex' or 'nonex2'

 Non Matching Exclude
-    --exclude nonexisting -e nonex2 -e nonex3  @{ALL}
+    --exclude nonexisting -e nonex2 -e nonex3    @{ALL}

 Non Matching Include And Exclude
     [Template]    Run And Check Error
-    -i nonex -e nonex2  with tag 'nonex' and without tag 'nonex2'
- --include nonex -i incl? -e STAR1 -e STAR2 -e STAR3 with tags 'nonex' or 'incl?' and without tags '*1', '*2' or '*3'
+    -i nonex -e nonex2    with tag 'nonex' and without tag 'nonex2'
+ --include nonex -i incl? -e STAR1 -e STAR2 -e STAR3 with tags 'nonex' or 'incl?' and without tags '*1', '*2' or '*3'

 Including With Robot And Including And Excluding With Rebot
- [Setup] Create Output With Robot ${INPUT FILE} --include incl1 --exclude nonexisting ${TESTFILE}
-    -i iSTAR2STAR -e nonexisting -e incl3  Incl-12
+ [Setup] Create Output With Robot ${INPUT FILE} --include incl1 --exclude nonexisting ${TESTFILE}
+    -i iSTAR2STAR -e nonexisting -e incl3    Incl-12

 Excluding With Robot And Including And Excluding Without Matching Rebot
- [Setup] Create Output With Robot ${INPUT FILE} -i incl1 --exclude excl* ${TESTFILE}
-    -e nonexisting -e excl3  @{INCL_ALL}
+ [Setup] Create Output With Robot ${INPUT FILE} -i incl1 --exclude excl* ${TESTFILE}
+    -e nonexisting -e excl3    @{INCL_ALL}

 Elapsed Time
- [Documentation] Test setting start, end and elapsed times correctly when filtering by tags
-    [Template]  NONE
- Comment 1) Rebot hand-edited output with predefined times and check that times are read correctly.
-    Run Rebot  ${EMPTY}  rebot/times.xml
- Check Times ${SUITE.tests[0]} 20061227 12:00:00.000 20061227 12:00:01.000 1000 - Check Times ${SUITE.tests[1]} 20061227 12:00:01.000 20061227 12:00:03.000 2000 - Check Times ${SUITE.tests[2]} 20061227 12:00:03.000 20061227 12:00:07.000 4000 - Check Times ${SUITE.tests[3]} 20061227 12:00:07.000 20061227 12:00:07.001 0001 - Check Times ${SUITE.tests[4]} 20061227 12:00:07.001 20061227 12:00:07.003 0002 - Check Times ${SUITE.tests[5]} 20061227 12:00:07.003 20061227 12:00:07.007 0004 - Check Times ${SUITE} 20061227 11:59:59.000 20061227 12:00:08.999 9999
-    Should Be Equal As Numbers  ${SUITE.test_count}  6
- Comment 2) Filter ouput created in earlier step and check that times are set accordingly.
-    Run Rebot  --include incl2 --include excl3 ${ESCAPES}  ${OUTFILE}
-    Check Times  ${SUITE}  ${NONE}  ${NONE}  6004
- Check Times ${SUITE.tests[0]} 20061227 12:00:01.000 20061227 12:00:03.000 2000 - Check Times ${SUITE.tests[1]} 20061227 12:00:03.000 20061227 12:00:07.000 4000 - Check Times ${SUITE.tests[2]} 20061227 12:00:07.003 20061227 12:00:07.007 004
-    Should Be Equal As Numbers  ${SUITE.test_count}  3
-
+ [Documentation] Test setting start, end and elapsed times correctly when filtering by tags
+    [Template]    NONE
+ Comment 1) Rebot hand-edited output with predefined times and check that times are read correctly.
+    Run Rebot    ${EMPTY}    rebot/times.xml
+ Check Times ${SUITE.tests[0]} 20061227 12:00:00.000 20061227 12:00:01.000 1000 + Check Times ${SUITE.tests[1]} 20061227 12:00:01.000 20061227 12:00:03.000 2000 + Check Times ${SUITE.tests[2]} 20061227 12:00:03.000 20061227 12:00:07.000 4000 + Check Times ${SUITE.tests[3]} 20061227 12:00:07.000 20061227 12:00:07.001 0001 + Check Times ${SUITE.tests[4]} 20061227 12:00:07.001 20061227 12:00:07.003 0002 + Check Times ${SUITE.tests[5]} 20061227 12:00:07.003 20061227 12:00:07.007 0004 + Check Times ${SUITE} 20061227 11:59:59.000 20061227 12:00:08.999 9999
+    Should Be Equal As Numbers    ${SUITE.test_count}    6
+ Comment 2) Filter ouput created in earlier step and check that times are set accordingly.
+    Run Rebot    --include incl2 --include excl3 ${ESCAPES}    ${OUTFILE}
+    Check Times    ${SUITE}    ${NONE}    ${NONE}    6004
+ Check Times ${SUITE.tests[0]} 20061227 12:00:01.000 20061227 12:00:03.000 2000 + Check Times ${SUITE.tests[1]} 20061227 12:00:03.000 20061227 12:00:07.000 4000 + Check Times ${SUITE.tests[2]} 20061227 12:00:07.003 20061227 12:00:07.007 004
+    Should Be Equal As Numbers    ${SUITE.test_count}    3

 *** Keywords ***
 Create Input Files
-    Create Output With Robot  ${INPUT FILE 2}  ${EMPTY}  ${TEST FILE 2}
-    Create Output With Robot  ${INPUT FILE}  ${EMPTY}  ${TEST FILE}
+ Create Output With Robot ${INPUT FILE 2} ${EMPTY} ${TEST FILE 2}
+    Create Output With Robot    ${INPUT FILE}    ${EMPTY}    ${TEST FILE}

 Run And Check Include And Exclude
-    [Arguments]  ${params}  @{tests}
-    Run Rebot  ${params} ${ESCAPES}  ${INPUT FILE}
+    [Arguments]    ${params}    @{tests}
+    Run Rebot    ${params} ${ESCAPES}    ${INPUT FILE}
     Stderr Should Be Empty
-    Check Suite Contains Tests  ${SUITE}  @{tests}
-    Should Be True  ${SUITE.statistics.all.passed} == len(@{tests})
-    Should Be True  ${SUITE.statistics.all.failed} == 0
-    ${exp start} =  Evaluate  ${NONE} if "${params}" else "${ORIG START}"
-    ${exp end} =  Evaluate  ${NONE} if "${params}" else "${ORIG END}"
-    Should Be Equal  ${SUITE.starttime}  ${exp start}
-    Should Be Equal  ${SUITE.endtime}  ${exp end}
-    Is Valid Elapsed Time  ${SUITE.elapsedtime}
-    Should Be True  ${SUITE.elapsedtime} <= ${ORIG ELAPSED}
+    Check Suite Contains Tests    ${SUITE}    @{tests}
+    Should Be True    ${SUITE.statistics.all.passed} == len(@{tests})
+    Should Be True    ${SUITE.statistics.all.failed} == 0
+ ${exp start} = Evaluate ${NONE} if "${params}" else "${ORIG START}"
+    ${exp end} =    Evaluate    ${NONE} if "${params}" else "${ORIG END}"
+    Should Be Equal    ${SUITE.starttime}    ${exp start}
+    Should Be Equal    ${SUITE.endtime}    ${exp end}
+    Is Valid Elapsed Time    ${SUITE.elapsedtime}
+    Should Be True    ${SUITE.elapsedtime} <= ${ORIG ELAPSED}

 Run And Check Error
-    [Arguments]  ${params}  ${filter_msg}
- Run Rebot Without Processing Output ${params} ${ESCAPES} ${INPUT FILE}
-    ${stderr} =  Get Stderr
- Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Include And Exclude' contains no tests ${filter_msg}.${USAGE TIP}
-    File Should Not Exist  ${OUTFILE}
+    [Arguments]    ${params}    ${filter_msg}
+ Run Rebot Without Processing Output ${params} ${ESCAPES} ${INPUT FILE}
+    ${stderr} =    Get Stderr
+ Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Include And Exclude' contains no tests ${filter_msg}.${USAGE TIP}
+    File Should Not Exist    ${OUTFILE}

==============================================================================
Revision: e1ba8e8fa0d1
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 07:09:41 2013
Log:      test cleanup
http://code.google.com/p/robotframework/source/detail?r=e1ba8e8fa0d1

Modified:
 /atest/robot/tags/include_and_exclude.txt
 /atest/robot/tags/include_and_exclude_with_rebot.txt

=======================================
--- /atest/robot/tags/include_and_exclude.txt   Wed Jan  9 07:01:36 2013
+++ /atest/robot/tags/include_and_exclude.txt   Wed Jan  9 07:09:41 2013
@@ -4,7 +4,7 @@
 Resource          atest_resource.txt

 *** Variables ***
-${DATA SOURCE}    tags/include_and_exclude.txt
+@{DATA SOURCES}   tags/include_and_exclude.txt
 ${ESCAPES}        --escape star:STAR --escape quest:QUEST --escape amp:AMP
 @{INCL_ALL}       Incl-1    Incl-12    Incl-123
 @{EXCL_ALL}       Excl-1    Excl-12    Excl-123
@@ -65,11 +65,11 @@
     --include incl1NOTincl3 --exclude incl1NOTincl2    Incl-12

 Select tests without any tags
- [Setup] Set Test Variable ${DATA SOURCE} tags/no_force_no_default_tags.txt + [Setup] Set Test Variable @{DATA SOURCES} tags/no_force_no_default_tags.txt --exclude STAR No Own Tags No Force Nor Default Own Tags Empty No Force Nor Default

 Select tests with any tag
- [Setup] Set Test Variable ${DATA SOURCE} tags/no_force_no_default_tags.txt + [Setup] Set Test Variable @{DATA SOURCES} tags/no_force_no_default_tags.txt
     --include STAR    Own Tags No Force Nor Default

 Non Matching Include
@@ -88,13 +88,14 @@
 *** Keywords ***
 Run And Check Include And Exclude
     [Arguments]    ${params}    @{tests}
-    Run Tests    ${params} ${ESCAPES}    ${DATA SOURCE}
+    Run Tests    ${params} ${ESCAPES}    @{DATA SOURCES}
     Stderr Should Be Empty
     Check Suite Contains Tests    ${SUITE}    @{tests}

 Run And Check Error
     [Arguments]    ${params}    ${filter_msg}
- Run Tests Without Processing Output ${params} ${ESCAPES} ${DATA SOURCE}
-    ${stderr} =    Get File    ${STDERR_FILE}
- Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Include And Exclude' with ${filter_msg} contains no test cases.\n\n Try --help for usage information. + Run Tests Without Processing Output ${params} ${ESCAPES} @{DATA SOURCES}
+    Stderr Should Be Equal To    SEPARATOR=
+ ... [ ERROR ] Suite 'Include And Exclude' with ${filter_msg} contains no test cases.
+    ...    ${USAGE TIP}\n
     File Should Not Exist    ${OUTFILE}
=======================================
--- /atest/robot/tags/include_and_exclude_with_rebot.txt Wed Jan 9 07:01:36 2013 +++ /atest/robot/tags/include_and_exclude_with_rebot.txt Wed Jan 9 07:09:41 2013
@@ -111,14 +111,14 @@
Check Times ${SUITE.tests[4]} 20061227 12:00:07.001 20061227 12:00:07.003 0002 Check Times ${SUITE.tests[5]} 20061227 12:00:07.003 20061227 12:00:07.007 0004 Check Times ${SUITE} 20061227 11:59:59.000 20061227 12:00:08.999 9999
-    Should Be Equal As Numbers    ${SUITE.test_count}    6
+    Length Should Be    ${SUITE.tests}    6
Comment 2) Filter ouput created in earlier step and check that times are set accordingly.
     Run Rebot    --include incl2 --include excl3 ${ESCAPES}    ${OUTFILE}
     Check Times    ${SUITE}    ${NONE}    ${NONE}    6004
Check Times ${SUITE.tests[0]} 20061227 12:00:01.000 20061227 12:00:03.000 2000 Check Times ${SUITE.tests[1]} 20061227 12:00:03.000 20061227 12:00:07.000 4000 Check Times ${SUITE.tests[2]} 20061227 12:00:07.003 20061227 12:00:07.007 004
-    Should Be Equal As Numbers    ${SUITE.test_count}    3
+    Length Should Be    ${SUITE.tests}    3

 *** Keywords ***
 Create Input Files
@@ -132,8 +132,8 @@
     Check Suite Contains Tests    ${SUITE}    @{tests}
     Should Be True    ${SUITE.statistics.all.passed} == len(@{tests})
     Should Be True    ${SUITE.statistics.all.failed} == 0
- ${exp start} = Evaluate ${NONE} if "${params}" else "${ORIG START}"
-    ${exp end} =    Evaluate    ${NONE} if "${params}" else "${ORIG END}"
+ ${exp start} = Set Variable If "${params}" ${NONE} ${ORIG START} + ${exp end} = Set Variable If "${params}" ${NONE} ${ORIG END}
     Should Be Equal    ${SUITE.starttime}    ${exp start}
     Should Be Equal    ${SUITE.endtime}    ${exp end}
     Is Valid Elapsed Time    ${SUITE.elapsedtime}
@@ -142,6 +142,7 @@
 Run And Check Error
     [Arguments]    ${params}    ${filter_msg}
Run Rebot Without Processing Output ${params} ${ESCAPES} ${INPUT FILE}
-    ${stderr} =    Get Stderr
- Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Include And Exclude' contains no tests ${filter_msg}.${USAGE TIP}
+    Stderr Should Be Equal To    SEPARATOR=
+ ... [ ERROR ] Suite 'Include And Exclude' contains no tests ${filter_msg}.
+    ...    ${USAGE TIP}\n
     File Should Not Exist    ${OUTFILE}

==============================================================================
Revision: 5099bab3ed05
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 08:29:07 2013
Log:      test cleanup
http://code.google.com/p/robotframework/source/detail?r=5099bab3ed05

Modified:
 /atest/robot/core/filter_by_names.txt
 /atest/robot/rebot/filter_by_names.txt

=======================================
--- /atest/robot/core/filter_by_names.txt       Mon Jun 18 00:57:01 2012
+++ /atest/robot/core/filter_by_names.txt       Wed Jan  9 08:29:07 2013
@@ -7,8 +7,6 @@
 ${TESTDATA_TEST}  misc/many_tests.txt
 ${TESTDATA_SUITES}  misc/suites
 ${ESCAPES}  --escape star:STAR --escape quest:QUEST --escape space:SPACE
-${TEST_ERROR_MESSAGE} Suite 'Many Tests' contains no test cases named 'notexists'.\n\n Try --help for usage information. -${SUITE_ERROR_MESSAGE} Suite 'Suites' contains no test suites named 'notexists'.\n\n Try --help for usage information.

 *** Test Cases ***
 One Call To Test
@@ -25,7 +23,8 @@
     Run And Check Tests  --test First --test thirdone  First  Third One

 One Call To Test With Nonexisting Test Name
- Run Failing Test --test notexists ${TESTDATA_TEST} ${TEST_ERROR_MESSAGE}
+    Run Failing Test  --test notexists  ${TESTDATA_TEST}
+    ...  Suite 'Many Tests' contains no test cases named 'notexists'.

 Two Calls To Test With One Nonexisting Test Name
     Run And Check Tests  --test notexists --test First  First
@@ -66,7 +65,8 @@
     Check Syslog Contains  Parsing file '${suitedir}${/}tsuite2.html

 Suite With No Matching Args
- Run Failing Test --suite notexists ${TESTDATA_SUITES} ${SUITE_ERROR_MESSAGE}
+    Run Failing Test  --suite notexists  ${TESTDATA_SUITES}
+    ...  Suite 'Suites' contains no test suites named 'notexists'.

 Suite With Matching And NonMatching Args
     Run Suites  --suite tsuite1 --suite notexists
@@ -156,8 +156,7 @@
     Stderr Should Be Empty

 Run Failing Test
-    [Arguments]  ${params}  ${testdata}  ${error_msg}
+    [Arguments]  ${params}  ${testdata}  ${error}
     Run Tests Without Processing Output  ${params} ${ESCAPES}  ${testdata}
-    ${stderr} =  Get Stderr
-    Should End With  ${stderr.strip()}  ${error_msg}
+    Stderr Should Be Equal To  [ ERROR ] ${error}${USAGE TIP}\n

=======================================
--- /atest/robot/rebot/filter_by_names.txt      Wed Sep 12 15:22:56 2012
+++ /atest/robot/rebot/filter_by_names.txt      Wed Jan  9 08:29:07 2013
@@ -54,14 +54,12 @@
Run And Check Suites and Tests --suite tsuite1 --suite tsuite3 --test STAR1first --test STAR2STAR Tsuite1 Suite1 First

 No Matching tests
-    Run Rebot Without Processing Output  --test nonex  ${INPUT FILE}
-    ${stderr} =  Get Stderr
- Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Many Tests & Suites' contains no tests named 'nonex'.${USAGE_TIP}
+    Failing Rebot  --test nonex  ${INPUT FILE}
+    ...  Suite 'Many Tests & Suites' contains no tests named 'nonex'.

 No Matching Suites
- Run Rebot Without Processing Output --suite nonex -s n2 -s n3 ${INPUT FILE}
-    ${stderr} =  Get Stderr
- Should Be Equal ${stderr.strip()} [ ERROR ] Suite 'Many Tests & Suites' contains no tests in suites 'nonex', 'n2' or 'n3'.${USAGE_TIP}
+    Failing Rebot  --suite nonex -s n2 -s n3  ${INPUT FILE}
+ ... Suite 'Many Tests & Suites' contains no tests in suites 'nonex', 'n2' or 'n3'.

 No Matching Tests In Matching Suites
Run Rebot Without Processing Output --suite nonex --suite suites --test first --test nonex --test STARone ${ESCAPES} ${INPUT FILE}
@@ -138,3 +136,7 @@
     Run Rebot  ${params} ${ESCAPES}  ${INPUT FILE}
     Stderr Should Be Empty

+Failing Rebot
+    [Arguments]  ${params}  ${input}  ${error}
+    Run Rebot Without Processing Output  ${params} ${ESCAPES}  ${input}
+    Stderr Should Be Equal To  [ ERROR ] ${error}${USAGE TIP}\n

==============================================================================
Revision: ec7386f91f5e
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 08:42:21 2013
Log:      import cleanup
http://code.google.com/p/robotframework/source/detail?r=ec7386f91f5e

Modified:
 /src/robot/result/testsuite.py

=======================================
--- /src/robot/result/testsuite.py      Wed Mar 14 05:58:57 2012
+++ /src/robot/result/testsuite.py      Wed Jan  9 08:42:21 2013
@@ -17,10 +17,10 @@
 from robot.model import TotalStatisticsBuilder
 from robot import model, utils

-from messagefilter import MessageFilter
-from keywordremover import KeywordRemover
-from testcase import TestCase
-from keyword import Keyword
+from .messagefilter import MessageFilter
+from .keywordremover import KeywordRemover
+from .keyword import Keyword
+from .testcase import TestCase


 class TestSuite(model.TestSuite):

==============================================================================
Revision: a2376ffc0a6e
Branch:   default
Author:   Robot Framework Developers ([email protected])
Date:     Wed Jan  9 08:47:50 2013
Log: Fixed error message when running/reboting multiple suites and no test match.

Update issue 1326
Status: Started
Owner: pekka.klarck
This ought to be now fixed, with tests, but I leave this open for review.
http://code.google.com/p/robotframework/source/detail?r=a2376ffc0a6e

Modified:
 /atest/robot/core/filter_by_names.txt
 /atest/robot/rebot/filter_by_names.txt
 /atest/robot/tags/include_and_exclude.txt
 /atest/robot/tags/include_and_exclude_with_rebot.txt
 /src/robot/common/model.py
 /src/robot/result/configurer.py

=======================================
--- /atest/robot/core/filter_by_names.txt       Wed Jan  9 08:29:07 2013
+++ /atest/robot/core/filter_by_names.txt       Wed Jan  9 08:47:50 2013
@@ -22,9 +22,18 @@
 Two Calls To Test
     Run And Check Tests  --test First --test thirdone  First  Third One

-One Call To Test With Nonexisting Test Name
-    Run Failing Test  --test notexists  ${TESTDATA_TEST}
+Non-Existing Test
+    Run Failing Test
     ...  Suite 'Many Tests' contains no test cases named 'notexists'.
+    ...  --test notexists  ${TESTDATA_TEST}
+
+Non-Existing Test When Running Multiple Suites
+    Run Failing Test
+ ... Suite 'Many Tests & Suites' contains no test cases named 'notexists'.
+    ...  --test notexists  ${TESTDATA_TEST}  ${TESTDATA_SUITES}
+    Run Failing Test
+    ...  Suite 'My Name' contains no test cases named 'notexists'.
+ ... --name My_Name --test notexists ${TESTDATA_TEST} ${TESTDATA_SUITES}

 Two Calls To Test With One Nonexisting Test Name
     Run And Check Tests  --test notexists --test First  First
@@ -64,9 +73,18 @@
     Check Syslog Contains  Parsing file '${suitedir}${/}tsuite1.html
     Check Syslog Contains  Parsing file '${suitedir}${/}tsuite2.html

-Suite With No Matching Args
-    Run Failing Test  --suite notexists  ${TESTDATA_SUITES}
+Non-Existing Suite
+    Run Failing Test
     ...  Suite 'Suites' contains no test suites named 'notexists'.
+    ...  --suite notexists  ${TESTDATA_SUITES}
+
+Non-Existing Suite When Running Multiple Suites
+    Run Failing Test
+ ... Suite 'Suites & Many Tests' contains no test suites named 'notexists'.
+    ...  --suite notexists  ${TESTDATA_SUITES}  ${TESTDATA_TEST}
+    Run Failing Test
+    ...  Suite 'Custom' contains no test suites named 'xxx'.
+    ...  --suite xxx -N Custom  ${TESTDATA_SUITES}  ${TESTDATA_TEST}

 Suite With Matching And NonMatching Args
     Run Suites  --suite tsuite1 --suite notexists
@@ -156,7 +174,7 @@
     Stderr Should Be Empty

 Run Failing Test
-    [Arguments]  ${params}  ${testdata}  ${error}
-    Run Tests Without Processing Output  ${params} ${ESCAPES}  ${testdata}
+    [Arguments]  ${error}  ${params}  @{inputs}
+    Run Tests Without Processing Output  ${params} ${ESCAPES}  @{inputs}
     Stderr Should Be Equal To  [ ERROR ] ${error}${USAGE TIP}\n

=======================================
--- /atest/robot/rebot/filter_by_names.txt      Wed Jan  9 08:29:07 2013
+++ /atest/robot/rebot/filter_by_names.txt      Wed Jan  9 08:47:50 2013
@@ -53,13 +53,31 @@
 Suite and test together
Run And Check Suites and Tests --suite tsuite1 --suite tsuite3 --test STAR1first --test STAR2STAR Tsuite1 Suite1 First

-No Matching tests
-    Failing Rebot  --test nonex  ${INPUT FILE}
+No matching tests
+    Failing Rebot
     ...  Suite 'Many Tests & Suites' contains no tests named 'nonex'.
+    ...  --test nonex  ${INPUT FILE}

-No Matching Suites
-    Failing Rebot  --suite nonex -s n2 -s n3  ${INPUT FILE}
+No matching tests when reboting multiple inputs
+    Failing Rebot
+ ... Suite 'Many Tests & Suites & Many Tests & Suites' contains no tests named 'nonex'.
+    ...  --test nonex  ${INPUT FILE}  ${INPUT FILE}
+    Failing Rebot
+    ...  Suite 'My Name' contains no tests named 'nonex'.
+    ...  --test nonex -N My_Name  ${INPUT FILE}  ${INPUT FILE}
+
+No matching suites
+    Failing Rebot
... Suite 'Many Tests & Suites' contains no tests in suites 'nonex', 'n2' or 'n3'.
+    ...  --suite nonex -s n2 -s n3  ${INPUT FILE}
+
+No matching suites when reboting multiple inputs
+    Failing Rebot
+ ... Suite 'Many Tests & Suites & Many Tests & Suites' contains no tests in suite 'nonex'.
+    ...  --suite nonex  ${INPUT FILE}  ${INPUT FILE}
+    Failing Rebot
+    ...  Suite 'CustomName' contains no tests in suite 'nonex'.
+    ...  --name CustomName --suite nonex  ${INPUT FILE}  ${INPUT FILE}

 No Matching Tests In Matching Suites
Run Rebot Without Processing Output --suite nonex --suite suites --test first --test nonex --test STARone ${ESCAPES} ${INPUT FILE}
@@ -137,6 +155,6 @@
     Stderr Should Be Empty

 Failing Rebot
-    [Arguments]  ${params}  ${input}  ${error}
-    Run Rebot Without Processing Output  ${params} ${ESCAPES}  ${input}
+    [Arguments]  ${error}  ${params}  @{inputs}
+    Run Rebot Without Processing Output  ${params} ${ESCAPES}  @{inputs}
     Stderr Should Be Equal To  [ ERROR ] ${error}${USAGE TIP}\n
=======================================
--- /atest/robot/tags/include_and_exclude.txt   Wed Jan  9 07:09:41 2013
+++ /atest/robot/tags/include_and_exclude.txt   Wed Jan  9 08:47:50 2013
@@ -85,6 +85,12 @@
     -i nonex -e nonex2    includes 'nonex' and excludes 'nonex2'
--include nonex -i incl? -e STAR1 -e STAR2 -e STAR3 includes 'nonex' and 'incl?' and excludes '*1', '*2' and '*3'

+Non Matching When Running Multiple Suites
+ [Setup] Set Test Variable @{DATA SOURCES} misc/pass_and_fail.txt misc/normal.txt
+    [Template]    Run And Check Error
+    --include nonex    includes 'nonex'    Pass And Fail & Normal
+    --include nonex --name MyName   includes 'nonex'    MyName
+
 *** Keywords ***
 Run And Check Include And Exclude
     [Arguments]    ${params}    @{tests}
@@ -93,9 +99,9 @@
     Check Suite Contains Tests    ${SUITE}    @{tests}

 Run And Check Error
-    [Arguments]    ${params}    ${filter_msg}
+ [Arguments] ${params} ${filter_msg} ${suite name}=Include And Exclude Run Tests Without Processing Output ${params} ${ESCAPES} @{DATA SOURCES}
     Stderr Should Be Equal To    SEPARATOR=
- ... [ ERROR ] Suite 'Include And Exclude' with ${filter_msg} contains no test cases. + ... [ ERROR ] Suite '${suite name}' with ${filter_msg} contains no test cases.
     ...    ${USAGE TIP}\n
     File Should Not Exist    ${OUTFILE}
=======================================
--- /atest/robot/tags/include_and_exclude_with_rebot.txt Wed Jan 9 07:09:41 2013 +++ /atest/robot/tags/include_and_exclude_with_rebot.txt Wed Jan 9 08:47:50 2013
@@ -11,6 +11,7 @@
 ${TEST FILE2}     tags/no_force_no_default_tags.txt
 ${INPUT FILE}     %{TEMPDIR}/robot-tags-input.xml
 ${INPUT FILE 2}    %{TEMPDIR}/robot-tags-input-2.xml
+@{INPUT FILES}    ${INPUT FILE}
 ${ESCAPES}        --escape star:STAR --escape quest:QUEST --escape amp:AMP
 @{INCL_ALL}       Incl-1    Incl-12    Incl-123
 @{EXCL_ALL}       Excl-1    Excl-12    Excl-123
@@ -71,11 +72,11 @@
     --include incl1NOTincl3 --exclude incl1NOTincl2    Incl-12

 Select tests without any tags
-    [Setup]    Set Test Variable    ${INPUT FILE}    ${INPUT FILE 2}
+    [Setup]    Set Test Variable    @{INPUT FILES}    ${INPUT FILE 2}
--exclude STAR No Own Tags No Force Nor Default Own Tags Empty No Force Nor Default

 Select tests with any tag
-    [Setup]    Set Test Variable    ${INPUT FILE}    ${INPUT FILE 2}
+    [Setup]    Set Test Variable    @{INPUT FILES}    ${INPUT FILE 2}
     --include STAR    Own Tags No Force Nor Default

 Non Matching Include
@@ -91,6 +92,12 @@
     -i nonex -e nonex2    with tag 'nonex' and without tag 'nonex2'
--include nonex -i incl? -e STAR1 -e STAR2 -e STAR3 with tags 'nonex' or 'incl?' and without tags '*1', '*2' or '*3'

+Non Matching When Reboting Multiple Outputs
+ [Setup] Set Test Variable @{INPUT FILES} ${INPUT FILE} ${INPUT FILE 2}
+    [Template]    Run And Check Error
+ --include nonex with tag 'nonex' Include And Exclude & No Force No Default Tags
+    --include nonex --name MyName   with tag 'nonex'    MyName
+
 Including With Robot And Including And Excluding With Rebot
[Setup] Create Output With Robot ${INPUT FILE} --include incl1 --exclude nonexisting ${TESTFILE}
     -i iSTAR2STAR -e nonexisting -e incl3    Incl-12
@@ -127,7 +134,7 @@

 Run And Check Include And Exclude
     [Arguments]    ${params}    @{tests}
-    Run Rebot    ${params} ${ESCAPES}    ${INPUT FILE}
+    Run Rebot    ${params} ${ESCAPES}    @{INPUT FILES}
     Stderr Should Be Empty
     Check Suite Contains Tests    ${SUITE}    @{tests}
     Should Be True    ${SUITE.statistics.all.passed} == len(@{tests})
@@ -140,9 +147,9 @@
     Should Be True    ${SUITE.elapsedtime} <= ${ORIG ELAPSED}

 Run And Check Error
-    [Arguments]    ${params}    ${filter_msg}
- Run Rebot Without Processing Output ${params} ${ESCAPES} ${INPUT FILE} + [Arguments] ${params} ${filter msg} ${suite name}=Include And Exclude + Run Rebot Without Processing Output ${params} ${ESCAPES} @{INPUT FILES}
     Stderr Should Be Equal To    SEPARATOR=
- ... [ ERROR ] Suite 'Include And Exclude' contains no tests ${filter_msg}.
+    ...    [ ERROR ] Suite '${suite name}' contains no tests ${filter msg}.
     ...    ${USAGE TIP}\n
     File Should Not Exist    ${OUTFILE}
=======================================
--- /src/robot/common/model.py  Wed Jan  2 10:46:37 2013
+++ /src/robot/common/model.py  Wed Jan  9 08:47:50 2013
@@ -23,8 +23,7 @@
 class _TestAndSuiteHelper:
     _longname = None

-    def __init__(self, name, parent=None):
-        self.name = name
+    def __init__(self, parent=None):
         self.doc = ''
         self.parent = parent
         self.setup = None
@@ -59,10 +58,11 @@


 class BaseTestSuite(_TestAndSuiteHelper):
-    """Base class for TestSuite used in runtime and by rebot."""
+ """Base class for TestSuite used in runtime and but not anymore by rebot."""

     def __init__(self, name, source=None, parent=None):
-        _TestAndSuiteHelper.__init__(self, name, parent)
+        _TestAndSuiteHelper.__init__(self, parent)
+        self._name = name
         self.source = utils.abspath(source) if source else None
         self._id = None
         self.metadata = utils.NormalizedDict()
@@ -76,12 +76,12 @@

     def set_name(self, name):
         if name:
-            self.name = name
-        elif self._is_multi_source_suite():
-            self.name = ' & '.join(suite.name for suite in self.suites)
+            self._name = name

-    def _is_multi_source_suite(self):
-        return self.parent is None and self.name == ''
+    def _get_name(self):
+ return self._name or ' & '.join(suite.name for suite in self.suites)
+
+    name = property(_get_name, set_name)

     @property
     def id(self):
@@ -204,8 +204,9 @@
def filter_by_names(self, suites=None, tests=None, zero_tests_ok=False):
         suites = [([], name.split('.')) for name in suites or []]
tests = utils.MultiMatcher(tests, ignore=['_'], match_if_no_patterns=True)
+        name = self.name
         if not self._filter_by_names(suites, tests) and not zero_tests_ok:
-            self._raise_no_tests_filtered_by_names(suites, tests)
+            self._raise_no_tests_filtered_by_names(name, suites, tests)

     def _filter_by_names(self, suites, tests):
         suites = self._filter_suite_names(suites)
@@ -231,7 +232,7 @@
             return (parent + [suite[0]], suite[1:])
         return ([], parent + suite)

-    def _raise_no_tests_filtered_by_names(self, suites, tests):
+    def _raise_no_tests_filtered_by_names(self, name, suites, tests):
         tests = utils.seq2str(list(tests), lastsep=' or ')
         suites = utils.seq2str(['.'.join(p + s) for p, s in suites],
                                lastsep=' or ')
@@ -241,13 +242,14 @@
             msg = 'test suites named %s.' % suites
         else:
             msg = 'test cases %s in suites %s.' % (tests, suites)
-        raise DataError("Suite '%s' contains no %s" % (self.name, msg))
+        raise DataError("Suite '%s' contains no %s" % (name, msg))

def filter_by_tags(self, includes=None, excludes=None, zero_tests_ok=False):
         includes = includes or []
         excludes = excludes or []
+        name = self.name
if not self._filter_by_tags(includes, excludes) and not zero_tests_ok:
-            self._raise_no_tests_filtered_by_tags(includes, excludes)
+            self._raise_no_tests_filtered_by_tags(name, includes, excludes)

     def _filter_by_tags(self, incls, excls):
         self.suites = [suite for suite in self.suites
@@ -256,10 +258,10 @@
                       if test.is_included(incls, excls)]
         return bool(self.suites or self.tests)

-    def _raise_no_tests_filtered_by_tags(self, incls, excls):
+    def _raise_no_tests_filtered_by_tags(self, name, incls, excls):
         incl = utils.seq2str(incls)
         excl = utils.seq2str(excls)
-        msg = "Suite '%s' with "  % self.name
+        msg = "Suite '%s' with "  % name
         if incl:
             msg += 'includes %s ' % incl
             if excl:
@@ -292,13 +294,13 @@
             suite.set_runmode(runmode)

     def set_options(self, settings):
+        self.set_name(settings['Name'])
+        self.set_doc(settings['Doc'])
+        self.set_metadata(settings['Metadata'])
         self.set_tags(settings['SetTag'])
         self.filter(settings['SuiteNames'], settings['TestNames'],
                     settings['Include'], settings['Exclude'],
                     settings['RunEmptySuite'])
-        self.set_name(settings['Name'])
-        self.set_doc(settings['Doc'])
-        self.set_metadata(settings['Metadata'])
self.set_critical_tags(settings['Critical'], settings['NonCritical'])
         self._return_status_rc = not settings['NoStatusRC']
         if 'RunMode' in settings:
@@ -325,7 +327,8 @@
 class BaseTestCase(_TestAndSuiteHelper):

     def __init__(self, name, parent):
-        _TestAndSuiteHelper.__init__(self, name, parent)
+        _TestAndSuiteHelper.__init__(self, parent)
+        self.name = name
         self.critical = True
         if parent:
             parent.tests.append(self)
=======================================
--- /src/robot/result/configurer.py     Tue Jun  5 05:58:19 2012
+++ /src/robot/result/configurer.py     Wed Jan  9 08:47:50 2013
@@ -56,10 +56,11 @@

     def configure(self, suite):
         self._set_suite_attributes(suite)
+        name = suite.name
         suite.filter(self.include_suites, self.include_tests,
                      self.include_tags, self.exclude_tags)
         if not (suite.test_count or self.process_empty_suite):
-            self._raise_no_tests_error(suite.name)
+            self._raise_no_tests_error(name)
         suite.set_tags(self.add_tags, self.remove_tags)
         for how in self.remove_keywords:
             suite.remove_keywords(how)

Reply via email to