1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-14 08:16:15 +01:00
github.com_openSUSE_osc/tests/test_doc_plugins.py
Daniel Mach 26a8fb1acf commandline: New class-based commands
This is based on a prototype we've worked on together
with Laurin Fäller <laurin.faeller@suse.com>.
2023-03-31 09:39:04 +02:00

80 lines
2.3 KiB
Python

"""
These tests make sure that the examples in the documentation
about osc plugins are not outdated.
"""
import os
import unittest
from osc.commandline import MainCommand
from osc.commandline import OscMainCommand
PLUGINS_DIR = os.path.join(os.path.dirname(__file__), "..", "doc", "plugins")
class TestMainCommand(MainCommand):
name = "osc-test"
MODULES = (
("test.osc.commands", PLUGINS_DIR),
)
class TestPopProjectPackageFromArgs(unittest.TestCase):
def test_load_commands(self):
"""
Test if all plugins from the tutorial can be properly loaded
"""
main = TestMainCommand()
main.load_commands()
def test_simple(self):
"""
Test the 'simple' command
"""
main = TestMainCommand()
main.load_commands()
args = main.parse_args(["simple", "arg1", "arg2"])
self.assertEqual(args.command, "simple")
self.assertEqual(args.bool_option, False)
self.assertEqual(args.arguments, ["arg1", "arg2"])
def test_request_list(self):
"""
Test the 'request list' command
"""
main = TestMainCommand()
main.load_commands()
args = main.parse_args(["request", "list"])
self.assertEqual(args.command, "list")
self.assertEqual(args.message, None)
def test_request_accept(self):
"""
Test the 'request accept' command
"""
main = TestMainCommand()
main.load_commands()
args = main.parse_args(["request", "accept", "-m", "a message", "12345"])
self.assertEqual(args.command, "accept")
self.assertEqual(args.message, "a message")
self.assertEqual(args.id, 12345)
def test_plugin_locations(self):
osc_paths = [i[1] for i in OscMainCommand.MODULES]
# skip the first line with osc.commands
osc_paths = osc_paths[1:]
path = os.path.join(PLUGINS_DIR, "plugin_locations.rst")
with open(path, "r") as f:
# s
doc_paths = f.readlines()
# skip the first line with osc.commands
doc_paths = doc_paths[1:]
doc_paths = [i.lstrip(" -") for i in doc_paths]
doc_paths = [i.rstrip("\n") for i in doc_paths]
self.assertEqual(doc_paths, osc_paths)