1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import unittest
from unittest.mock import patch
import pyocr
from pyocr.util import (
digits_only,
)
class TestPyOCR(unittest.TestCase):
@patch("pyocr.libtesseract.tesseract_raw.g_libtesseract")
@patch("pyocr.libtesseract.tesseract_raw.is_available")
@patch("shutil.which")
def test_available_tools_tesseract4(self, which, is_available, libtess):
which.return_value = True
is_available.return_value = True
libtess.TessVersion.return_value = b"4.0.0"
self.assertListEqual(
pyocr.get_available_tools(),
[
pyocr.tesseract,
pyocr.libtesseract,
pyocr.cuneiform,
]
)
@patch("pyocr.libtesseract.tesseract_raw.g_libtesseract")
@patch("pyocr.libtesseract.tesseract_raw.is_available")
@patch("shutil.which")
def test_available_tools_tesseract3(self, which, is_available, libtess):
which.return_value = True
is_available.return_value = True
libtess.TessVersion.return_value = b"3.5.0"
self.assertListEqual(
pyocr.get_available_tools(),
[
pyocr.tesseract,
pyocr.libtesseract,
pyocr.cuneiform,
]
)
@patch("pyocr.libtesseract.tesseract_raw.g_libtesseract")
@patch("pyocr.libtesseract.tesseract_raw.is_available")
@patch("shutil.which")
def test_available_tools_tesseract3_0(self, which, is_available, libtess):
which.return_value = True
is_available.return_value = True
libtess.TessVersion.return_value = b"3.0.0"
self.assertListEqual(
pyocr.get_available_tools(),
[
pyocr.tesseract,
pyocr.cuneiform,
]
)
def test_digits_only(self):
self.assertEqual(digits_only("azer"), 0)
self.assertEqual(digits_only("10.0.1"), 10)
self.assertEqual(digits_only("42azer"), 42)
self.assertEqual(digits_only("qsdf42azer"), 42)
self.assertEqual(digits_only("v42"), 42)
self.assertEqual(digits_only("v42x35"), 42)
self.assertEqual(digits_only("v42x35qsdf"), 42)
|