mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Refactor os-release and platform information
Move the /etc/os-release parser and platform detection code out of the private _importhook module. The ipaplatform module now contains an osinfo module that provides distribution, os, and vendor information. See: https://www.freedesktop.org/software/systemd/man/os-release.html See: https://pagure.io/freeipa/issue/7661 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Rob Crittenden <rcritten@redhat.com>
This commit is contained in:
committed by
Tibor Dudlák
parent
8af6accfa5
commit
b8528da5a8
@@ -13,6 +13,7 @@ import ipaplatform.paths
|
||||
import ipaplatform.services
|
||||
import ipaplatform.tasks
|
||||
from ipaplatform._importhook import metaimporter
|
||||
from ipaplatform.osinfo import osinfo, _parse_osrelease
|
||||
try:
|
||||
from ipaplatform.override import OVERRIDE
|
||||
except ImportError:
|
||||
@@ -26,8 +27,8 @@ DATA = os.path.join(HERE, 'data')
|
||||
@pytest.mark.skipif(OVERRIDE is None,
|
||||
reason='test requires override')
|
||||
def test_override():
|
||||
assert OVERRIDE == metaimporter.platform_ids[0]
|
||||
assert OVERRIDE == metaimporter.platform
|
||||
assert OVERRIDE == osinfo.platform_ids[0]
|
||||
assert OVERRIDE == osinfo.platform
|
||||
|
||||
|
||||
@pytest.mark.parametrize('mod, name', [
|
||||
@@ -46,11 +47,12 @@ def test_importhook(mod, name):
|
||||
assert mod.__dict__ == sys.modules[override].__dict__
|
||||
|
||||
|
||||
@pytest.mark.parametrize('filename, expected_platforms', [
|
||||
(os.path.join(DATA, 'os-release-centos'), ['centos', 'rhel', 'fedora']),
|
||||
(os.path.join(DATA, 'os-release-fedora'), ['fedora']),
|
||||
(os.path.join(DATA, 'os-release-ubuntu'), ['ubuntu', 'debian']),
|
||||
@pytest.mark.parametrize('filename, id_, id_like', [
|
||||
(os.path.join(DATA, 'os-release-centos'), 'centos', ('rhel', 'fedora')),
|
||||
(os.path.join(DATA, 'os-release-fedora'), 'fedora', ()),
|
||||
(os.path.join(DATA, 'os-release-ubuntu'), 'ubuntu', ('debian',)),
|
||||
])
|
||||
def test_parse_os_release(filename, expected_platforms):
|
||||
parsed = metaimporter._parse_platform(filename)
|
||||
assert parsed == expected_platforms
|
||||
def test_parse_os_release(filename, id_, id_like):
|
||||
parsed = _parse_osrelease(filename)
|
||||
assert parsed['ID'] == id_
|
||||
assert parsed['ID_LIKE'] == id_like
|
||||
|
||||
Reference in New Issue
Block a user