diff options
author | Abhijit Menon-Sen <ams@2ndQuadrant.com> | 2015-09-17 16:02:14 +0200 |
---|---|---|
committer | Abhijit Menon-Sen <ams@2ndQuadrant.com> | 2015-09-17 16:02:14 +0200 |
commit | abd006657bc302db4f1979610fe738bba7aa6ce4 (patch) | |
tree | 33c28b9ae4a3ce8c38bb8573847e16fe6dd7a396 /test/units/inventory | |
parent | Use ',' instead of ':' or ';' to separate host patterns (diff) | |
download | ansible-abd006657bc302db4f1979610fe738bba7aa6ce4.tar.xz ansible-abd006657bc302db4f1979610fe738bba7aa6ce4.zip |
Add test/units/inventory with a few _split_pattern tests
There were no inventory-specific unit tests earlier, so we add a new
directory for them with some initial low-level tests of _split_pattern
with various valid and deprecated pattern strings.
Diffstat (limited to 'test/units/inventory')
-rw-r--r-- | test/units/inventory/__init__.py | 21 | ||||
-rw-r--r-- | test/units/inventory/test_inventory.py | 58 |
2 files changed, 79 insertions, 0 deletions
diff --git a/test/units/inventory/__init__.py b/test/units/inventory/__init__.py new file mode 100644 index 0000000000..785fc45992 --- /dev/null +++ b/test/units/inventory/__init__.py @@ -0,0 +1,21 @@ +# (c) 2012-2014, Michael DeHaan <michael.dehaan@gmail.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + diff --git a/test/units/inventory/test_inventory.py b/test/units/inventory/test_inventory.py new file mode 100644 index 0000000000..3869e15b58 --- /dev/null +++ b/test/units/inventory/test_inventory.py @@ -0,0 +1,58 @@ +# Copyright 2015 Abhijit Menon-Sen <ams@2ndQuadrant.com> +# +# This file is part of Ansible +# +# Ansible is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Ansible 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Ansible. If not, see <http://www.gnu.org/licenses/>. + +# Make coding more python3-ish +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible.compat.tests import unittest +from ansible.compat.tests.mock import patch, MagicMock + +from ansible.errors import AnsibleError, AnsibleParserError +from ansible.inventory import Inventory +from ansible.vars import VariableManager + +from units.mock.loader import DictDataLoader + +class TestInventory(unittest.TestCase): + + patterns = { + 'a': ['a'], + 'a, b': ['a', 'b'], + 'a , b': ['a', 'b'], + ' a,b ,c[1:2] ': ['a', 'b', 'c[1:2]'], + '9a01:7f8:191:7701::9': ['9a01:7f8:191:7701::9'], + '9a01:7f8:191:7701::9,9a01:7f8:191:7701::9': ['9a01:7f8:191:7701::9', '9a01:7f8:191:7701::9'], + '9a01:7f8:191:7701::9,9a01:7f8:191:7701::9,foo': ['9a01:7f8:191:7701::9', '9a01:7f8:191:7701::9','foo'], + 'foo[1:2]': ['foo[1:2]'], + 'a::b': ['a::b'], + 'a:b': ['a', 'b'], + ' a : b ': ['a', 'b'], + 'foo:bar:baz[1:2]': ['foo', 'bar', 'baz[1:2]'], + } + + def setUp(self): + v = VariableManager() + fake_loader = DictDataLoader({}) + + self.i = Inventory(loader=fake_loader, variable_manager=v, host_list='') + + def test_split_patterns(self): + + for p in self.patterns: + r = self.patterns[p] + self.assertEqual(r, self.i._split_pattern(p)) |