Path: blob/develop/tests/functional/rekognition/test_image_parameters.py
1567 views
# Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.1#2# Licensed under the Apache License, Version 2.0 (the "License"). You3# may not use this file except in compliance with the License. A copy of4# the License is located at5#6# http://aws.amazon.com/apache2.0/7#8# or in the "license" file accompanying this file. This file is9# distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF10# ANY KIND, either express or implied. See the License for the specific11# language governing permissions and limitations under the License.12from awscli.testutils import BaseAWSCommandParamsTest13from awscli.testutils import FileCreator141516class BaseRekognitionTest(BaseAWSCommandParamsTest):17def setUp(self):18super(BaseRekognitionTest, self).setUp()19self.files = FileCreator()20self.temp_file = self.files.create_file(21'foo', 'mycontents')22with open(self.temp_file, 'rb') as f:23self.temp_file_bytes = f.read()2425def tearDown(self):26super(BaseRekognitionTest, self).tearDown()27self.files.remove_all()282930class TestCompareFaces(BaseRekognitionTest):3132prefix = 'rekognition compare-faces'3334def test_image_file_does_populate_bytes_param(self):35second_temp_file = self.files.create_file('bar', 'othercontents')36second_file_bytes = open(second_temp_file, 'rb').read()3738cmdline = self.prefix39cmdline += ' --source-image-bytes fileb://%s' % self.temp_file40cmdline += ' --target-image-bytes fileb://%s' % second_temp_file41result = {42'SourceImage': {'Bytes': self.temp_file_bytes},43'TargetImage': {'Bytes': second_file_bytes},44}45self.assert_params_for_cmd(cmdline, result)4647def test_image_bytes_still_works(self):48cmdline = self.prefix49cmdline += ' --source-image Bytes=foo'50cmdline += ' --target-image Bytes=bar'51result = {52'SourceImage': {'Bytes': 'foo'},53'TargetImage': {'Bytes': 'bar'},54}55self.assert_params_for_cmd(cmdline, result)565758class TestDetectFaces(BaseRekognitionTest):5960prefix = 'rekognition detect-faces'6162def test_image_file_does_populate_bytes_param(self):63cmdline = self.prefix64cmdline += ' --image-bytes fileb://%s' % self.temp_file65result = {66'Image': {'Bytes': self.temp_file_bytes}67}68self.assert_params_for_cmd(cmdline, result)6970def test_image_bytes_still_works(self):71cmdline = self.prefix72cmdline += ' --image Bytes=foobar'73result = {74'Image': {'Bytes': 'foobar'}75}76self.assert_params_for_cmd(cmdline, result)777879class TestDetectLabels(BaseRekognitionTest):8081prefix = 'rekognition detect-labels'8283def test_image_file_does_populate_bytes_param(self):84cmdline = self.prefix85cmdline += ' --image-bytes fileb://%s' % self.temp_file86result = {87'Image': {'Bytes': self.temp_file_bytes}88}89self.assert_params_for_cmd(cmdline, result)9091def test_image_bytes_still_works(self):92cmdline = self.prefix93cmdline += ' --image Bytes=foobar'94result = {95'Image': {'Bytes': 'foobar'}96}97self.assert_params_for_cmd(cmdline, result)9899100class TestDetectModerationLabels(BaseRekognitionTest):101102prefix = 'rekognition detect-moderation-labels'103104def test_image_file_does_populate_bytes_param(self):105cmdline = self.prefix106cmdline += ' --image-bytes fileb://%s' % self.temp_file107result = {108'Image': {'Bytes': self.temp_file_bytes}109}110self.assert_params_for_cmd(cmdline, result)111112def test_image_bytes_still_works(self):113cmdline = self.prefix114cmdline += ' --image Bytes=foobar'115result = {116'Image': {'Bytes': 'foobar'}117}118self.assert_params_for_cmd(cmdline, result)119120121class TestDetectText(BaseRekognitionTest):122123prefix = 'rekognition detect-text'124125def test_image_file_does_populate_bytes_param(self):126cmdline = self.prefix127cmdline += ' --image-bytes fileb://%s' % self.temp_file128result = {129'Image': {'Bytes': self.temp_file_bytes}130}131self.assert_params_for_cmd(cmdline, result)132133def test_image_bytes_still_works(self):134cmdline = self.prefix135cmdline += ' --image Bytes=foobar'136result = {137'Image': {'Bytes': 'foobar'}138}139self.assert_params_for_cmd(cmdline, result)140141142class TestIndexFaces(BaseRekognitionTest):143144prefix = 'rekognition index-faces'145146def test_image_file_does_populate_bytes_param(self):147cmdline = self.prefix148cmdline += ' --collection-id foobar'149cmdline += ' --image-bytes fileb://%s' % self.temp_file150result = {151'CollectionId': 'foobar',152'Image': {'Bytes': self.temp_file_bytes}153}154self.assert_params_for_cmd(cmdline, result)155156def test_image_bytes_still_works(self):157cmdline = self.prefix158cmdline += ' --collection-id foobar'159cmdline += ' --image Bytes=foobar'160result = {161'CollectionId': 'foobar',162'Image': {'Bytes': 'foobar'}163}164self.assert_params_for_cmd(cmdline, result)165166167class TestRecognizeCelebrities(BaseRekognitionTest):168169prefix = 'rekognition recognize-celebrities'170171def test_image_file_does_populate_bytes_param(self):172cmdline = self.prefix173cmdline += ' --image-bytes fileb://%s' % self.temp_file174result = {175'Image': {'Bytes': self.temp_file_bytes}176}177self.assert_params_for_cmd(cmdline, result)178179def test_image_bytes_still_works(self):180cmdline = self.prefix181cmdline += ' --image Bytes=foobar'182result = {183'Image': {'Bytes': 'foobar'}184}185self.assert_params_for_cmd(cmdline, result)186187188class TestSearchFacesByImage(BaseRekognitionTest):189190prefix = 'rekognition search-faces-by-image'191192def test_image_file_does_populate_bytes_param(self):193cmdline = self.prefix194cmdline += ' --collection-id foobar'195cmdline += ' --image-bytes fileb://%s' % self.temp_file196result = {197'CollectionId': 'foobar',198'Image': {'Bytes': self.temp_file_bytes}199}200self.assert_params_for_cmd(cmdline, result)201202def test_image_bytes_still_works(self):203cmdline = self.prefix204cmdline += ' --collection-id foobar'205cmdline += ' --image Bytes=foobar'206result = {207'CollectionId': 'foobar',208'Image': {'Bytes': 'foobar'}209}210self.assert_params_for_cmd(cmdline, result)211212213