Abstract diff fetching into Source.generate_diff
Fix author test