'Compares two parsed service responses. For ResponseMetadata, it will
only assert that the expected is a proper subset of the actual. This
is useful so that when new keys are added to the metadata, tests don\'t
break.'

def assert_response_with_subset_metadata(self, actual_response, expected_response):

    actual = copy.copy(actual_response)
    expected = copy.copy(expected_response)
    actual_metadata = actual.pop('ResponseMetadata', {})
    expected_metadata = expected.pop('ResponseMetadata', {})
    self.assertEqual(actual, expected)
    self.assert_dict_is_proper_subset(actual_metadata, expected_metadata)
