1515from unittest import mock
1616
1717import flask
18- from google .cloud import vision_v1
18+ from google .cloud import vision
1919import pytest
2020
2121import vision_function
@@ -27,16 +27,19 @@ def app() -> flask.Flask:
2727 return flask .Flask (__name__ )
2828
2929
30- @mock .patch ('vision_function.vision_v1' )
31- def test_vision_function (mock_vision_v1 : object , app : flask .Flask ) -> None :
30+ @mock .patch ('vision_function.urllib.request' )
31+ @mock .patch ('vision_function.vision' )
32+ def test_vision_function (mock_vision : object , mock_request : object ,
33+ app : flask .Flask ) -> None :
34+ mock_request .urlopen = mock .Mock (read = mock .Mock (return_value = b'filedata' ))
3235 label_detection_mock = mock .Mock (side_effect = [
33- vision_v1 .AnnotateImageResponse (
36+ vision .AnnotateImageResponse (
3437 {'label_annotations' : [{'description' : 'apple' }]}),
35- vision_v1 .AnnotateImageResponse (
38+ vision .AnnotateImageResponse (
3639 {'label_annotations' : [{'description' : 'banana' }]})])
37- mock_vision_v1 .ImageAnnotatorClient = mock .Mock (
40+ mock_vision .ImageAnnotatorClient = mock .Mock (
3841 return_value = mock .Mock (label_detection = label_detection_mock ))
39- mock_vision_v1 .AnnotateImageResponse = vision_v1 .AnnotateImageResponse
42+ mock_vision .AnnotateImageResponse = vision .AnnotateImageResponse
4043 with app .test_request_context (
4144 json = {'calls' : [['https://storage.googleapis.com/bucket/apple' ],
4245 ['https://storage.googleapis.com/bucket/banana' ]]}):
@@ -47,11 +50,13 @@ def test_vision_function(mock_vision_v1: object, app: flask.Flask) -> None:
4750 assert 'banana' in str (response .get_json ()['replies' ][1 ])
4851
4952
50- @mock .patch ('vision_function.vision_v1' )
51- def test_vision_function_error (
52- mock_vision_v1 : object , app : flask .Flask ) -> None :
53+ @mock .patch ('vision_function.urllib.request' )
54+ @mock .patch ('vision_function.vision' )
55+ def test_vision_function_error (mock_vision : object , mock_request : object ,
56+ app : flask .Flask ) -> None :
57+ mock_request .urlopen = mock .Mock (read = mock .Mock (return_value = b'filedata' ))
5358 label_detection_mock = mock .Mock (side_effect = Exception ('API error' ))
54- mock_vision_v1 .ImageAnnotatorClient = mock .Mock (
59+ mock_vision .ImageAnnotatorClient = mock .Mock (
5560 return_value = mock .Mock (label_detection = label_detection_mock ))
5661 with app .test_request_context (
5762 json = {'calls' : [['https://storage.googleapis.com/bucket/apple' ],
0 commit comments