|
2 | 2 | import os |
3 | 3 | from itertools import product |
4 | 4 | from tempfile import mkdtemp |
| 5 | +from warnings import warn |
5 | 6 |
|
6 | 7 | from PIL import Image |
7 | 8 |
|
@@ -55,18 +56,21 @@ def test_version(): |
55 | 56 | @with_setup(setup_reader) |
56 | 57 | def _check_decoding(filename, expected_format, expected_raw, extra={}, as_Image=False, use_rxing=True): |
57 | 58 | global test_zxing_reader, test_rxing_reader |
| 59 | + pure_barcode = True |
58 | 60 | if not use_rxing and (3, 5, 0) <= test_zxing_reader.zxing_version_info < (3, 5, 3) and expected_format == 'PDF_417': |
59 | 61 | # See https://github.com/zxing/zxing/issues/1682 and https://github.com/zxing/zxing/issues/1683 |
60 | 62 | raise unittest.SkipTest("ZXing v{} CommandLineRunner is broken for combination of {} barcode format and --raw option".format( |
61 | 63 | test_zxing_reader.zxing_version, expected_format)) |
62 | | - elif use_rxing and not expected_raw: |
63 | | - raise unittest.SkipTest("RXing-cli v{} is broken for failed barcodes with '--pure-barcode true'".format( |
| 64 | + elif use_rxing and test_rxing_reader.rxing_version_info <= (1, 2, 7) and not expected_raw: |
| 65 | + # See https://github.com/rxing-core/rxing/issues/58 |
| 66 | + pure_barcode = False |
| 67 | + warn("RXing-cli v{} is broken for failed barcodes with '--pure-barcode true'".format( |
64 | 68 | test_rxing_reader.rxing_version)) |
65 | 69 | path = os.path.join(test_barcode_dir, filename) |
66 | 70 | what = Image.open(path) if as_Image else path |
67 | 71 | logging.debug('Trying to parse {} with {}, expecting {!r}.'.format(path, ("RXing" if use_rxing else "ZXing"), expected_raw)) |
68 | 72 | reader = test_rxing_reader if use_rxing else test_zxing_reader |
69 | | - dec = reader.decode(what, pure_barcode=True, **extra) |
| 73 | + dec = reader.decode(what, pure_barcode=pure_barcode, **extra) |
70 | 74 | if expected_raw is None: |
71 | 75 | assert dec.raw is None, ( |
72 | 76 | 'Expected failure, but got result in {} format'.format(dec.format)) |
|
0 commit comments