diff options
-rw-r--r-- | buildtools/wafsamba/samba_utils.py | 3 | ||||
-rw-r--r-- | buildtools/wafsamba/tests/test_utils.py | 38 |
2 files changed, 38 insertions, 3 deletions
diff --git a/buildtools/wafsamba/samba_utils.py b/buildtools/wafsamba/samba_utils.py index 71cfbc5b60..519b77bdf0 100644 --- a/buildtools/wafsamba/samba_utils.py +++ b/buildtools/wafsamba/samba_utils.py @@ -233,8 +233,7 @@ def subst_vars_error(string, env): if re.match('\$\{\w+\}', v): vname = v[2:-1] if not vname in env: - Logs.error("Failed to find variable %s in %s" % (vname, string)) - sys.exit(1) + raise KeyError("Failed to find variable %s in %s" % (vname, string)) v = env[vname] out.append(v) return ''.join(out) diff --git a/buildtools/wafsamba/tests/test_utils.py b/buildtools/wafsamba/tests/test_utils.py index 96e4f98f2c..c40f71eaad 100644 --- a/buildtools/wafsamba/tests/test_utils.py +++ b/buildtools/wafsamba/tests/test_utils.py @@ -1,6 +1,26 @@ +# Copyright (C) 2012 Jelmer Vernooij <jelmer@samba.org> + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License for more details. + +# You should have received a copy of the GNU Lesser General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + from wafsamba.tests import TestCase -from wafsamba.samba_utils import TO_LIST +from wafsamba.samba_utils import ( + TO_LIST, + subst_vars_error, + unique_list, + ) class ToListTests(TestCase): @@ -19,3 +39,19 @@ class ToListTests(TestCase): self.assertEquals(["foo", "bar"], TO_LIST("foo,bar", ",")) self.assertEquals([" foo", "bar "], TO_LIST(" foo,bar ", ",")) self.assertEquals([" \" foo\"", " bar "], TO_LIST(" \" foo\", bar ", ",")) + + +class UniqueListTests(TestCase): + + def test_unique_list(self): + self.assertEquals(["foo", "bar"], unique_list(["foo", "bar", "foo"])) + + +class SubstVarsErrorTests(TestCase): + + def test_valid(self): + self.assertEquals("", subst_vars_error("")) + self.assertEquals("FOO bar", subst_vars_error("${F} bar", {"F": "FOO"})) + + def test_invalid(self): + self.assertRaises(KeyError, subst_vars_error, "${F}", {}) |