As to the question "fail to see how version control relates to code/test separation", the original poster asked several questions, one of which was production/testing code separation.
Along with the separation (so while you're testing new functionality, you don't break production files), a properly setup CVS allows you to do this by importing files from a production branch into your testing branch so you can re-use vetted code (production) in your trial code (testing) without affecting what's already out there (inadvertently breaking currently shipping code to customers). -- http://mail.python.org/mailman/listinfo/python-list