FriCAS also would get it right, except that there is a bug in the interface, see
If someone can give me a hint on how to send %i instead of I for the imaginary unit to fricas, I'll fix it...
(1) -> integrate(sin(x)*exp(%i*x),x=-%pi..0)
%i %pi
(1) ------
2
but
sage: integrate(sin(x)*exp(I*x),x,-pi,0,algorithm="fricas")
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
because
sage: fricas.integrate(sin(x)*exp(I*x), x)
I x I x
I %e sin(x) - cos(x)%e
---------------------------
2
I + 1
Martin