Skip to content

Commit 22560ab

Browse files
committed
Add Vision detect_landmarks() system tests.
1 parent 5d6148e commit 22560ab

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

system_tests/data/landmark.jpg

92.9 KB
Loading

system_tests/vision.py

Lines changed: 59 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
LOGO_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'logo.png')
3232
FACE_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'faces.jpg')
3333
LABEL_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'car.jpg')
34+
LANDMARK_FILE = os.path.join(_SYS_TESTS_DIR, 'data', 'landmark.jpg')
3435

3536

3637
class Config(object):
@@ -243,7 +244,6 @@ def tearDown(self):
243244
value.delete()
244245

245246
def _assert_label(self, label):
246-
247247
self.assertIsInstance(label, EntityAnnotation)
248248
self.assertIn(label.description, self.DESCRIPTIONS)
249249
self.assertIsInstance(label.mid, six.text_type)
@@ -282,3 +282,61 @@ def test_detect_labels_filename(self):
282282
self.assertEqual(len(labels), 10)
283283
for label in labels:
284284
self._assert_label(label)
285+
286+
287+
class TestVisionClientLandmark(BaseVisionTestCase):
288+
DESCRIPTIONS = ('Mount Rushmore')
289+
290+
def setUp(self):
291+
self.to_delete_by_case = []
292+
293+
def tearDown(self):
294+
for value in self.to_delete_by_case:
295+
value.delete()
296+
297+
def _assert_landmark(self, landmark):
298+
self.assertIsInstance(landmark, EntityAnnotation)
299+
self.assertIn(landmark.description, self.DESCRIPTIONS)
300+
self.assertEqual(len(landmark.locations), 1)
301+
location = landmark.locations[0]
302+
self._assert_coordinate(location.latitude)
303+
self._assert_coordinate(location.longitude)
304+
for vertex in landmark.bounds.vertices:
305+
self._assert_coordinate(vertex.x_coordinate)
306+
self._assert_coordinate(vertex.y_coordinate)
307+
self.assertGreater(landmark.score, 0.2)
308+
self.assertIsInstance(landmark.mid, six.text_type)
309+
310+
def test_detect_landmark_content(self):
311+
client = Config.CLIENT
312+
with open(LANDMARK_FILE, 'rb') as image_file:
313+
image = client.image(content=image_file.read())
314+
landmarks = image.detect_landmarks()
315+
self.assertEqual(len(landmarks), 1)
316+
landmark = landmarks[0]
317+
self._assert_landmark(landmark)
318+
319+
def test_detect_landmark_gcs(self):
320+
bucket_name = Config.TEST_BUCKET.name
321+
blob_name = 'landmark.jpg'
322+
blob = Config.TEST_BUCKET.blob(blob_name)
323+
self.to_delete_by_case.append(blob) # Clean-up.
324+
with open(LANDMARK_FILE, 'rb') as file_obj:
325+
blob.upload_from_file(file_obj)
326+
327+
source_uri = 'gs://%s/%s' % (bucket_name, blob_name)
328+
329+
client = Config.CLIENT
330+
image = client.image(source_uri=source_uri)
331+
landmarks = image.detect_landmarks()
332+
self.assertEqual(len(landmarks), 1)
333+
landmark = landmarks[0]
334+
self._assert_landmark(landmark)
335+
336+
def test_detect_landmark_filename(self):
337+
client = Config.CLIENT
338+
image = client.image(filename=LANDMARK_FILE)
339+
landmarks = image.detect_landmarks()
340+
self.assertEqual(len(landmarks), 1)
341+
landmark = landmarks[0]
342+
self._assert_landmark(landmark)

0 commit comments

Comments
 (0)