URL: https://github.com/freeipa/freeipa/pull/5161
Author: tiran
 Title: #5161: Add missing fedora_container platform members
Action: opened

PR body:
"""
The fedora_container platform was missing User and Group members.

Add test case to verify that all known platforms define correct module
API.

Fixes: https://pagure.io/freeipa/issue/8519
Signed-off-by: Christian Heimes <chei...@redhat.com>
"""

To pull the PR as Git branch:
git remote add ghfreeipa https://github.com/freeipa/freeipa
git fetch ghfreeipa pull/5161/head:pr5161
git checkout pr5161
From 5a041c32c010d340d9c61fff9336e55ed1c88049 Mon Sep 17 00:00:00 2001
From: Christian Heimes <chei...@redhat.com>
Date: Tue, 29 Sep 2020 10:30:42 +0200
Subject: [PATCH] Add missing fedora_container platform members

The fedora_container platform was missing User and Group members.

Add test case to verify that all known platforms define correct module
API.

Fixes: https://pagure.io/freeipa/issue/8519
Signed-off-by: Christian Heimes <chei...@redhat.com>
---
 ipaplatform/fedora_container/constants.py   |  5 ++-
 ipatests/test_ipaplatform/test_platforms.py | 41 +++++++++++++++++++++
 2 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 ipatests/test_ipaplatform/test_platforms.py

diff --git a/ipaplatform/fedora_container/constants.py b/ipaplatform/fedora_container/constants.py
index 21f04c4feb..0427f91a77 100644
--- a/ipaplatform/fedora_container/constants.py
+++ b/ipaplatform/fedora_container/constants.py
@@ -3,7 +3,10 @@
 #
 """Fedora container constants
 """
-from ipaplatform.fedora.constants import FedoraConstantsNamespace
+from ipaplatform.fedora.constants import FedoraConstantsNamespace, User, Group
+
+
+__all__ = ("constants", "User", "Group")
 
 
 class FedoraContainerConstantsNamespace(FedoraConstantsNamespace):
diff --git a/ipatests/test_ipaplatform/test_platforms.py b/ipatests/test_ipaplatform/test_platforms.py
new file mode 100644
index 0000000000..87d1121a20
--- /dev/null
+++ b/ipatests/test_ipaplatform/test_platforms.py
@@ -0,0 +1,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)
_______________________________________________
FreeIPA-devel mailing list -- freeipa-devel@lists.fedorahosted.org
To unsubscribe send an email to freeipa-devel-le...@lists.fedorahosted.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedorahosted.org/archives/list/freeipa-devel@lists.fedorahosted.org

Reply via email to