Make variable names more consistent.

label_request is ambiguous because it doesn't tell you which of the two phases it is intended for.  Yes, it is implied that it's the first step, but it's still kinda sloppy.
Change the scope of the integration test.

Generate labels for three packages instead of one.
Add more fixture data.

This fixture data now includes labels for three different packages.  Instead of replacing the single package shipment, I think it's going to be useful to have both once I dive into the unit tests.
Define LabelResponse class.

The class doesn't do anything yet.  Originally, I thought that there would be multiple labels returned by the obtain_shipping_labels method.  However, this doesn't conform well to what actually happens.  Although you obtain many labels at once, this counts as a single transaction.  As such, it makes sense to have on LabelResponse that has multiple individual (images) of labels.

The specifics of how this object provides data will be tested at the unit level.  I don't think it is appropriate for the carrier object to perform this mapping.