mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 18:59:04 +08:00
Upgrade cmd.py and test_cmd.py from Python 3.11.
This commit is contained in:
2 files changed
+39
-16
No files matched your search
Vendored
+5
-5
@@ -310,10 +310,10 @@ class Cmd:
|
||||
names = self.get_names()
|
||||
cmds_doc = []
|
||||
cmds_undoc = []
|
||||
help = {}
|
||||
topics = set()
|
||||
for name in names:
|
||||
if name[:5] == 'help_':
|
||||
help[name[5:]]=1
|
||||
topics.add(name[5:])
|
||||
names.sort()
|
||||
# There can be duplicates if routines overridden
|
||||
prevname = ''
|
||||
@@ -323,16 +323,16 @@ class Cmd:
|
||||
continue
|
||||
prevname = name
|
||||
cmd=name[3:]
|
||||
if cmd in help:
|
||||
if cmd in topics:
|
||||
cmds_doc.append(cmd)
|
||||
del help[cmd]
|
||||
topics.remove(cmd)
|
||||
elif getattr(self, name).__doc__:
|
||||
cmds_doc.append(cmd)
|
||||
else:
|
||||
cmds_undoc.append(cmd)
|
||||
self.stdout.write("%s\n"%str(self.doc_leader))
|
||||
self.print_topics(self.doc_header, cmds_doc, 15,80)
|
||||
self.print_topics(self.misc_header, list(help.keys()),15,80)
|
||||
self.print_topics(self.misc_header, sorted(topics),15,80)
|
||||
self.print_topics(self.undoc_header, cmds_undoc, 15,80)
|
||||
|
||||
def print_topics(self, header, cmds, cmdlen, maxcol):
|
||||
|
||||
Vendored
+34
-11
@@ -6,10 +6,10 @@ Original by Michael Schneider
|
||||
|
||||
import cmd
|
||||
import sys
|
||||
import doctest
|
||||
import unittest
|
||||
import io
|
||||
from test import support
|
||||
from test.support import import_helper
|
||||
|
||||
class samplecmdclass(cmd.Cmd):
|
||||
"""
|
||||
@@ -70,7 +70,7 @@ class samplecmdclass(cmd.Cmd):
|
||||
>>> mycmd.complete_help("12")
|
||||
[]
|
||||
>>> sorted(mycmd.complete_help(""))
|
||||
['add', 'exit', 'help', 'shell']
|
||||
['add', 'exit', 'help', 'life', 'meaning', 'shell']
|
||||
|
||||
Test for the function do_help():
|
||||
>>> mycmd.do_help("testet")
|
||||
@@ -79,12 +79,20 @@ class samplecmdclass(cmd.Cmd):
|
||||
help text for add
|
||||
>>> mycmd.onecmd("help add")
|
||||
help text for add
|
||||
>>> mycmd.onecmd("help meaning") # doctest: +NORMALIZE_WHITESPACE
|
||||
Try and be nice to people, avoid eating fat, read a good book every
|
||||
now and then, get some walking in, and try to live together in peace
|
||||
and harmony with people of all creeds and nations.
|
||||
>>> mycmd.do_help("")
|
||||
<BLANKLINE>
|
||||
Documented commands (type help <topic>):
|
||||
========================================
|
||||
add help
|
||||
<BLANKLINE>
|
||||
Miscellaneous help topics:
|
||||
==========================
|
||||
life meaning
|
||||
<BLANKLINE>
|
||||
Undocumented commands:
|
||||
======================
|
||||
exit shell
|
||||
@@ -115,17 +123,22 @@ class samplecmdclass(cmd.Cmd):
|
||||
This test includes the preloop(), postloop(), default(), emptyline(),
|
||||
parseline(), do_help() functions
|
||||
>>> mycmd.use_rawinput=0
|
||||
>>> mycmd.cmdqueue=["", "add", "add 4 5", "help", "help add","exit"]
|
||||
>>> mycmd.cmdloop()
|
||||
|
||||
>>> mycmd.cmdqueue=["add", "add 4 5", "", "help", "help add", "exit"]
|
||||
>>> mycmd.cmdloop() # doctest: +REPORT_NDIFF
|
||||
Hello from preloop
|
||||
help text for add
|
||||
*** invalid number of arguments
|
||||
9
|
||||
9
|
||||
<BLANKLINE>
|
||||
Documented commands (type help <topic>):
|
||||
========================================
|
||||
add help
|
||||
<BLANKLINE>
|
||||
Miscellaneous help topics:
|
||||
==========================
|
||||
life meaning
|
||||
<BLANKLINE>
|
||||
Undocumented commands:
|
||||
======================
|
||||
exit shell
|
||||
@@ -165,6 +178,17 @@ class samplecmdclass(cmd.Cmd):
|
||||
print("help text for add")
|
||||
return
|
||||
|
||||
def help_meaning(self):
|
||||
print("Try and be nice to people, avoid eating fat, read a "
|
||||
"good book every now and then, get some walking in, "
|
||||
"and try to live together in peace and harmony with "
|
||||
"people of all creeds and nations.")
|
||||
return
|
||||
|
||||
def help_life(self):
|
||||
print("Always look on the bright side of life")
|
||||
return
|
||||
|
||||
def do_exit(self, arg):
|
||||
return True
|
||||
|
||||
@@ -220,13 +244,12 @@ class TestAlternateInput(unittest.TestCase):
|
||||
"(Cmd) *** Unknown syntax: EOF\n"))
|
||||
|
||||
|
||||
def test_main(verbose=None):
|
||||
from test import test_cmd
|
||||
support.run_doctest(test_cmd, verbose)
|
||||
support.run_unittest(TestAlternateInput)
|
||||
def load_tests(loader, tests, pattern):
|
||||
tests.addTest(doctest.DocTestSuite())
|
||||
return tests
|
||||
|
||||
def test_coverage(coverdir):
|
||||
trace = import_helper.import_module('trace')
|
||||
trace = support.import_module('trace')
|
||||
tracer=trace.Trace(ignoredirs=[sys.base_prefix, sys.base_exec_prefix,],
|
||||
trace=0, count=1)
|
||||
tracer.run('import importlib; importlib.reload(cmd); test_main()')
|
||||
@@ -240,4 +263,4 @@ if __name__ == "__main__":
|
||||
elif "-i" in sys.argv:
|
||||
samplecmdclass().cmdloop()
|
||||
else:
|
||||
test_main()
|
||||
unittest.main()
|
||||
Reference in new issue
Block a user