Error handling: Model-level validations, proper error responses. (added coverage for new instance status call)

This commit is contained in:
Shawn Falkner-Horine 2014-08-25 14:00:35 -07:00
parent 5c46898b17
commit 9938995e05
2 changed files with 11 additions and 0 deletions

View File

@ -219,6 +219,10 @@ class InstanceBackend(object):
if instance.id in instance_ids:
result.append(instance)
# TODO: Trim error message down to specific invalid id.
if instance_ids and len(instance_ids) > len(result):
raise InvalidInstanceIdError(instance_ids)
return result
def get_instance_by_id(self, instance_id):

View File

@ -277,3 +277,10 @@ def test_describe_instance_status_with_instance_filter():
all_status = conn.get_all_instance_status(instance_ids=[instance.id])
len(all_status).should.equal(1)
all_status[0].id.should.equal(instance.id)
# Call get_all_instance_status with a bad id should raise an error
with assert_raises(EC2ResponseError) as cm:
conn.get_all_instance_status(instance_ids=[instance.id, "i-1234abcd"])
cm.exception.code.should.equal('InvalidInstanceID.NotFound')
cm.exception.status.should.equal(400)
cm.exception.request_id.should_not.be.none