using mocks instead of boto instances to avoid breaking tests on new versions of boto