Add unittest for cached_method_with_predicate
Add unittest for cached_method_with_predicate

Code was tested on slash and passed (so logic is good), unfortunately tests were refactored manually to run on TestCase - I didn't run them again.
Infinidat/infi.pyutils