2 new revisions:

Revision: 6706ccf01a73
Branch:   default
Author:   Anssi Syrjäsalo
Date:     Thu May 30 03:59:56 2013
Log:      Added --runmode option validation...
http://code.google.com/p/robotframework/source/detail?r=6706ccf01a73

Revision: 62d598425c9b
Branch:   default
Author:   Anssi Syrjäsalo
Date:     Thu May 30 04:00:03 2013
Log:      Automated merge with https://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/source/detail?r=62d598425c9b

==============================================================================
Revision: 6706ccf01a73
Branch:   default
Author:   Anssi Syrjäsalo
Date:     Thu May 30 03:59:56 2013
Log:      Added --runmode option validation

Update issue 1445

Added validations for --runmode values. Also fixed tests for invalid --runmode and --randomize option values.
http://code.google.com/p/robotframework/source/detail?r=6706ccf01a73

Added:
 /atest/robot/running/deprecated_runmode/invalid_runmode.txt
Modified:
 /atest/robot/cli/runner/invalid_usage.txt
 /atest/robot/cli/runner/randomize.txt
 /atest/robot/running/deprecated_runmode/stopping_with_signal.txt
 /src/robot/conf/settings.py

=======================================
--- /dev/null
+++ /atest/robot/running/deprecated_runmode/invalid_runmode.txt Thu May 30 03:59:56 2013
@@ -0,0 +1,8 @@
+*** Settings ***
+Force Tags      regression  pybot  jybot
+Resource        ../../cli/runner/cli_resource.txt
+
+
+*** Test Cases ***
+Invalid Runmode
+ Run Should Fail --runmode INVALID ${TESTFILE} Option '--runmode' does not support value 'INVALID'.
=======================================
--- /atest/robot/cli/runner/invalid_usage.txt   Wed May 29 13:53:54 2013
+++ /atest/robot/cli/runner/invalid_usage.txt   Thu May 30 03:59:56 2013
@@ -1,6 +1,6 @@
 *** Settings ***
 Test Setup      Create Output Directory
-Force Tags    regression  pybot  jybot
+Force Tags      regression  pybot  jybot
 Resource        cli_resource.txt


@@ -23,8 +23,7 @@
     Run Should Fail  --name valid -X ${TESTFILE}  option -X not recognized

 Invalid Option Values
- Run Tests --suitestatlevel not_int --tagstatlink less_than_3x_: --runmode invalid ${TESTFILE} + [Setup] Run Tests --suitestatlevel not_int --tagstatlink less_than_3x_: ${TESTFILE} Stderr Should Contain Once Option '--suitestatlevel' expected integer value but got 'not_int'. Default value used instead.\n Stderr Should Contain Once Invalid format for option '--tagstatlink'. Expected 'tag:link:title' but got 'less_than_3x_:'.\n - Stderr Should Contain Once Option '--runmode' does not support value 'INVALID'.\n
     Should Be Equal  ${SUITE.status}  PASS
=======================================
--- /atest/robot/cli/runner/randomize.txt       Wed May 29 03:45:04 2013
+++ /atest/robot/cli/runner/randomize.txt       Thu May 30 03:59:56 2013
@@ -30,9 +30,8 @@
     ${tests} =  Get Tests
     Should Be Equal As Strings  ${tests}  ${DEFAULT TEST ORDER}

-Invalid Option Value
-    [Setup]  Run Tests  --randomize invalid  ${TESTFILE}
- Stderr Should Contain Once Option '--randomize' does not support value 'invalid'.\n
+Invalid Option value
+ Run Should Fail --randomize INVALID ${TESTFILE} Option '--randomize' does not support value 'INVALID'.

 *** Keywords ***
 Check That Default Orders Are Correct
=======================================
--- /atest/robot/running/deprecated_runmode/stopping_with_signal.txt Wed May 29 06:51:24 2013 +++ /atest/robot/running/deprecated_runmode/stopping_with_signal.txt Thu May 30 03:59:56 2013
@@ -84,7 +84,7 @@

 *** Keywords ***
 Start And Send Signal
