test.py: add utf8 output tests

This commit is contained in:
The MMGen Project 2019-05-25 12:50:08 +00:00
commit c7beb2e60c
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 41 additions and 0 deletions

18
test/misc/utf8_output.py Executable file
View file

@ -0,0 +1,18 @@
#!/usr/bin/env python3
from mmgen.common import *
cmd_args = opts.init({'text': { 'desc': '', 'usage':'', 'options':'' }})
from mmgen.util import msg
text = {
'gr': 'Greek text: {}'.format(''.join(map(chr,list(range(913,939))))),
'ru': 'Russian text: {}'.format(''.join(map(chr,list(range(1040,1072))))),
'zh': 'Chinese text: {}'.format('所以,我們非常需要這樣一種電子支付系統,它基於密碼學原理而不基於信用,'),
'jp': 'Japanese text: {}'.format('必要なのは、信用ではなく暗号化された証明に基づく電子取引システムであり、')
}
assert cmd_args[0] in text,'argument must be one of {}'.format(list(text.keys()))
msg(text[cmd_args[0]])

View file

@ -447,6 +447,7 @@ class CmdGroupMgr(object):
'ref_altcoin': ('TestSuiteRefAltcoin',{}),
'tool': ('TestSuiteTool',{'modname':'misc','full_data':True}),
'input': ('TestSuiteInput',{'modname':'misc','full_data':True}),
'output': ('TestSuiteOutput',{'modname':'misc','full_data':True}),
'regtest': ('TestSuiteRegtest',{}),
# 'chainsplit': ('TestSuiteChainsplit',{}),
'ethdev': ('TestSuiteEthdev',{}),
@ -464,6 +465,7 @@ class CmdGroupMgr(object):
'ref_altcoin',
'tool',
'input',
'output',
'autosign_minimal',
'regtest',
'ethdev')

View file

@ -77,6 +77,27 @@ class TestSuiteHelp(TestSuiteBase):
self._run_cmd('test.py',['-L'],cmd_dir='test',extra_desc='(cmd group list)')
return self._run_cmd('test.py',['-l'],cmd_dir='test',extra_desc='(cmd list)')
class TestSuiteOutput(TestSuiteBase):
'screen output tests'
networks = ('btc',)
tmpdir_nums = []
cmd_group = (
('output_gr', (1,"Greek text", [])),
('output_ru', (1,"Russian text", [])),
('output_zh', (1,"Chinese text", [])),
('output_jp', (1,"Japanese text", []))
)
def screen_output(self,lang):
t = self.spawn('test/misc/utf8_output.py',[lang],cmd_dir='.')
t.read()
return t
def output_gr(self): return self.screen_output('gr')
def output_ru(self): return self.screen_output('ru')
def output_zh(self): return self.screen_output('zh')
def output_jp(self): return self.screen_output('jp')
class TestSuiteInput(TestSuiteBase):
'user input tests'
networks = ('btc',)