3. Dealing with increasingly complex test scenarios
* Separate code and service/infrastructure testing
* Don't keep all the tests in one `tests.py`
+ * Use sub-module and root `tests.py` files sparingly.
+ * Give Mock (http://python-mok.sourceforge.net/) a try.
+4. Beyond the business logic
+ * Testing 3rd party APIs or cache
+ * These should be tested separately
+ * Better speed of tests if you're not constantly making outbound calls.
+ * Dev env doesn't usually have long-term or complete sets of cached data.
+ * Cache should be agnostic to model changes.
+ * Do object structure comparison when pulling from cache.