From 439f7f08c7d1826ecf4b9da8b40d9df88c8fa10a Mon Sep 17 00:00:00 2001 From: Michael Vogt Date: Thu, 7 Mar 2024 09:24:55 +0100 Subject: [PATCH] test: add minimal test for expiredate for user stage --- stages/test/test_users.py | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 stages/test/test_users.py diff --git a/stages/test/test_users.py b/stages/test/test_users.py new file mode 100644 index 00000000..1bc06ccd --- /dev/null +++ b/stages/test/test_users.py @@ -0,0 +1,34 @@ +#!/usr/bin/python3 + +from unittest.mock import patch + +import pytest + +from osbuild.testutil import make_fake_tree + +STAGE_NAME = "org.osbuild.users" + + +@pytest.mark.parametrize("user_opts,expected_args", [ + ({}, []), + ({"expiredate": 12345}, ["--expiredate", "12345"]), +]) +@patch("subprocess.run") +def test_users_happy(mocked_run, tmp_path, stage_module, user_opts, expected_args): + make_fake_tree(tmp_path, { + "/etc/passwd": "", + }) + + options = { + "users": { + "foo": {}, + } + } + options["users"]["foo"].update(user_opts) + + stage_module.main(tmp_path, options) + + assert len(mocked_run.call_args_list) == 1 + args, kwargs = mocked_run.call_args_list[0] + assert args[0] == ["chroot", tmp_path, "useradd"] + expected_args + ["foo"] + assert kwargs.get("check")