PCQRSCANER/venv/Lib/site-packages/pyzbar/tests/test_read_zbar.py

53 lines
1.3 KiB
Python
Raw Normal View History

2019-12-22 21:51:47 +01:00
import sys
import unittest
from pathlib import Path
from contextlib import contextmanager
# TODO Would io.StringIO not work in all cases?
try:
from cStringIO import StringIO
except ImportError:
from io import StringIO
from pyzbar.scripts.read_zbar import main
@contextmanager
def capture_stdout():
sys.stdout, old_stdout = StringIO(), sys.stdout
try:
yield sys.stdout
finally:
sys.stdout = old_stdout
class TestReadZbar(unittest.TestCase):
def test_read_qrcode(self):
"Read QR code"
with capture_stdout() as stdout:
main([str(Path(__file__).parent.joinpath('qrcode.png'))])
if 2 == sys.version_info[0]:
expected = "Thalassiodracon"
else:
expected = "b'Thalassiodracon'"
self.assertEqual(expected, stdout.getvalue().strip())
def test_read_code128(self):
"Read CODE 128 barcodes"
with capture_stdout() as stdout:
main([str(Path(__file__).parent.joinpath('code128.png'))])
if 2 == sys.version_info[0]:
expected = "Foramenifera\nRana temporaria"
else:
expected = "b'Foramenifera'\nb'Rana temporaria'"
self.assertEqual(expected, stdout.getvalue().strip())
if __name__ == '__main__':
unittest.main()