Updated Branches:
  refs/heads/master 47641637f -> 58cd71f5c

Added a verifyElementInList utility function

The purpose is to verify a given element in list
at a given position with few error checks like
list type,empty list and position
Returns appropriate codes based upon the inputs.
Can be used under tests instead of multiple asserts

Signed-off-by: Santhosh Edukulla <santhosh.eduku...@citrix.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/58cd71f5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/58cd71f5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/58cd71f5

Branch: refs/heads/master
Commit: 58cd71f5c1ff3962827e166e8e0a5aca5a928818
Parents: 4764163
Author: Santhosh Edukulla <santhosh.eduku...@citrix.com>
Authored: Fri Nov 1 16:55:07 2013 +0530
Committer: Girish Shilamkar <gir...@clogeny.com>
Committed: Fri Nov 1 16:55:07 2013 +0530

----------------------------------------------------------------------
 tools/marvin/marvin/codes.py                 |  1 +
 tools/marvin/marvin/integration/lib/utils.py | 40 +++++++++++++++++++++++
 2 files changed, 41 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/58cd71f5/tools/marvin/marvin/codes.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/codes.py b/tools/marvin/marvin/codes.py
index bd01ad3..b6580d0 100644
--- a/tools/marvin/marvin/codes.py
+++ b/tools/marvin/marvin/codes.py
@@ -39,3 +39,4 @@ INVALID_INPUT = "INVALID INPUT"
 EMPTY_LIST = "EMPTY_LIST"
 FAIL = 0
 PASS = 1
+MATCH_NOT_FOUND = "ELEMENT NOT FOUND IN THE INPUT"

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/58cd71f5/tools/marvin/marvin/integration/lib/utils.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/integration/lib/utils.py 
b/tools/marvin/marvin/integration/lib/utils.py
index b6e38ec..d53c1ae 100644
--- a/tools/marvin/marvin/integration/lib/utils.py
+++ b/tools/marvin/marvin/integration/lib/utils.py
@@ -353,3 +353,43 @@ def validateList(inp):
             ret[2] = EMPTY_LIST
             return ret
         return [PASS, inp[0], None]
+
+def verifyElementInList(inp, toverify, pos = 0):
+       '''
+       @name: verifyElementInList
+       @Description: 
+              1. A utility function to validate
+                 whether the input passed is a list.
+                 The list is empty or not.
+                 If it is list and not empty, verify
+                 whether a given element is there in that list or not
+                 at a given pos  
+       @Input: 
+              I  : Input to be verified whether its a list or not
+             II  : Element to verify whether it exists in the list 
+             III : Position in the list at which the input element to verify
+                    default to 0
+       @output: List, containing [ Result,Reason ]
+                Ist Argument('Result') : FAIL : If it is not a list
+                                          If it is list but empty
+                                          PASS : If it is list and not empty
+                                              and matching element was found
+                IIrd Argument( 'Reason' ): Reason for failure ( FAIL ),
+                                            default to None.
+                                            INVALID_INPUT
+                                            EMPTY_LIST
+                                            MATCH_NOT_FOUND
+       '''
+       if toverify is None or toverify == '' \
+           or pos is None or pos < -1 or pos == '':
+           return [FAIL, INVALID_INPUT]
+       out = validateList(inp)
+       if out[0] == FAIL:
+           return [FAIL, out[2]]
+       if out[0] == PASS:
+           if len(inp) > pos and inp[pos] == toverify:
+               return [PASS, None]
+           else:
+               return [FAIL, MATCH_NOT_FOUND]
+
+

Reply via email to