python: Add function to look for unsubsituted variables.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 24 Jan 2008 21:18:27 +0000 (22:18 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Thu, 24 Jan 2008 21:18:27 +0000 (22:18 +0100)
source/scripting/python/samba/__init__.py
source/scripting/python/samba/tests/__init__.py

index 483929661dade3838081d6efaa0842e8585bd47a..b5d7f2ebc793f69f23992f693216312ad16559bb 100644 (file)
@@ -192,6 +192,21 @@ def substitute_var(text, values):
     return text
 
 
+def check_all_substituted(text):
+    """Make sure that all substitution variables in a string have been replaced.
+    If not, raise an exception.
+    
+    :param text: The text to search for substitution variables
+    """
+    if not "${" in text:
+       return
+    
+    var_start = text.find("${")
+    var_end = text.find("}", var_start)
+    
+    raise Exception("Not all variables substituted: %s" % text[var_start:var_end])
+
+
 def valid_netbios_name(name):
     """Check whether a name is valid as a NetBIOS name. """
     # FIXME: There are probably more constraints here. 
index ad8a2524b53a87d2d49d74087f30a672b9a13474..6fbf420339518a6c23e4562232e234597ac16cb8 100644 (file)
@@ -67,6 +67,10 @@ class SubstituteVarTestCase(unittest.TestCase):
     def test_unknown_var(self):
         self.assertEquals("foo ${bla} gsff", 
                 samba.substitute_var("foo ${bla} gsff", {"bar": "bla"}))
+                
+    def test_check_all_substituted(self):
+       check_all_substituted("nothing to see here")
+       self.assertRaises(Exception, check_all_substituted, "Not subsituted: ${FOOBAR}")
 
 
 class LdbExtensionTests(TestCaseInTempDir):