test_example.py 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. # -*- coding: utf-8 -*-
  2. # TODO - G.M - [Cleanup] Drop this file
  3. import unittest
  4. import transaction
  5. from pyramid import testing
  6. def dummy_request(dbsession):
  7. return testing.DummyRequest(dbsession=dbsession)
  8. class BaseTest(unittest.TestCase):
  9. def setUp(self):
  10. self.config = testing.setUp(settings={
  11. 'sqlalchemy.url': 'sqlite:///:memory:'
  12. })
  13. self.config.include('tracim.models')
  14. settings = self.config.get_settings()
  15. from tracim.models import (
  16. get_engine,
  17. get_session_factory,
  18. get_tm_session,
  19. )
  20. self.engine = get_engine(settings)
  21. session_factory = get_session_factory(self.engine)
  22. self.session = get_tm_session(session_factory, transaction.manager)
  23. def init_database(self):
  24. from tracim.models.meta import DeclarativeBase
  25. DeclarativeBase.metadata.create_all(self.engine)
  26. def tearDown(self):
  27. from tracim.models.meta import DeclarativeBase
  28. testing.tearDown()
  29. transaction.abort()
  30. DeclarativeBase.metadata.drop_all(self.engine)
  31. class TestMyViewSuccessCondition(BaseTest):
  32. def setUp(self):
  33. super(TestMyViewSuccessCondition, self).setUp()
  34. self.init_database()
  35. from tracim.models import MyModel
  36. model = MyModel(name='one', value=55)
  37. self.session.add(model)
  38. def test_passing_view(self):
  39. from tracim.views.default import my_view
  40. info = my_view(dummy_request(self.session))
  41. self.assertEqual(info['one'].name, 'one')
  42. self.assertEqual(info['project'], 'tracim')
  43. class TestMyViewFailureCondition(BaseTest):
  44. def test_failing_view(self):
  45. from tracim.views.default import my_view
  46. info = my_view(dummy_request(self.session))
  47. self.assertEqual(info.status_int, 500)