Package: pyresample
Version: 1.2.5-1
Severity: important
Tags: sid + patch
Justification: FTBFS
User: [email protected]
Usertags: mips-patch
Forwarded: https://github.com/pytroll/pyresample/issues/43
Hi,
Package pyresample FTBFS on mips* with following error:
> ======================================================================
> FAIL: test_custom_uncert (pyresample.test.test_kd_tree.Test)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/«PKGBUILDDIR»/pyresample/test/test_kd_tree.py", line 102, in
> test_custom_uncert
> len(w) != 1, 'Failed to create neighbour warning')
> AssertionError: Failed to create neighbour warning
>
> ======================================================================
> FAIL: test_gauss_uncert (pyresample.test.test_kd_tree.Test)
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File "/«PKGBUILDDIR»/pyresample/test/test_kd_tree.py", line 79, in
> test_gauss_uncert
> len(w) != 1, 'Failed to create neighbour warning')
> AssertionError: Failed to create neighbour warning
>
> ----------------------------------------------------------------------
> Ran 115 tests in 582.910s
>
> FAILED (failures=2)
build logs:
https://buildd.debian.org/status/fetch.php?pkg=pyresample&arch=mipsel&ver=1.2.5-1&stamp=1470596543
Tests are failing because there are more warnings than expected on mips*.
With added debug prints the following warnings are raised:
> DBG: test_custom_uncert w[0] = {message : UserWarning('Searching for 8
> neighbours in 3 data points',), category : 'UserWarning', filename :
> '/build/pyresample-X1AqqR/pyresample-1.2.5/pyresample/kd_tree.py', lineno :
> 314, line : None}
> DBG: test_custom_uncert w[1] = {message : RuntimeWarning('invalid value
> encountered in multiply',), category : 'RuntimeWarning', filename :
> '/build/pyresample-X1AqqR/pyresample-1.2.5/pyresample/kd_tree.py', lineno :
> 834, line : None}
>
> DBG: test_gauss_uncert w[0] = {message : UserWarning('Searching for 8
> neighbours in 3 data points',), category : 'UserWarn>ing', filename :
> '/build/pyresample-X1AqqR/pyresample-1.2.5/pyresample/kd_tree.py', lineno :
> 314, line : None}
> DBG: test_gauss_uncert w[1] = {message : RuntimeWarning('invalid value
> encountered in multiply',), category : 'RuntimeWarning', filename :
> '/build/pyresample-X1AqqR/pyresample-1.2.5/pyresample/kd_tree.py', lineno :
> 834, line : None}
Tests are fixed by changing the asserts to handle more warnings than expected.
This solution was proposed upstream.
With attached patch I was able to build pyresample successfully for mips*.
Thanks,
Daniel
--- pyresample-1.2.5.orig/pyresample/test/test_kd_tree.py
+++ pyresample-1.2.5/pyresample/test/test_kd_tree.py
@@ -75,13 +75,13 @@ class Test(unittest.TestCase):
res, stddev, count = kd_tree.resample_gauss(self.tswath, self.tdata,
self.tgrid, 100000, sigma,
with_uncert=True)
- self.assertFalse(
- len(w) != 1, 'Failed to create neighbour warning')
- self.assertFalse(('Searching' not in str(
- w[0].message)), 'Failed to create correct neighbour warning')
+ self.assertTrue(
+ len(w) > 0, 'Failed to create neighbour warning')
+ self.assertTrue((any('Searching' in str(_w.message) for _w in w)),
+ 'Failed to create correct neighbour warning')
expected_res = 2.20206560694
- expected_stddev = 0.707115076173
+ exprcted_stddev = 0.707115076173
expected_count = 3
self.assertAlmostEqual(res[0], expected_res, 5,
'Failed to calculate gaussian weighting with uncertainty')
@@ -98,10 +98,10 @@ class Test(unittest.TestCase):
res, stddev, counts = kd_tree.resample_custom(self.tswath,
self.tdata, self.tgrid,
100000, wf, with_uncert=True)
- self.assertFalse(
- len(w) != 1, 'Failed to create neighbour warning')
- self.assertFalse(('Searching' not in str(
- w[0].message)), 'Failed to create correct neighbour warning')
+ self.assertTrue(
+ len(w) > 0, 'Failed to create neighbour warning')
+ self.assertTrue((any('Searching' in str(_w.message) for _w in w)),
+ 'Failed to create correct neighbour warning')
self.assertAlmostEqual(res[0], 2.32193149, 5,
'Failed to calculate custom weighting with uncertainty')