diff options
author | Edward MacGillivray <edward.s.macgillivray@intel.com> | 2017-10-13 14:01:39 -0700 |
---|---|---|
committer | Ross Brattain <ross.b.brattain@intel.com> | 2017-10-18 17:07:19 -0700 |
commit | 55f9b4a3d2052ccd5d8148be1209806141898912 (patch) | |
tree | bac270d9506dcdd4ed3a47c19f12cd5fa298237a /tests/unit/network_services/vnf_generic/vnf | |
parent | 357958bd97dd3e0b1864dfb3d3f973c04c3602a9 (diff) |
Relocate iniparser to yardstick.network_services.helpers
Change-Id: I1f457c9c24f2ca84dde61b64f58edaff8952670a
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Diffstat (limited to 'tests/unit/network_services/vnf_generic/vnf')
-rw-r--r-- | tests/unit/network_services/vnf_generic/vnf/test_iniparser.py | 225 | ||||
-rw-r--r-- | tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py | 2 |
2 files changed, 1 insertions, 226 deletions
diff --git a/tests/unit/network_services/vnf_generic/vnf/test_iniparser.py b/tests/unit/network_services/vnf_generic/vnf/test_iniparser.py deleted file mode 100644 index 1ad8df9c6..000000000 --- a/tests/unit/network_services/vnf_generic/vnf/test_iniparser.py +++ /dev/null @@ -1,225 +0,0 @@ -# Copyright (c) 2017 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -from __future__ import absolute_import - -import unittest -from contextlib import contextmanager -import mock - -from tests.unit import STL_MOCKS - - -STLClient = mock.MagicMock() -stl_patch = mock.patch.dict("sys.modules", STL_MOCKS) -stl_patch.start() - -if stl_patch: - from yardstick.network_services.vnf_generic.vnf.iniparser import ParseError - from yardstick.network_services.vnf_generic.vnf.iniparser import LineParser - from yardstick.network_services.vnf_generic.vnf.iniparser import BaseParser - from yardstick.network_services.vnf_generic.vnf.iniparser import ConfigParser - -PARSE_TEXT_1 = """\ - -[section1] -key1=value1 -list1: value2 - value3 - value4 -key3='single quote value' ; comment here -key4= - -[section2] ; comment with #2 other symbol -# here is a comment line -list2: value5 -key with no value # mixed comment ; symbols -; another comment line -key5= - -[section1] ; reopen a section! -key2="double quote value" -""" - -PARSE_TEXT_2 = """\ -[section1] -list1 = item1 - item2 - ended by eof""" - -PARSE_TEXT_BAD_1 = """\ -key1=value1 -""" - -PARSE_TEXT_BAD_2 = """\ -[section1 -""" - -PARSE_TEXT_BAD_3 = """\ -[] -""" - -PARSE_TEXT_BAD_4 = """\ -[section1] - bad continuation -""" - -PARSE_TEXT_BAD_5 = """\ -[section1] -=value with no key -""" - - -class TestParseError(unittest.TestCase): - - def test___str__(self): - error = ParseError('a', 2, 'c') - self.assertEqual(str(error), "at line 2, a: 'c'") - - -class TestLineParser(unittest.TestCase): - - def test___repr__(self): - line_parser = LineParser('', 101) - self.assertIsNotNone(repr(line_parser)) - - def test_error_invalid_assignment(self): - line_parser = LineParser('', 101) - self.assertIsNotNone(line_parser.error_invalid_assignment()) - - -class TestBaseParser(unittest.TestCase): - - @staticmethod - def make_open(text_blob): - @contextmanager - def internal_open(*args, **kwargs): - yield text_blob.split('\n') - - return internal_open - - def test_parse(self): - parser = BaseParser() - parser.parse() - - def test_parse_empty_string(self): - parser = BaseParser() - self.assertIsNone(parser.parse('')) - - def test_not_implemented_methods(self): - parser = BaseParser() - - with self.assertRaises(NotImplementedError): - parser.assignment('key', 'value', LineParser('', 100)) - - with self.assertRaises(NotImplementedError): - parser.new_section('section') - - with self.assertRaises(NotImplementedError): - parser.comment('comment') - - -class TestConfigParser(unittest.TestCase): - - @staticmethod - def make_open(text_blob): - @contextmanager - def internal_open(*args, **kwargs): - yield text_blob.split('\n') - - return internal_open - - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open') - def test_parse(self, mock_open): - mock_open.side_effect = self.make_open(PARSE_TEXT_1) - - existing_data = [['section0', [['key0', 'value0']]]] - config_parser = ConfigParser('my_file', existing_data) - config_parser.parse() - - expected = [ - [ - 'section0', - [ - ['key0', 'value0'], - ], - ], - [ - 'section1', - [ - ['key1', 'value1'], - ['list1', 'value2\nvalue3\nvalue4'], - ['key3', 'single quote value'], - ['key4', ''], - ['key2', 'double quote value'], - ], - ], - [ - 'section2', - [ - ['list2', 'value5'], - ['key with no value', '@'], - ['key5', ''], - ], - ], - ] - - self.assertEqual(config_parser.sections, expected) - self.assertIsNotNone(config_parser.find_section('section1')) - self.assertIsNone(config_parser.find_section('section3')) - self.assertEqual(config_parser.find_section_index('section1'), 1) - self.assertEqual(config_parser.find_section_index('section3'), -1) - - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open') - def test_parse_2(self, mock_open): - mock_open.side_effect = self.make_open(PARSE_TEXT_2) - - config_parser = ConfigParser('my_file') - config_parser.parse() - - expected = [ - [ - 'section1', - [ - ['list1', 'item1\nitem2\nended by eof'], - ], - ], - ] - - self.assertEqual(config_parser.sections, expected) - - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open') - def test_parse_negative(self, mock_open): - bad_text_dict = { - 'no section': PARSE_TEXT_BAD_1, - 'incomplete section': PARSE_TEXT_BAD_2, - 'empty section name': PARSE_TEXT_BAD_3, - 'bad_continuation': PARSE_TEXT_BAD_4, - 'value with no key': PARSE_TEXT_BAD_5, - } - - for bad_reason, bad_text in bad_text_dict.items(): - mock_open.side_effect = self.make_open(bad_text) - - config_parser = ConfigParser('my_file', []) - - try: - # TODO: replace with assertRaises, when the UT framework supports - # advanced messages when exceptions fail to occur - config_parser.parse() - except ParseError: - pass - else: - self.fail('\n'.join([bad_reason, bad_text, str(config_parser.sections)])) diff --git a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py b/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py index 09060ff57..a6d40877d 100644 --- a/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py +++ b/tests/unit/network_services/vnf_generic/vnf/test_prox_vnf.py @@ -376,7 +376,7 @@ class TestProxApproxVnf(unittest.TestCase): return file_path @mock.patch('yardstick.benchmark.scenarios.networking.vnf_generic.open', create=True) - @mock.patch('yardstick.network_services.vnf_generic.vnf.iniparser.open', create=True) + @mock.patch('yardstick.network_services.helpers.iniparser.open', create=True) @mock.patch(SSH_HELPER) def test_run_prox(self, ssh, *_): mock_ssh(ssh) |