File: test_platforms.py

package info (click to toggle)
freeipa 4.13.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 367,240 kB
  • sloc: javascript: 562,763; python: 310,289; ansic: 49,809; sh: 7,176; makefile: 2,589; xml: 343; sed: 16
file content (41 lines) | stat: -rw-r--r-- 1,259 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#
# Copyright (C) 2020  FreeIPA Contributors see COPYING for license
#
"""Test import and basic properties of platforms
"""
from importlib import import_module

import pytest

from ipaplatform.base.constants import BaseConstantsNamespace, User, Group
from ipaplatform.base.paths import BasePathNamespace
from ipaplatform.base.services import KnownServices
from ipaplatform.base.tasks import BaseTaskNamespace

PLATFORMS = [
    "debian",
    "fedora",
    "fedora_container",
    "rhel",
    "rhel_container",
    "suse",
]


@pytest.mark.parametrize("name", PLATFORMS)
def test_import_platform(name):
    constants = import_module(f"ipaplatform.{name}.constants")
    assert isinstance(constants.constants, BaseConstantsNamespace)
    assert issubclass(constants.User, User)
    assert issubclass(constants.Group, Group)

    paths = import_module(f"ipaplatform.{name}.paths")
    assert isinstance(paths.paths, BasePathNamespace)

    services = import_module(f"ipaplatform.{name}.services")
    assert isinstance(services.knownservices, KnownServices)
    assert isinstance(services.timedate_services, list)
    assert callable(services.service)

    tasks = import_module(f"ipaplatform.{name}.tasks")
    assert isinstance(tasks.tasks, BaseTaskNamespace)