/shabti/templates/default/+package+/tests/test_models.py_tmpl

https://bitbucket.org/gawel/shabti · Unknown · 54 lines · 43 code · 11 blank · 0 comment · 0 complexity · d40efe245e40256f0d4c5e4bf38cba03 MD5 · raw file

  1. {{if sqlalchemy}}
  2. # default/tests/test_models
  3. from sqlalchemy.exceptions import IntegrityError
  4. from elixir import *
  5. from {{package}}.tests import *
  6. from {{package}}.model import Session, metadata
  7. class Individual(Entity):
  8. """Table 'Individual'.
  9. used in test_models.py
  10. >>> me = Individual()
  11. """
  12. name = Field(Unicode(20), unique=True)
  13. favorite_color = Field(Unicode(20))
  14. created = Field(DateTime)
  15. active = Field(Boolean)
  16. class TestMyModel(TestModel):
  17. def setUp(self):
  18. TestModel.setUp(self)
  19. def tearDown(self):
  20. TestModel.tearDown(self)
  21. def test_simpleassert(self):
  22. """TestMyModel (default): check entity creation and retrieval"""
  23. einstein = Individual(name = u'einstein')
  24. Session.commit()
  25. ind1 = Session.query(Individual).first()
  26. assert ind1 is einstein
  27. # why this fail ?!
  28. # assert ind1.name == einstein.name == u'einstein'
  29. def test_exception(self):
  30. """TestMyModel (default): check duplicate entity creation is disallowed"""
  31. me = Individual(name = u'giuseppe')
  32. me_again = Individual(name = u'giuseppe')
  33. self.assertRaises(IntegrityError, Session.commit)
  34. Session.rollback()
  35. def test_many(self):
  36. """TestMyModel (default): check creation of many entities"""
  37. from {{package}}.lib.fixtures import lorem_ipsum
  38. for i in xrange(5):
  39. lorem_ipsum(Individual)
  40. Session.commit()
  41. assert len(Session.query(Individual).all()) == 50
  42. # --- Added by Shabti default template
  43. {{endif}}