Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aws
GitHub Repository: aws/aws-cli
Path: blob/develop/tests/functional/rekognition/test_image_parameters.py
1567 views
1
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
#
3
# Licensed under the Apache License, Version 2.0 (the "License"). You
4
# may not use this file except in compliance with the License. A copy of
5
# the License is located at
6
#
7
# http://aws.amazon.com/apache2.0/
8
#
9
# or in the "license" file accompanying this file. This file is
10
# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
# ANY KIND, either express or implied. See the License for the specific
12
# language governing permissions and limitations under the License.
13
from awscli.testutils import BaseAWSCommandParamsTest
14
from awscli.testutils import FileCreator
15
16
17
class BaseRekognitionTest(BaseAWSCommandParamsTest):
18
def setUp(self):
19
super(BaseRekognitionTest, self).setUp()
20
self.files = FileCreator()
21
self.temp_file = self.files.create_file(
22
'foo', 'mycontents')
23
with open(self.temp_file, 'rb') as f:
24
self.temp_file_bytes = f.read()
25
26
def tearDown(self):
27
super(BaseRekognitionTest, self).tearDown()
28
self.files.remove_all()
29
30
31
class TestCompareFaces(BaseRekognitionTest):
32
33
prefix = 'rekognition compare-faces'
34
35
def test_image_file_does_populate_bytes_param(self):
36
second_temp_file = self.files.create_file('bar', 'othercontents')
37
second_file_bytes = open(second_temp_file, 'rb').read()
38
39
cmdline = self.prefix
40
cmdline += ' --source-image-bytes fileb://%s' % self.temp_file
41
cmdline += ' --target-image-bytes fileb://%s' % second_temp_file
42
result = {
43
'SourceImage': {'Bytes': self.temp_file_bytes},
44
'TargetImage': {'Bytes': second_file_bytes},
45
}
46
self.assert_params_for_cmd(cmdline, result)
47
48
def test_image_bytes_still_works(self):
49
cmdline = self.prefix
50
cmdline += ' --source-image Bytes=foo'
51
cmdline += ' --target-image Bytes=bar'
52
result = {
53
'SourceImage': {'Bytes': 'foo'},
54
'TargetImage': {'Bytes': 'bar'},
55
}
56
self.assert_params_for_cmd(cmdline, result)
57
58
59
class TestDetectFaces(BaseRekognitionTest):
60
61
prefix = 'rekognition detect-faces'
62
63
def test_image_file_does_populate_bytes_param(self):
64
cmdline = self.prefix
65
cmdline += ' --image-bytes fileb://%s' % self.temp_file
66
result = {
67
'Image': {'Bytes': self.temp_file_bytes}
68
}
69
self.assert_params_for_cmd(cmdline, result)
70
71
def test_image_bytes_still_works(self):
72
cmdline = self.prefix
73
cmdline += ' --image Bytes=foobar'
74
result = {
75
'Image': {'Bytes': 'foobar'}
76
}
77
self.assert_params_for_cmd(cmdline, result)
78
79
80
class TestDetectLabels(BaseRekognitionTest):
81
82
prefix = 'rekognition detect-labels'
83
84
def test_image_file_does_populate_bytes_param(self):
85
cmdline = self.prefix
86
cmdline += ' --image-bytes fileb://%s' % self.temp_file
87
result = {
88
'Image': {'Bytes': self.temp_file_bytes}
89
}
90
self.assert_params_for_cmd(cmdline, result)
91
92
def test_image_bytes_still_works(self):
93
cmdline = self.prefix
94
cmdline += ' --image Bytes=foobar'
95
result = {
96
'Image': {'Bytes': 'foobar'}
97
}
98
self.assert_params_for_cmd(cmdline, result)
99
100
101
class TestDetectModerationLabels(BaseRekognitionTest):
102
103
prefix = 'rekognition detect-moderation-labels'
104
105
def test_image_file_does_populate_bytes_param(self):
106
cmdline = self.prefix
107
cmdline += ' --image-bytes fileb://%s' % self.temp_file
108
result = {
109
'Image': {'Bytes': self.temp_file_bytes}
110
}
111
self.assert_params_for_cmd(cmdline, result)
112
113
def test_image_bytes_still_works(self):
114
cmdline = self.prefix
115
cmdline += ' --image Bytes=foobar'
116
result = {
117
'Image': {'Bytes': 'foobar'}
118
}
119
self.assert_params_for_cmd(cmdline, result)
120
121
122
class TestDetectText(BaseRekognitionTest):
123
124
prefix = 'rekognition detect-text'
125
126
def test_image_file_does_populate_bytes_param(self):
127
cmdline = self.prefix
128
cmdline += ' --image-bytes fileb://%s' % self.temp_file
129
result = {
130
'Image': {'Bytes': self.temp_file_bytes}
131
}
132
self.assert_params_for_cmd(cmdline, result)
133
134
def test_image_bytes_still_works(self):
135
cmdline = self.prefix
136
cmdline += ' --image Bytes=foobar'
137
result = {
138
'Image': {'Bytes': 'foobar'}
139
}
140
self.assert_params_for_cmd(cmdline, result)
141
142
143
class TestIndexFaces(BaseRekognitionTest):
144
145
prefix = 'rekognition index-faces'
146
147
def test_image_file_does_populate_bytes_param(self):
148
cmdline = self.prefix
149
cmdline += ' --collection-id foobar'
150
cmdline += ' --image-bytes fileb://%s' % self.temp_file
151
result = {
152
'CollectionId': 'foobar',
153
'Image': {'Bytes': self.temp_file_bytes}
154
}
155
self.assert_params_for_cmd(cmdline, result)
156
157
def test_image_bytes_still_works(self):
158
cmdline = self.prefix
159
cmdline += ' --collection-id foobar'
160
cmdline += ' --image Bytes=foobar'
161
result = {
162
'CollectionId': 'foobar',
163
'Image': {'Bytes': 'foobar'}
164
}
165
self.assert_params_for_cmd(cmdline, result)
166
167
168
class TestRecognizeCelebrities(BaseRekognitionTest):
169
170
prefix = 'rekognition recognize-celebrities'
171
172
def test_image_file_does_populate_bytes_param(self):
173
cmdline = self.prefix
174
cmdline += ' --image-bytes fileb://%s' % self.temp_file
175
result = {
176
'Image': {'Bytes': self.temp_file_bytes}
177
}
178
self.assert_params_for_cmd(cmdline, result)
179
180
def test_image_bytes_still_works(self):
181
cmdline = self.prefix
182
cmdline += ' --image Bytes=foobar'
183
result = {
184
'Image': {'Bytes': 'foobar'}
185
}
186
self.assert_params_for_cmd(cmdline, result)
187
188
189
class TestSearchFacesByImage(BaseRekognitionTest):
190
191
prefix = 'rekognition search-faces-by-image'
192
193
def test_image_file_does_populate_bytes_param(self):
194
cmdline = self.prefix
195
cmdline += ' --collection-id foobar'
196
cmdline += ' --image-bytes fileb://%s' % self.temp_file
197
result = {
198
'CollectionId': 'foobar',
199
'Image': {'Bytes': self.temp_file_bytes}
200
}
201
self.assert_params_for_cmd(cmdline, result)
202
203
def test_image_bytes_still_works(self):
204
cmdline = self.prefix
205
cmdline += ' --collection-id foobar'
206
cmdline += ' --image Bytes=foobar'
207
result = {
208
'CollectionId': 'foobar',
209
'Image': {'Bytes': 'foobar'}
210
}
211
self.assert_params_for_cmd(cmdline, result)
212
213