GET /api/v2/video/1406
HTTP 200 OK Vary: Accept Content-Type: text/html; charset=utf-8 Allow: GET, PUT, PATCH, HEAD, OPTIONS
{ "category": "DjangoCon 2012", "language": "English", "slug": "djangos-nasal-passage", "speakers": [ "Erik Rose" ], "tags": [ "django", "nose", "testing" ], "id": 1406, "state": 1, "title": "Django's Nasal Passage", "summary": "Django's testrunner gets you started quickly, but you soon hit your head on\nits limitations as your project grows. By trading it for nose, a testing\nframework popular in the wider Python community, we can reduce boilerplate,\nboost performance, and improve testing UI, with only a few lines of setting\nchanges. Re-use your test DBs, integrate with Jenkins, split your suite into\npieces, and more.\n\n", "description": " * Why nose?\n * Pain points with standard Django testing\n * Extensibility without writing custom, uncombineable testrunner subclasses\n * Rich ecosystem of helpful plugins\n * django-nose\n * Testing just your apps, not all the random installed stuff\n * Test-selection tricks: running just failed tests, running a module, etc.\n * Killing the boilerplate:\n * No more imports into **init**\n * No more class name collisions and accidental shadowing\n * With all this freedom, how best should you organize your tests?\n * Going 4 times faster with fixture bundling\n * Troubleshooting\n * Fixtures are evil\n * Where do I put the factories?\n * Speeding startup with test DB reuse\n * Writing faster TransactionTestCases with hygienic base classes\n * Background on Django's handling of TransactionTestCases\n * How to improve matters\n * Test-only models: what's the best practice?\n * nose-progressive\n * Dots considered harmful. When will my tests be done?\n * Patience is for the dead. Show me my tracebacks as they happen!\n * My terminal is only this big. Don't waste my space.\n * Hiding pointless stack frames\n * Editor round-tripping for quick debugging\n * Splitting into sub-suites\n * An introduction to the attr plugin\n * Have some run only on CI machines, some constantly, others before checkin\n * Choosing tests with regexes\n * Other fun plugins\n * f7u12, for when your tests get angry\n * Coverage\n * xunit, for your continual integration pleasure\n * Profiling\n\n", "quality_notes": "", "copyright_text": "Creative Commons Attribution license (reuse allowed", "embed": "<object width=\"640\" height=\"390\"><param name=\"movie\" value=\"http://youtube.com/v/NZnnB7l3ZHM?version=3&amp;hl=en_US\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://youtube.com/v/NZnnB7l3ZHM?version=3&amp;hl=en_US\" type=\"application/x-shockwave-flash\" width=\"640\" height=\"390\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed></object>", "thumbnail_url": "http://i.ytimg.com/vi/NZnnB7l3ZHM/hqdefault.jpg", "duration": null, "video_ogv_length": null, "video_ogv_url": null, "video_ogv_download_only": false, "video_mp4_length": null, "video_mp4_url": null, "video_mp4_download_only": false, "video_webm_length": null, "video_webm_url": null, "video_webm_download_only": false, "video_flv_length": null, "video_flv_url": null, "video_flv_download_only": false, "source_url": "http://www.youtube.com/watch?v=NZnnB7l3ZHM", "whiteboard": "needs editing", "recorded": "2012-09-06", "added": "2012-10-08T17:39:52", "updated": "2014-04-08T20:28:26.973" }