15
15
from unittest import mock
16
16
17
17
import flask
18
- from google .cloud import vision_v1
18
+ from google .cloud import vision
19
19
import pytest
20
20
21
21
import vision_function
@@ -27,16 +27,19 @@ def app() -> flask.Flask:
27
27
return flask .Flask (__name__ )
28
28
29
29
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' ))
32
35
label_detection_mock = mock .Mock (side_effect = [
33
- vision_v1 .AnnotateImageResponse (
36
+ vision .AnnotateImageResponse (
34
37
{'label_annotations' : [{'description' : 'apple' }]}),
35
- vision_v1 .AnnotateImageResponse (
38
+ vision .AnnotateImageResponse (
36
39
{'label_annotations' : [{'description' : 'banana' }]})])
37
- mock_vision_v1 .ImageAnnotatorClient = mock .Mock (
40
+ mock_vision .ImageAnnotatorClient = mock .Mock (
38
41
return_value = mock .Mock (label_detection = label_detection_mock ))
39
- mock_vision_v1 .AnnotateImageResponse = vision_v1 .AnnotateImageResponse
42
+ mock_vision .AnnotateImageResponse = vision .AnnotateImageResponse
40
43
with app .test_request_context (
41
44
json = {'calls' : [['https://storage.googleapis.com/bucket/apple' ],
42
45
['https://storage.googleapis.com/bucket/banana' ]]}):
@@ -47,11 +50,13 @@ def test_vision_function(mock_vision_v1: object, app: flask.Flask) -> None:
47
50
assert 'banana' in str (response .get_json ()['replies' ][1 ])
48
51
49
52
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' ))
53
58
label_detection_mock = mock .Mock (side_effect = Exception ('API error' ))
54
- mock_vision_v1 .ImageAnnotatorClient = mock .Mock (
59
+ mock_vision .ImageAnnotatorClient = mock .Mock (
55
60
return_value = mock .Mock (label_detection = label_detection_mock ))
56
61
with app .test_request_context (
57
62
json = {'calls' : [['https://storage.googleapis.com/bucket/apple' ],
0 commit comments