test_ffdnispdb.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. from ffdnispdb import create_app, db
  2. from ffdnispdb.models import ISP
  3. from flask import Flask
  4. from flask.ext.sqlalchemy import SQLAlchemy
  5. import unittest
  6. import doctest
  7. import os
  8. class TestCase(unittest.TestCase):
  9. def create_app(self, **kwargs):
  10. test_cfg={
  11. 'TESTING': True,
  12. 'WTF_CSRF_ENABLED': False,
  13. 'SQLALCHEMY_DATABASE_URI': 'sqlite://',
  14. }
  15. test_cfg.update(kwargs)
  16. return create_app(test_cfg)
  17. def setUp(self):
  18. self.app = self.create_app()
  19. self.client = self.app.test_client()
  20. with self.app.app_context():
  21. db.create_all()
  22. self._ctx = self.app.test_request_context()
  23. self._ctx.push()
  24. def tearDown(self):
  25. db.session.remove()
  26. db.drop_all()
  27. self._ctx.pop()
  28. def assertStatus(self, response, status_code):
  29. self.assertEqual(response.status_code, status_code)
  30. class TestForm(TestCase):
  31. def test_index(self):
  32. self.assertStatus(self.client.get('/'), 200)
  33. self.assertStatus(self.client.get('/isp/map_data.json'), 200)
  34. def test_projectform(self):
  35. resp = self.client.post('/isp/create/form', data={
  36. 'tech_email': 'admin@isp.com',
  37. 'name': 'Test',
  38. 'step': '1',
  39. 'covered_areas-0-name': 'Somewhere over the rainbow',
  40. 'covered_areas-0-technologies': 'dsl',
  41. 'covered_areas-0-technologies': 'ftth'
  42. })
  43. self.assertNotEqual(resp.location, None)
  44. self.assertEqual(ISP.query.filter_by(name='Test').count(), 1)
  45. def load_tests(loader, tests, ignore):
  46. from ffdnispdb import views, models, utils, forms, crawler, sessions
  47. tests.addTests(doctest.DocTestSuite(views))
  48. tests.addTests(doctest.DocTestSuite(models))
  49. tests.addTests(doctest.DocTestSuite(utils))
  50. tests.addTests(doctest.DocTestSuite(forms))
  51. tests.addTests(doctest.DocTestSuite(crawler))
  52. return tests
  53. if __name__ == '__main__':
  54. unittest.main()