changeset 67:8be999c3d066

made smoke test more robust
author Atul Varma <avarma@mozilla.com>
date Tue, 29 Jun 2010 20:26:18 -0700
parents a63f69858b68
children 5c3f592522ea
files tests/test_easy.py
diffstat 1 files changed, 30 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/tests/test_easy.py	Tue Jun 29 16:51:09 2010 -0700
+++ b/tests/test_easy.py	Tue Jun 29 20:26:18 2010 -0700
@@ -4,18 +4,39 @@
 import json
 
 from summitidp.easy import make_wsgi_app
-
-def fake_send_email(*args, **kwargs):
-    pass
+from webtest import TestApp
 
 def test_ensure_easy_does_not_smoke():
-    dirname = tempfile.mkdtemp(prefix="testing")
+    NUM_USERS = 5
+
+    users = ['%d@test.com' % i for i in range(NUM_USERS)]
 
-    f = open(os.path.join(dirname, 'attendees.json'), 'w')
-    f.write(json.dumps(['bob@foo.com']))
+    tempdir = tempfile.mkdtemp(prefix='smoosh')
+    f = open(os.path.join(tempdir, 'attendees.json'), 'w')
+    f.write(json.dumps(users))
     f.close()
 
-    app = make_wsgi_app(dirname, fake_send_email)
-    assert callable(app)
+    tokens = []
+
+    def send_email(email, token):
+        tokens.append(token)
+
+    try:
+        wsgiapp = make_wsgi_app(tempdir, send_email)
+        app = TestApp(wsgiapp)
 
-    shutil.rmtree(dirname)
+        def post_json(url, obj, **kwargs):
+            return app.post(url, json.dumps(obj),
+                            {'Content-Type': 'application/json'},
+                            **kwargs)
+
+        for i in range(NUM_USERS):
+            post_json('/challenge/request', {'email': '%d@test.com' % i})
+            resp = post_json('/challenge/respond', {'token': tokens[-1]})
+            token = resp.json['token']
+            post_json('/profile', {'token': token,
+                                   'contents': {'stuff': 'o' * 1024}})
+        for i in range(5):
+            resp = app.get('/profile?token=%s' % token)
+    finally:
+        shutil.rmtree(tempdir)