While i don't have an answer to the exact question regarding client
and server code synchronization, I thought I'd give my two cents for
what it's worth. If it's not helpful, then please forgive the
Unless there's some specific need to exercise the server code by
making full-fledged HTTP requests against it, you could rewrite your
unit tests to call your own server code directly, and use a mocking
framework like Michael Foord's Mock
(http://www.voidspace.org.uk/python/mock/) or pymox
(http://code.google.com/p/pymox/) to mock away other services and
library calls that would normally only make sense at runtime. This
should encourage individual unit tests that are smaller, more
numerous, more granular, and more highly focused on testing your own
production code. Also easier to maintain, less brittle, yadda, yadda.
Client-side testing could be moved into its own projects (perhaps
using Selenium, jsTestDriver, etc.), completely independent of the web
application and CherryPy. Together with your server-side unit tests
and confidence in CherryPy's own unit tests, you'd have complete code
coverage, with one-to-one coupling of unit test projects to production
components, which should make the whole system very flexible.
Just food for thought.