- [Arguments] ${datasource} ${signals} ${sleep}=0s ${runmode}=normal + [Arguments] ${datasource} ${signals} ${sleep}=0s ${runmode}=${EMPTY}
     Remove File    ${TEST FILE}
     Start Run    ${datasource}    ${sleep}    ${runmode}
     Wait Until Created    ${TESTFILE}    timeout=45s
@@ -98,13 +98,17 @@
     @{runner} =    Get Runner    ${INTERPRETER}    ${ROBOTPATH}
     @{command} =    Create List
     ...    @{runner}
-    ...    --output    ${OUTFILE}    --report    NONE    --log    NONE
-    ...    --variable    TESTSIGNALFILE:${TEST FILE}
-    ...    --variable    TEARDOWNSLEEP:${sleep}
-    ...    --runmode  ${runmode}
-    ...    ${datasource}
+    ...    --output     ${OUTFILE}    --report    NONE    --log    NONE
+    ...    --variable   TESTSIGNALFILE:${TEST FILE}
+    ...    --variable   TEARDOWNSLEEP:${sleep}
+ Run Keyword Unless '${runmode}' == '${EMPTY}' Set Runmode ${command} ${runmode}
+    Append To List  ${command}  ${datasource}
     Log Many    @{command}
     ProcessManager.start process    @{command}
+
+Set Runmode
+    [Arguments]   ${command}   ${runmode}
+    Append To List  ${command}  --runmode   ${runmode}

 Check Test Cases Have Failed Correctly
     Check Test Case    Test    FAIL    Execution terminated by signal
=======================================
--- /src/robot/conf/settings.py Wed May 29 05:05:22 2013
+++ /src/robot/conf/settings.py Thu May 30 03:59:56 2013
@@ -110,8 +110,10 @@
return [v for v in [self._process_tag_stat_link(v) for v in value] if v]
         if name == 'Randomize':
             return self._process_randomize_value(value)
-        if name in ['RemoveKeywords', 'RunMode']:
+        if name == 'RemoveKeywords':
             return [v.upper() for v in value]
+        if name == 'RunMode':
+            return [self._process_runmode_value(v) for v in value]
         return value

     def _process_log_level(self, level):
@@ -141,8 +143,19 @@
         if formatted_value in ('test', 'suite'):
             formatted_value += 's'
         if formatted_value not in ('tests', 'suites', 'none', 'all'):
- raise DataError("Option '--randomize' does not support value '%s'"
-                            % original_value)
+            self._raise_invalid_option_value('--randomize', original_value)
+        return formatted_value
+
+    def _raise_invalid_option_value(self, option_name, given_value):
+        raise DataError("Option '%s' does not support value '%s'." %
+                        (option_name, given_value))
+
+    def _process_runmode_value(self, original_value):
+        formatted_value = original_value.lower()
+        if formatted_value not in ('exitonfailure', 'skipteardownonexit',
+                                   'dryrun', 'random:test', 'random:suite',
+                                   'random:all'):
+            self._raise_invalid_option_value('--runmode', original_value)
         return formatted_value

     def __getitem__(self, name):
@@ -350,27 +363,27 @@
     @property
     def randomize_suites(self):
         return (self['Randomize'] in ('suites', 'all') or
- any(mode in ('RANDOM:SUITE', 'RANDOM:ALL') for mode in self['RunMode'])) + any(mode in ('random:suite', 'random:all') for mode in self['RunMode']))

     @property
     def randomize_tests(self):
         return (self['Randomize'] in ('tests', 'all') or
- any(mode in ('RANDOM:TEST', 'RANDOM:ALL') for mode in self['RunMode'])) + any(mode in ('random:test', 'random:all') for mode in self['RunMode']))

     @property
     def dry_run(self):
         return (self['DryRun'] or
-                any(mode == 'DRYRUN' for mode in self['RunMode']))
+                any(mode == 'dryrun' for mode in self['RunMode']))

     @property
     def exit_on_failure(self):
         return (self['ExitOnFailure'] or
-                any(mode == 'EXITONFAILURE' for mode in self['RunMode']))
+                any(mode == 'exitonfailure' for mode in self['RunMode']))

     @property
     def skip_teardown_on_exit(self):
         return (self['SkipTeardownOnExit'] or
- any(mode == 'SKIPTEARDOWNONEXIT' for mode in self['RunMode'])) + any(mode == 'skipteardownonexit' for mode in self['RunMode']))


 class RebotSettings(_BaseSettings):

==============================================================================
Revision: 62d598425c9b
Branch:   default
Author:   Anssi Syrjäsalo
Date:     Thu May 30 04:00:03 2013
Log:      Automated merge with https://code.google.com/p/robotframework/
http://code.google.com/p/robotframework/source/detail?r=62d598425c9b

Modified:
 /src/robot/conf/settings.py

=======================================
--- /src/robot/conf/settings.py Thu May 30 01:54:57 2013
+++ /src/robot/conf/settings.py Thu May 30 04:00:03 2013
@@ -110,8 +110,10 @@
return [v for v in [self._process_tag_stat_link(v) for v in value] if v]
         if name == 'Randomize':
             return self._process_randomize_value(value)
-        if name in ['RemoveKeywords', 'RunMode']:
+        if name == 'RemoveKeywords':
             return [v.upper() for v in value]
+        if name == 'RunMode':
+            return [self._process_runmode_value(v) for v in value]
         return value

     def _process_log_level(self, level):
@@ -141,8 +143,19 @@
         if formatted_value in ('test', 'suite'):
             formatted_value += 's'
         if formatted_value not in ('tests', 'suites', 'none', 'all'):
- raise DataError("Option '--randomize' does not support value '%s'"
-                            % original_value)
+            self._raise_invalid_option_value('--randomize', original_value)
+        return formatted_value
+
+    def _raise_invalid_option_value(self, option_name, given_value):
+        raise DataError("Option '%s' does not support value '%s'." %
+                        (option_name, given_value))
+
+    def _process_runmode_value(self, original_value):
+        formatted_value = original_value.lower()
+        if formatted_value not in ('exitonfailure', 'skipteardownonexit',
+                                   'dryrun', 'random:test', 'random:suite',
+                                   'random:all'):
+            self._raise_invalid_option_value('--runmode', original_value)
         return formatted_value

     def __getitem__(self, name):
@@ -352,27 +365,27 @@
     @property
     def randomize_suites(self):
         return (self['Randomize'] in ('suites', 'all') or
- any(mode in ('RANDOM:SUITE', 'RANDOM:ALL') for mode in self['RunMode'])) + any(mode in ('random:suite', 'random:all') for mode in self['RunMode']))

     @property
     def randomize_tests(self):
         return (self['Randomize'] in ('tests', 'all') or
- any(mode in ('RANDOM:TEST', 'RANDOM:ALL') for mode in self['RunMode'])) + any(mode in ('random:test', 'random:all') for mode in self['RunMode']))

     @property
     def dry_run(self):
         return (self['DryRun'] or
-                any(mode == 'DRYRUN' for mode in self['RunMode']))
+                any(mode == 'dryrun' for mode in self['RunMode']))

     @property
     def exit_on_failure(self):
         return (self['ExitOnFailure'] or
-                any(mode == 'EXITONFAILURE' for mode in self['RunMode']))
+                any(mode == 'exitonfailure' for mode in self['RunMode']))

     @property
     def skip_teardown_on_exit(self):
         return (self['SkipTeardownOnExit'] or
- any(mode == 'SKIPTEARDOWNONEXIT' for mode in self['RunMode'])) + any(mode == 'skipteardownonexit' for mode in self['RunMode']))


 class RebotSettings(_BaseSettings):

--

--- You received this message because you are subscribed to the Google Groups "robotframework-commit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to