]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
remove improper assert usage
authorKun Huang <gareth@unitedstack.com>
Thu, 11 Jul 2013 04:04:52 +0000 (12:04 +0800)
committerKun Huang <gareth@unitedstack.com>
Thu, 11 Jul 2013 04:22:15 +0000 (12:22 +0800)
There're many talks about it. An assert should be used for `never
happen` cases, not common paramaters validating.

With grep, we could many all assert statement used in none-test codes:

cinder/volume/drivers/san/solaris.py:110:
cinder/volume/drivers/san/solaris.py:116:
cinder/volume/drivers/san/solaris.py:161:
cinder/volume/drivers/san/solaris.py:162:
cinder/volume/drivers/san/solaris.py:163:
cinder/volume/drivers/san/solaris.py:164:
cinder/volume/drivers/san/solaris.py:170:
    checking cmd output which should never changed, so leave it
cinder/db/sqlalchemy/migration.py:113:
    ensure file existence from impossible cases, so leave it
cinder/utils.py:
    used for functional flow, so use ValueError instead

fixes bug #1199354
Change-Id: I2b1701269bdf7c8737548e57bd940921a6256372

cinder/utils.py

index 276e80d295fc6311ecd573360430c1d0f8f7ea5a..49b3c256402c1073ea6fbd75b1dc4f6d55480bff 100644 (file)
@@ -590,21 +590,20 @@ def xhtml_escape(value):
 def utf8(value):
     """Try to turn a string into utf-8 if possible.
 
-    Code is directly from the utf8 function in
-    http://github.com/facebook/tornado/blob/master/tornado/escape.py
-
     """
     if isinstance(value, unicode):
         return value.encode('utf-8')
-    assert isinstance(value, str)
-    return value
+    elif isinstance(value, str):
+        return value
+    else:
+        raise ValueError("%s is not a string" % value)
 
 
 def get_from_path(items, path):
     """Returns a list of items matching the specified path.
 
     Takes an XPath-like expression e.g. prop1/prop2/prop3, and for each item
-    in items, looks up items[prop1][prop2][prop3].  Like XPath, if any of the
+    in items, looks up items[prop1][prop2][prop3]. Like XPath, if any of the
     intermediate results are lists it will treat each list item individually.
     A 'None' in items or any child expressions will be ignored, this function
     will not throw because of None (anywhere) in items.  The returned list