I'm just starting exploring IAM Roles. So far I launched an instance, created an IAM Role. Everything seems to work as expected. Currently I'm using boto (Python sdk). 
What I don't understand :

Does the boto takes care of credential rotation? (For example, imagine I have an instance that should be up for a long time, and it constantly have to upload keys to s3 bucket. In case if credentials are expired, do I need to 'catch' an exception and reconnect? or boto will silently do this for me?)
Is it possible to manually trigger IAM to change credentials on the Role? (I want to do this, because I want to test above example. Or if there is there an alternative to this testcase? )
The boto library does handle credential rotation.  Or, rather, AWS rotates the credentials and boto automatically picks up the new credentials.  Currently, boto does this by checking the expiration timestamp of the temporary credentials.  If the expiration is within 5 minutes of the current time, it will query the metadata service on the instance for the IAM role credentials.  The service is responsible for rotating the credentials.
I'm not aware of a way to force the service to rotate the credentials but you could probably force boto to look for updated credentials by manually adjusting the expiration timestamp of the current credentials.
How to manually change IAM Roles credentials?