What are the top gotchas for someone moving from a static lang (java/c#) to dynamic language like python?
It seems cool how things can be done, but renaming a method, or adding/removing parameters seems so risky!
Is the only solution to write tests for each method?
"Is the only solution to write tests for each method?"

Are you saying you didn't write tests for each method in Java?
If you wrote tests for each method in Java, then -- well -- nothing changes, does it?

renaming a method, seems so risky!

Correct.  Don't do it.

adding/removing parameters seems so risky!

What?  Are you talking about optional parameters?  If so, then having multiple overloaded names in Java seems risky and confusing.  Having optional parameters seems simpler.

If you search on SO for the most common Python questions, you'll find that some things are chronic questions.

How to update the PYTHONPATH.
Why some random floating-point calculation isn't the same as a mathematical abstraction might indicate.
Using Python 3 and typing code from a Python 2 tutorial.
Why Python doesn't have super-complex protected, private and public declarations.
Why Python doesn't have an enum type.

The #1 chronic problem seems to be using mutable objects as default values for a function.  Simply avoid this.
top gotchas for someone moving from a static lang (java/c#) to dynamic language like python