Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 21 additions & 24 deletions tests/unittests/test_pathprefix2dict.py
Original file line number Diff line number Diff line change
@@ -1,43 +1,40 @@
# This file is part of cloud-init. See LICENSE file for license information.

import shutil
import tempfile
import pytest

from cloudinit import util
from tests.unittests.helpers import TestCase, populate_dir
from tests.unittests.helpers import populate_dir


class TestPathPrefix2Dict(TestCase):
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we also keep the class grouping?

def setUp(self):
super(TestPathPrefix2Dict, self).setUp()
self.tmp = tempfile.mkdtemp()
self.addCleanup(shutil.rmtree, self.tmp)

def test_required_only(self):
class TestPathPrefix2Dict:
def test_required_only(self, tmp_path):
dirdata = {"f1": b"f1content", "f2": b"f2content"}
populate_dir(self.tmp, dirdata)
populate_dir(str(tmp_path), dirdata)

ret = util.pathprefix2dict(self.tmp, required=["f1", "f2"])
self.assertEqual(dirdata, ret)
ret = util.pathprefix2dict(str(tmp_path), required=["f1", "f2"])
assert dirdata == ret

def test_required_missing(self):
def test_required_missing(self, tmp_path):
dirdata = {"f1": b"f1content"}
populate_dir(self.tmp, dirdata)
populate_dir(str(tmp_path), dirdata)
kwargs = {"required": ["f1", "f2"]}
self.assertRaises(ValueError, util.pathprefix2dict, self.tmp, **kwargs)
with pytest.raises(ValueError):
util.pathprefix2dict(str(tmp_path), **kwargs)

def test_no_required_and_optional(self):
def test_no_required_and_optional(self, tmp_path):
dirdata = {"f1": b"f1c", "f2": b"f2c"}
populate_dir(self.tmp, dirdata)
populate_dir(str(tmp_path), dirdata)

ret = util.pathprefix2dict(
self.tmp, required=None, optional=["f1", "f2"]
str(tmp_path), required=None, optional=["f1", "f2"]
)
self.assertEqual(dirdata, ret)
assert dirdata == ret

def test_required_and_optional(self):
def test_required_and_optional(self, tmp_path):
dirdata = {"f1": b"f1c", "f2": b"f2c"}
populate_dir(self.tmp, dirdata)
populate_dir(str(tmp_path), dirdata)

ret = util.pathprefix2dict(self.tmp, required=["f1"], optional=["f2"])
self.assertEqual(dirdata, ret)
ret = util.pathprefix2dict(
str(tmp_path), required=["f1"], optional=["f2"]
)
assert dirdata == ret