After probing around while writing up integration tests for repo-smith (git-mastery/repo-smith#3), I discovered that you can clone local repositories and treat them as remotes.
I have introduced the test fixture for it in repo-smith, but we can start to introduce it as part of the unit testing suite here to avoid needing to mock API calls, we should be able to directly perform the push/pull/etc behavior with remotes.