ocr_test.py 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. import unittest
  2. import base64
  3. import requests
  4. url = 'http://localhost:8080'
  5. def send_request(image_path, image_type):
  6. with open(image_path, 'rb') as f:
  7. img_str: str = base64.encodebytes(f.read()).decode('utf-8')
  8. r = requests.post(f'{url}/ocr_system/idcard', json={'image': img_str, 'image_type': image_type})
  9. print(r.json())
  10. return r.json()
  11. class TestIdCardOcr(unittest.TestCase):
  12. def test_it_works(self):
  13. self.assertEqual(1, 1, 'it not works')
  14. <<<<<<< HEAD
  15. def test_test(self):
  16. image_path = './images/test.jpeg'
  17. r = send_request(image_path, '0')
  18. self.assertEqual(r['status'], '000', 'status case error')
  19. self.assertEqual(r['result']['orientation'], 0, 'orientation case error')
  20. self.assertEqual(r['result']['name']['text'], '阎妍', 'name case error')
  21. self.assertEqual(r['result']['id']['text'], '410802198701190046', 'id case error')
  22. def test_front_90(self):
  23. image_path = './images/front-90.jpg'
  24. r = send_request(image_path, '0')
  25. self.assertEqual(r['status'], '000', 'status case error')
  26. self.assertEqual(r['result']['orientation'], 1, 'orientation case error')
  27. self.assertEqual(r['result']['name']['text'], '刘新建', 'name case error')
  28. self.assertEqual(r['result']['id']['text'], '412902197906291716', 'id case error')
  29. self.assertEqual(r['result']['birthday']['text'], '1979年6月29日', 'birthday case error')
  30. self.assertEqual(r['result']['address_province']['text'], '河南省', 'address_province case error')
  31. self.assertEqual(r['result']['address_city']['text'], '邓州市', 'address_city case error')
  32. self.assertEqual(r['result']['address_region']['text'], '白牛乡', 'address_region case error')
  33. self.assertEqual(r['result']['address_detail']['text'], '故事村故事桥111号', 'address_detail case error')
  34. def test_front_0(self):
  35. image_path = './images/front-0.png'
  36. r = send_request(image_path, '0')
  37. self.assertEqual(r['status'], '000', 'status case error')
  38. def test_front_180(self):
  39. image_path = './images/front-180.png'
  40. r = send_request(image_path, '0')
  41. self.assertEqual(r['status'], '000', 'status case error')
  42. self.assertEqual(r['result']['orientation'], 2, 'orientation case error')
  43. self.assertEqual(r['result']['name']['text'], '阎妍', 'name case error')
  44. self.assertEqual(r['result']['id']['text'], '410802198701190046', 'id case error')
  45. def test_front_270(self):
  46. image_path = './images/front-270.png'
  47. r = send_request(image_path, '0')
  48. self.assertEqual(r['status'], '000', 'status case error')
  49. self.assertEqual(r['result']['orientation'], 3, 'orientation case error')
  50. self.assertEqual(r['result']['name']['text'], '阎妍', 'name case error')
  51. self.assertEqual(r['result']['id']['text'], '410802198701190046', 'id case error')
  52. def test_long_exp(self):
  53. image_path = './images/long-exp.png'
  54. r = send_request(image_path, '1')
  55. self.assertEqual(r['status'], '000', 'status case error')
  56. self.assertEqual(r['result']['expire_date']['text'], '20180227-长期', 'expire date case error')
  57. def test_tilt1(self):
  58. image_path = './images/tilt.jpg'
  59. r = send_request(image_path, '0')
  60. self.assertEqual(r['status'], '000', 'status case error')
  61. self.assertEqual(r['result']['orientation'], 0 or 1, 'orientation case error')
  62. def test_tilt2(self):
  63. image_path = './images/tilt.jpg'
  64. r = send_request(image_path, '0')
  65. self.assertEqual(r['result']['name']['text'], '奥巴马', 'name case error')
  66. self.assertEqual(r['result']['birthday']['text'], '1961年8月4日', 'birthday case error')
  67. def test_tilt3(self):
  68. image_path = './images/tilt.jpg'
  69. r = send_request(image_path, '0')
  70. self.assertEqual(r['result']['birthday']['text'], '1961年8月4日', 'birthday case error')
  71. def test_vague(self):
  72. image_path = './images/vague.jpg'
  73. r = send_request(image_path, '0')
  74. self.assertEqual(r['status'], '101', 'status case error')
  75. def test_bank(self):
  76. image_path = './images/bank.jpg'
  77. r = send_request(image_path, '0')
  78. self.assertEqual(r['status'], '101', 'status case error')
  79. def test_back(self):
  80. image_path = './images/back.jpeg'
  81. r = send_request(image_path, '1')
  82. self.assertEqual(r['status'], '000', 'status case error')
  83. self.assertEqual(r['result']['orientation'], 0, 'orientation case error')
  84. self.assertEqual(r['result']['expire_date']['text'], '20220114-20420114', 'expire_date case error')
  85. def test_back_270(self):
  86. image_path = './images/back-270.jpg'
  87. r = send_request(image_path, '1')
  88. self.assertEqual(r['status'], '000', 'status case error')
  89. self.assertEqual(r['result']['orientation'], 3, 'orientation case error')
  90. self.assertEqual(r['result']['expire_date']['text'], '20220114-20420114', 'expire_date case error')
  91. def test_back_180(self):
  92. image_path = './images/back-180.jpg'
  93. r = send_request(image_path, '1')
  94. self.assertEqual(r['status'], '000', 'status case error')
  95. self.assertEqual(r['result']['orientation'], 2, 'orientation case error')
  96. self.assertEqual(r['result']['expire_date']['text'], '20220114-20420114', 'expire_date case error')
  97. def test_back_90(self):
  98. image_path = './images/back-90.jpg'
  99. r = send_request(image_path, '1')
  100. self.assertEqual(r['status'], '000', 'status case error')
  101. self.assertEqual(r['result']['orientation'], 1, 'orientation case error')
  102. self.assertEqual(r['result']['expire_date']['text'], '20220114-20420114', 'expire_date case error')
  103. def test_back_vague(self):
  104. image_path = './images/back-vague.jpeg'
  105. r = send_request(image_path, '1')
  106. self.assertEqual(r['status'], '000', 'status case error')
  107. self.assertEqual(r['result']['orientation'], 0, 'orientation case error')
  108. self.assertEqual(r['result']['expire_date']['text'], '20120724-20220724', 'expire_date case error')
  109. #