Browse Source

test.py: add utf8 output tests

MMGen 5 years ago
parent
commit
c7beb2e60c
3 changed files with 41 additions and 0 deletions
  1. 18 0
      test/misc/utf8_output.py
  2. 2 0
      test/test.py
  3. 21 0
      test/test_py_d/ts_misc.py

+ 18 - 0
test/misc/utf8_output.py

@@ -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]])

+ 2 - 0
test/test.py

@@ -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')

+ 21 - 0
test/test_py_d/ts_misc.py

@@ -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',)