python 在stdout上输出

2022-06-08  本文已影响0人  孙广宁
14.1 我们的程序中有一个方法会将输出发送到标准输出上,我们如何将合适的值答应到标准输出上
def urlprint(protocol,host,domain):
    url = '{}://{}.{}'.format(protocol,host,domain)
    print(url)

urlprint("http","localhost","com")
[root@apollo gnsun]# python mymodule.py 
http://localhost.com
from io import StringIO
from unittest import TestCase
from unittest.mock import patch
import mymodule

class TestURLPrint(TestCase):
    def test_url_gets_to_stdout(self):
        protocol = 'http'
        host ='localhost'
        domain ='com'
        expected_url = '{}://{}.{}\n'.format(protocol,host,domain)

        with patch('sys.stdout',new=StringIO()) as fake_out:
            mymodule.urlprint(protocol,host,domain)
            print(self.assertEqual(fake_out.getvalue(),expected_url))
上一篇 下一篇

猜你喜欢

热点阅读