I have been puzzled by the results of the integration on some unknown function of several variables. For instance:
>>> import sympy as sy
>>> x, y, t = sy.symbols('x y t', real=True)
>>> vx = sy.Function('v_x')(x,y,t)
vx being thought as a scalar field in the 2D plane.
>>> sy.integrate(vx, (y))
gives the expected primitive of the field wrt the second argument y.
However
>>>sy.integrate(vx.diff(x), (y))
assumes that vx.diff(x) does not depend on y, and thus the primitive is simply y*vx.diff(x).