Upgrade cmd.py and test_cmd.py from Python 3.11.

This commit is contained in:
DimitrisJim committed 2023-06-12 20:02:29 +03:00
1 parent 8dbf7b27ef
commit 8af4c5fd7b
2 files changed
+39 -16

No files matched your search

Vendored
+5 -5
View File
@@ -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):
+34 -11
View File
@@ -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()