Add unit test for #5524
authorAndrew Browning <ayleph@thisshitistemp.com>
Wed, 20 Sep 2017 05:02:10 +0000 (01:02 -0400)
committerAndrew Browning <ayleph@thisshitistemp.com>
Wed, 20 Sep 2017 05:02:10 +0000 (01:02 -0400)
Add a unit test to verify that the change introduced in 07c535c no
longer resulst in a zero divide error when gps data contains no divisor.

This commit includes a test image created by Andrew Browning. Andrew
Browning dedicates this image to the public domain under the CC0 license.

mediagoblin/tests/resources.py
mediagoblin/tests/test_exif.py
mediagoblin/tests/test_exif/bad-gps.jpg [new file with mode: 0644]

index 480f6d9a4e8008b07aa0953f279cc51a71d63ddd..38406d6255288bb813506a24c1d8d40e60743035 100644 (file)
@@ -41,3 +41,4 @@ GOOD_JPG = resource_exif('good.jpg')
 EMPTY_JPG = resource_exif('empty.jpg')
 BAD_JPG = resource_exif('bad.jpg')
 GPS_JPG = resource_exif('has-gps.jpg')
+BAD_GPS_JPG = resource_exif('bad-gps.jpg')
index d0495a7aeded5d088ed4475abc07abf4747cf7ab..ad771ccac9cefe6439edc22c39e570aaa3f3b39d 100644 (file)
@@ -24,7 +24,7 @@ from collections import OrderedDict
 
 from mediagoblin.tools.exif import exif_fix_image_orientation, \
     extract_exif, clean_exif, get_gps_data, get_useful
-from .resources import GOOD_JPG, EMPTY_JPG, BAD_JPG, GPS_JPG
+from .resources import GOOD_JPG, EMPTY_JPG, BAD_JPG, GPS_JPG, BAD_GPS_JPG
 
 
 def assert_in(a, b):
@@ -437,3 +437,18 @@ def test_exif_gps_data():
         'direction': 25.674046740467404,
         'altitude': 37.64365671641791,
         'longitude': 18.016166666666667}
+
+
+def test_exif_bad_gps_data():
+    '''
+    Test extraction of GPS data from an image with bad GPS data
+    '''
+    result = extract_exif(BAD_GPS_JPG)
+    gps = get_gps_data(result)
+    print(gps)
+
+    assert gps == {
+        'latitude': 0.0,
+        'direction': 0.0,
+        'altitude': 0.0,
+        'longitude': 0.0}
diff --git a/mediagoblin/tests/test_exif/bad-gps.jpg b/mediagoblin/tests/test_exif/bad-gps.jpg
new file mode 100644 (file)
index 0000000..bd6c7bf
Binary files /dev/null and b/mediagoblin/tests/test_exif/bad-gps.jpg differ