title: aws boto3 client Stubber help stubbing unit tests
body: <p>I'm trying to write some unit tests for aws RDS. Currently, the start stop rds api calls have not yet been implemented in moto. I tried just mocking out boto3 but ran into all sorts of weird issues. I did some googling and found <a href="http://botocore.readthedocs.io/en/latest/reference/stubber.html" rel="nofollow noreferrer">http://botocore.readthedocs.io/en/latest/reference/stubber.html</a></p>
  
  <p>So I have tried to implement the example for rds but the code appears to be behaving like the normal client, even though I have stubbed it. Not sure what's going on or if I am stubbing correctly?</p>
  
  <pre><code>from LambdaRdsStartStop.lambda_function import lambda_handler
  from LambdaRdsStartStop.lambda_function import AWS_REGION
  
  def tests_turn_db_on_when_cw_event_matches_tag_value(self, mock_boto):
      client = boto3.client('rds', AWS_REGION)
      stubber = Stubber(client)
      response = {u'DBInstances': [some copy pasted real data here], extra_info_about_call: extra_info}
      stubber.add_response('describe_db_instances', response, {})
  
      with stubber:
          r = client.describe_db_instances()
          lambda_handler({u'AutoStart': u'10:00:00+10:00/mon'}, 'context')
  </code></pre>
  
  <p>so the mocking WORKS for the first line inside the stubber and the value of r is returned as my stubbed data. When I try and go into my lambda_handler method inside my lambda_function.py and still use the stubbed client it behaves like a normal unstubbed client:</p>
  
  <p>lambda_function.py</p>
  
  <pre><code>def lambda_handler(event, context):
      rds_client = boto3.client('rds', region_name=AWS_REGION)
      rds_instances = rds_client.describe_db_instances()
  </code></pre>
  
  <p>error output:</p>
  
  <pre><code>  File "D:\dev\projects\virtual_envs\rds_sloth\lib\site-packages\botocore\auth.py", line 340, in add_auth
      raise NoCredentialsError
  NoCredentialsError: Unable to locate credentials
  </code></pre>