Created
March 12, 2011 23:24
-
-
Save didip/867684 to your computer and use it in GitHub Desktop.
Example on how to tests your model classes in Tornado
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import unittest, os, os.path, sys | |
import tornado.database | |
import tornado.options | |
from tornado.options import options | |
APP_ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..')) | |
sys.path.append(os.path.join(APP_ROOT, '..')) | |
# import your model module | |
import your.model as model | |
# import your app module | |
from your.app import * | |
# convenience method to clear test database | |
# In this example, we simple reapply APP_ROOT/db/schema.sql to test database | |
def clear_db(app=None): | |
os.system("mysql %s < %s" % (options.mysql_database, os.path.join(APP_ROOT, 'db', 'schema.sql'))) | |
# Global App for testing | |
tornado.options.parse_config_file(os.path.join(APP_ROOT, 'config', 'test.py')) | |
app = Application() | |
# In this example, we have a model called Link and we want to test it. | |
class TestLink(unittest.TestCase): | |
def setUp(self): | |
clear_db() | |
self.bucket = app.bucket | |
self.link = app.link | |
# Testing INSERT | |
def save_to_test(self): | |
sha = 'lol' | |
self.link.save_to(sha, "http://cooln.es") | |
self.assertEqual(len(self.link.all_by_sha(sha)), 1) | |
# testing SELECT | |
def all_by_sha_test(self): | |
sha = 'lol' | |
link_id = self.link.save_to(sha, "http://cooln.es") | |
self.assertTrue(link_id is not None) | |
link_id = self.link.save_to(sha, "http://tornadoweb.org") | |
self.assertTrue(link_id is not None) | |
self.assertEqual(len(self.link.all_by_sha(sha)), 2) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment