mirror of
https://github.com/containers/podman.git
synced 2025-05-20 08:36:23 +08:00

This one is a nightmare, because --volume has been edited in four different files throughout the years (five if you count podman-build, which I am not including in this PR). Those edits have not always been done in sync. The list of options was reordered 2022-06-28 by Giuseppe in #14734, but only in podman-create and -run (not in podman-pod-*). No explanation of why, but I'll assume he knew what he was doing, and have accepted that for the reference copy. There was also a big edit in #8519. The "Propagation property...bind mounted" sentence first appeared in pod-clone, in #14299 by cdoern, with no obvious source of where it came from. I choose to include it in the reference copy. The "**copy**" option seems to work in pod-create, so I'm including it in the reference copy. Someone please yell loudly if this is not the case. The "disables SELinux separation for containers used in the build", no idea, changed that to just "for the container/pod" The "advanced users / overlay / upperdir / workdir" paragraph makes zero sense to me, but hey, I assume it applies to all the commands, so I put it in the reference copy. Finally, there's still a mishmash of backticks, asterisks, underscores, and even quotation marks. Someone is gonna have to perform major cleanup on this one day, but at least it'll be in only one place. Signed-off-by: Ed Santiago <santiago@redhat.com>
79 lines
3.3 KiB
Python
Executable File
79 lines
3.3 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
"""
|
|
Tests for markdown-preprocess
|
|
"""
|
|
|
|
import unittest
|
|
|
|
# https://stackoverflow.com/questions/66665217/how-to-import-a-python-script-without-a-py-extension
|
|
from importlib.util import spec_from_loader, module_from_spec
|
|
from importlib.machinery import SourceFileLoader
|
|
|
|
spec = spec_from_loader("mp", SourceFileLoader("mp", "hack/markdown-preprocess"))
|
|
mp = module_from_spec(spec)
|
|
spec.loader.exec_module(mp)
|
|
|
|
class TestPodReplacer(unittest.TestCase):
|
|
def test_basic(self):
|
|
"""basic pod|container and vice-versa"""
|
|
s = '<<container|pod>>'
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'pod')
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'container')
|
|
s = '<<container|pod>>'
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'pod')
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'container')
|
|
|
|
def test_case_insensitive(self):
|
|
"""test case-insensitive replacement of Pod, Container"""
|
|
s = '<<Pod|Container>>'
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'Pod')
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'Container')
|
|
s = '<<Container|Pod>>'
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'Pod')
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'Container')
|
|
|
|
def test_dont_care_about_podman(self):
|
|
"""we ignore 'podman'"""
|
|
self.assertEqual(mp.replace_type('<<podman container|pod in podman>>', 'container'), 'podman container')
|
|
|
|
def test_not_at_beginning(self):
|
|
"""oops - test for 'pod' other than at beginning of string"""
|
|
s = '<<container|container or pod>>'
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'container')
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'container or pod')
|
|
s = '<<container or pod|container>>'
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'container')
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'container or pod')
|
|
|
|
def test_blank(self):
|
|
"""test that either side of '|' can be empty"""
|
|
s = 'abc container<<| or pod>> def'
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'abc container def')
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'abc container or pod def')
|
|
s = 'abc container<< or pod|>> def'
|
|
self.assertEqual(mp.replace_type(s, 'container'), 'abc container def')
|
|
self.assertEqual(mp.replace_type(s, 'pod'), 'abc container or pod def')
|
|
|
|
def test_exception_both(self):
|
|
"""test that 'pod' on both sides raises exception"""
|
|
with self.assertRaisesRegex(Exception, "in both left and right sides"):
|
|
mp.replace_type('<<pod 123|pod 321>>', 'pod')
|
|
|
|
def test_exception_neither(self):
|
|
"""test that 'pod' on neither side raises exception"""
|
|
with self.assertRaisesRegex(Exception, "in either side"):
|
|
mp.replace_type('<<container 123|container 321>>', 'pod')
|
|
|
|
class TestPodmanSubcommand(unittest.TestCase):
|
|
def test_basic(self):
|
|
"""podman subcommand basic test"""
|
|
self.assertEqual(mp.podman_subcommand("podman-foo.1.md.in"), "foo")
|
|
self.assertEqual(mp.podman_subcommand("podman-foo-bar.1.md.in"), "foo bar")
|
|
self.assertEqual(mp.podman_subcommand("podman-pod-rm.1.md.in"), "rm")
|
|
self.assertEqual(mp.podman_subcommand("podman-pod-rm.1.md.in", "full"), "pod rm")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|