Right, it's a list of length one. Guess the ``for ... yield`` did trip me up:)

There's no *strong* reason to avoid ``@raises``, but consistency and clarity are important. The construct is also a bit strange - why use ``assert_array_almost_equal`` on two arrays you don't expect to be equal?

I'd write this test (assuming the comparison bit makes sense) something like:

    def test_symm_wrong_uplo(self): 
        f = _get_func('symm', 'd')[0]
        res = f(a=self.a, b=self.b, lower=1, c=self.c, alpha=1., beta=1.) 
        assert_(not np.allclose(res, self.t.T))  # comment on why this is a useful test