mirror of
https://github.com/openSUSE/osc.git
synced 2024-11-10 22:56:15 +01:00
80 lines
2.3 KiB
Python
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)
|