aboutsummaryrefslogtreecommitdiff
path: root/budget
diff options
context:
space:
mode:
authorAlexis Metaireau <alexis@notmyidea.org>2011-08-09 19:22:09 +0200
committerAlexis Metaireau <alexis@notmyidea.org>2011-08-09 23:49:44 +0200
commit78914962ed73d33e5291467081010cce2fa2ecfd (patch)
tree12e80faaf473bf0417af41b2da1dd9a3d261adb3 /budget
parent4b08af56f8c1e6bb25365a5bc691c5bdf3156458 (diff)
downloadihatemoney-mirror-78914962ed73d33e5291467081010cce2fa2ecfd.zip
ihatemoney-mirror-78914962ed73d33e5291467081010cce2fa2ecfd.tar.gz
ihatemoney-mirror-78914962ed73d33e5291467081010cce2fa2ecfd.tar.bz2
Add tests about sending notifications. #7
Diffstat (limited to 'budget')
-rw-r--r--budget/tests.py64
-rw-r--r--budget/web.py2
2 files changed, 65 insertions, 1 deletions
diff --git a/budget/tests.py b/budget/tests.py
new file mode 100644
index 0000000..6e365bd
--- /dev/null
+++ b/budget/tests.py
@@ -0,0 +1,64 @@
+import os
+import tempfile
+import unittest
+
+from flask import g
+
+import web
+import models
+
+class BudgetTestCase(unittest.TestCase):
+
+ def test_notifications(self):
+ """Test that the notifications are sent, and that email adresses
+ are checked properly.
+ """
+ # create a project
+ self.create_project("raclette")
+
+ with web.app.test_client() as c:
+ self.login("raclette", test_client=c)
+ result = c.post("/raclette/invite",
+ data={"emails": 'test@test.com'})
+ # check here that the mails are sent.
+
+
+ def login(self, project, password=None, test_client=None):
+ password = password or project
+ test_client = test_client or self.app
+
+ return test_client.post('/authenticate', data=dict(
+ id=project, password=password), follow_redirects=True)
+
+ def create_project(self, name):
+ """Create a fake project"""
+ # create the project
+ project = models.Project(id=name, name=unicode(name), password=name,
+ contact_email="%s@notmyidea.org" % name)
+ models.db.session.add(project)
+ models.db.session.commit()
+
+ return project
+
+ def setUp(self):
+ web.app.config['TESTING'] = True
+
+ self.fd, self.fp = tempfile.mkstemp()
+ web.app.config['SQLALCHEMY_DATABASE_URI'] = "sqlite:///%s" % self.fp
+ web.app.config['CSRF_ENABLED'] = False # simplify the tests
+ self.app = web.app.test_client()
+
+ models.db.init_app(web.app)
+ web.mail.init_app(web.app)
+
+ models.db.app = web.app
+ models.db.create_all()
+
+ def tearDown(self):
+ # clean after testing
+ os.close(self.fd)
+ os.unlink(self.fp)
+
+
+if __name__ == "__main__":
+ unittest.main()
diff --git a/budget/web.py b/budget/web.py
index 049fae9..36a198d 100644
--- a/budget/web.py
+++ b/budget/web.py
@@ -11,6 +11,7 @@ from utils import get_billform_for, requires_auth
# create the application, initialize stuff
app = Flask(__name__)
+app.config.from_object("default_settings")
mail = Mail()
@app.route("/")
@@ -200,7 +201,6 @@ def debug():
def main():
- app.config.from_object("default_settings")
# db
db.init_app(app)
db.app = app