From 416943cc4e1ec7e4fc0e86640f24f0133a8b2f4e Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Wed, 20 Aug 2014 21:46:46 -0400 Subject: Add support for parsing YAML Adds new YAML examples. Also adds some new CLI test cases which compare --noop stdout (from the CLI) for the json and yaml examples to verify they generate the same things. --- os_net_config/tests/test_cli.py | 70 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 os_net_config/tests/test_cli.py (limited to 'os_net_config/tests/test_cli.py') diff --git a/os_net_config/tests/test_cli.py b/os_net_config/tests/test_cli.py new file mode 100644 index 0000000..505301c --- /dev/null +++ b/os_net_config/tests/test_cli.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- + +# Copyright 2014 Red Hat, Inc. +# +# 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. + +import os.path +import sys + +from os_net_config import cli +from os_net_config.tests import base +import six + + +SAMPLE_BASE = os.path.join('.', 'etc', 'os-net-config', 'samples') + + +class TestCli(base.TestCase): + + def run_cli(self, argstr, exitcodes=(0,)): + orig = sys.stdout + orig_stderr = sys.stderr + try: + sys.stdout = six.StringIO() + sys.stderr = six.StringIO() + cli.main(argstr.split()) + except SystemExit: + exc_type, exc_value, exc_traceback = sys.exc_info() + self.assertIn(exc_value.code, exitcodes) + finally: + stdout = sys.stdout.getvalue() + sys.stdout.close() + sys.stdout = orig + stderr = sys.stderr.getvalue() + sys.stderr.close() + sys.stderr = orig_stderr + return (stdout, stderr) + + def test_bond_noop_output(self): + bond_yaml = os.path.join(SAMPLE_BASE, 'bond.yaml') + bond_json = os.path.join(SAMPLE_BASE, 'bond.json') + stdout_yaml, stderr = self.run_cli('ARG0 -d --noop -c %s' % bond_yaml) + stdout_json, stderr = self.run_cli('ARG0 -d --noop -c %s' % bond_json) + self.assertEqual(stdout_yaml, stdout_json) + + def test_bridge_noop_output(self): + bridge_yaml = os.path.join(SAMPLE_BASE, 'bridge_dhcp.yaml') + bridge_json = os.path.join(SAMPLE_BASE, 'bridge_dhcp.json') + stdout_yaml, stderr = self.run_cli('ARG0 -d --noop -c %s' % + bridge_yaml) + stdout_json, stderr = self.run_cli('ARG0 -d --noop -c %s' % + bridge_json) + self.assertEqual(stdout_yaml, stdout_json) + + def test_vlan_noop_output(self): + vlan_yaml = os.path.join(SAMPLE_BASE, 'bridge_vlan.yaml') + vlan_json = os.path.join(SAMPLE_BASE, 'bridge_vlan.json') + stdout_yaml, stderr = self.run_cli('ARG0 -d --noop -c %s' % vlan_yaml) + stdout_json, stderr = self.run_cli('ARG0 -d --noop -c %s' % vlan_json) + self.assertEqual(stdout_yaml, stdout_json) -- cgit 1.2.3-korg