Do not perform stock allocation manipulations on non-stock-tracked products (#2567)
* Silently skip stock allocation manipulations if the product class doesn't track stock.
* Make it possible to cancel/consume stock allocations without line args.
You can now do:
consume_stock_allocations(order)
cancel_stock_allocations(order)
without the lines / line_quantities arguments.
Hmmm, this turned out to be a monster commit. This change allows the
basket to be able to correctly calculate prices including tax.
It also requires a whole load of test changes since all baskets now
require a strategy instance to be assigned.
This allows updating code in both places, if necessary. Getting Django
1.5 support would be painful otherwise. This also removes the circular
dependency of django-oscar-testsupport on Oscar.
The requirements were merged. The imports were updated
accordingly. Unused imports in the touched files were removed. No
further changes.