[Kimchi-devel] [PATCH 1/3] tests/test_osinfo.py: fixes for Power architecture
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Mar 20 13:27:30 UTC 2015
Does this patch replace the former [Kimchi-devel] [PATCH]
tests/test_osinfo.py: fixes for Power architecture ?
Some comments below:
On 16/03/2015 16:29, Daniel Henrique Barboza wrote:
> - osinfo.py now has a function that returns a specific
> field from a template configuration (old or modern) which
> considers the current running arch.
>
> - a new test was added to explictly test the case where an
> unknown distro/version should return the configuration of
> an old distro/version after the lookup.
>
> Signed-off-by: Daniel Henrique Barboza <dhbarboza82 at gmail.com>
> ---
> src/kimchi/osinfo.py | 9 +++++++++
> tests/test_osinfo.py | 36 ++++++++++++++++++++++++++----------
> 2 files changed, 35 insertions(+), 10 deletions(-)
>
> diff --git a/src/kimchi/osinfo.py b/src/kimchi/osinfo.py
> index 2496e03..3c31346 100644
> --- a/src/kimchi/osinfo.py
> +++ b/src/kimchi/osinfo.py
> @@ -104,6 +104,15 @@ def _get_arch():
> return arch
>
>
> +def get_template_default(template_type, field):
> + host_arch = _get_arch()
> + # Assuming 'power' = 'ppc64le' because lookup() does the same,
> + # claiming libvirt compatibility.
> + if host_arch in ('power', 'ppc64le'):
> + return template_specs['power'][template_type][field]
> + return template_specs[host_arch][template_type][field]
> +
> +
> def lookup(distro, version):
> """
> Lookup all parameters needed to run a VM of a known or unknown operating
> diff --git a/tests/test_osinfo.py b/tests/test_osinfo.py
> index d5e90b4..0185f52 100644
> --- a/tests/test_osinfo.py
> +++ b/tests/test_osinfo.py
> @@ -20,7 +20,8 @@
> import unittest
>
>
> -from kimchi.osinfo import lookup, modern_version_bases, _get_arch
> +from kimchi.osinfo import _get_arch, get_template_default, lookup, \
> + modern_version_bases
>
We usually do not break the import line.
Instedd of that we create 2 import lines
from kimchi.osinfo import ...
from kimchi.osinfo import ...
> class OSInfoTests(unittest.TestCase):
> @@ -35,20 +36,35 @@ class OSInfoTests(unittest.TestCase):
> 'centos': '5.1', 'rhel': '5.1', 'fedora': '15'}
> for distro, version in old_versions.iteritems():
> entry = lookup(distro, version)
> - self.assertEquals(entry['disk_bus'], 'ide')
> - self.assertEquals(entry['nic_model'], 'e1000')
> + self.assertEquals(entry['disk_bus'],
> + get_template_default('old', 'disk_bus'))
> + self.assertEquals(entry['nic_model'],
> + get_template_default('old', 'nic_model'))
>
> def test_modern_bases(self):
> for distro, version in modern_version_bases[_get_arch()].iteritems():
> entry = lookup(distro, version)
> - self.assertEquals(entry['disk_bus'], 'virtio')
> - self.assertEquals(entry['nic_model'], 'virtio')
> + self.assertEquals(entry['disk_bus'],
> + get_template_default('modern', 'disk_bus'))
> + self.assertEquals(entry['nic_model'],
> + get_template_default('modern', 'nic_model'))
>
> def test_modern_distros(self):
> - modern_versions = {'debian': '7.0', 'ubuntu': '12.04',
> - 'opensuse': '12.3', 'centos': '6.4', 'rhel': '6.3',
> - 'fedora': '18', 'gentoo': '12.1'}
> + # versions based on ppc64 modern distros
> + modern_versions = {'ubuntu': '14.04', 'opensuse': '13.1',
> + 'rhel': '6.5', 'fedora': '19', 'sles': '11sp3'}
> for distro, version in modern_versions.iteritems():
> entry = lookup(distro, version)
> - self.assertEquals(entry['disk_bus'], 'virtio')
> - self.assertEquals(entry['nic_model'], 'virtio')
> + self.assertEquals(entry['disk_bus'],
> + get_template_default('modern', 'disk_bus'))
> + self.assertEquals(entry['nic_model'],
> + get_template_default('modern', 'nic_model'))
> +
> + def test_lookup_unknown_distro_version_returns_old_distro(self):
> + distro = 'unknown_distro'
> + version = 'unknown_version'
> + entry = lookup(distro, version)
> + self.assertEquals(entry['disk_bus'],
> + get_template_default('old', 'disk_bus'))
> + self.assertEquals(entry['nic_model'],
> + get_template_default('old', 'nic_model'))
More information about the Kimchi-devel
mailing list