ImportError: No module named google.appengine.api
The SDK installs outside of Python shared modules and obviously has no idea about any virtualenv that you've set up in your project directory. The way I have my project set up is:
+ root + src +- app.yaml + [linked pip installed packages] + [module] +- tests.py + env +- [virtualenv]
Adding GAE package directories to a gae.pth file in [virtualenv]/lib/site-packages did the trick for me and I was able to run unit tests without jumping through nose plugin or custom test runner hoops:
gae.pth:
/path/to/google_appengine /path/to/google_appengine/lib/yaml/lib /path/to/google_appengine/lib/fancy_urllib
Of course, this list will grow as you add tests that depend on more SDK modules.
Following Google's local unit testing documentation (service stubs, etc.) got everything else set up just fine for me.
Admittedly, I'm running on Windows 7 and not my OS of choice. However, the solution should translate just fine to a Linux/Mac machine as well.