Fix EXIF based image rotation test

The test checks for a pixel value after rotation (good
idea!). But the value seems to be a bit different on some
platforms, so use a list of seen values.

Not the perfect solution, but it works.
This commit is contained in:
Elrond 2012-02-04 20:54:14 +01:00 committed by Joar Wandborg
parent 64da09e86a
commit ccca39f1d8

View File

@ -21,6 +21,11 @@ import Image
from mediagoblin.tools.exif import exif_fix_image_orientation, \ from mediagoblin.tools.exif import exif_fix_image_orientation, \
extract_exif, clean_exif, get_gps_data, get_useful extract_exif, clean_exif, get_gps_data, get_useful
def assert_in(a, b):
assert a in b, "%r not in %r" % (a, b)
GOOD_JPG = pkg_resources.resource_filename( GOOD_JPG = pkg_resources.resource_filename(
'mediagoblin.tests', 'mediagoblin.tests',
os.path.join( os.path.join(
@ -42,6 +47,7 @@ GPS_JPG = pkg_resources.resource_filename(
'test_exif', 'test_exif',
'has-gps.jpg')) 'has-gps.jpg'))
def test_exif_extraction(): def test_exif_extraction():
''' '''
Test EXIF extraction from a good image Test EXIF extraction from a good image
@ -130,6 +136,7 @@ def test_exif_extraction():
32, 32, 32], 32, 32, 32],
'field_length': 44}} 'field_length': 44}}
def test_exif_image_orientation(): def test_exif_image_orientation():
''' '''
Test image reorientation based on EXIF data Test image reorientation based on EXIF data
@ -144,7 +151,10 @@ def test_exif_image_orientation():
assert image.size == (428, 640) assert image.size == (428, 640)
# If this pixel looks right, the rest of the image probably will too. # If this pixel looks right, the rest of the image probably will too.
assert image.getdata()[10000] == (41, 28, 11) assert_in(image.getdata()[10000],
((41, 28, 11), (43, 27, 11))
)
def test_exif_no_exif(): def test_exif_no_exif():
''' '''
@ -160,6 +170,7 @@ def test_exif_no_exif():
assert gps == {} assert gps == {}
assert useful == {} assert useful == {}
def test_exif_bad_image(): def test_exif_bad_image():
''' '''
Test EXIF extraction from a faithful, but bad image Test EXIF extraction from a faithful, but bad image
@ -174,6 +185,7 @@ def test_exif_bad_image():
assert gps == {} assert gps == {}
assert useful == {} assert useful == {}
def test_exif_gps_data(): def test_exif_gps_data():
''' '''
Test extractiion of GPS data Test extractiion of GPS data
@ -186,4 +198,3 @@ def test_exif_gps_data():
'direction': 25.674046740467404, 'direction': 25.674046740467404,
'altitude': 37.64365671641791, 'altitude': 37.64365671641791,
'longitude': 18.016166666666667} 'longitude': 18.016166666666667}