Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(173)

Unified Diff: chromium-shortener/new-crbug/app_test.py

Issue 12208137: Add code for www.crbug and new.crbug appengine apps. (Closed) Base URL: https://src.chromium.org/chrome/trunk/tools/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chromium-shortener/new-crbug/app.yaml ('k') | chromium-shortener/new-crbug/redirect.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chromium-shortener/new-crbug/app_test.py
===================================================================
--- chromium-shortener/new-crbug/app_test.py (revision 0)
+++ chromium-shortener/new-crbug/app_test.py (revision 0)
@@ -0,0 +1,100 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import unittest
+
+import redirect as app
+
+
+class GaeTestCase(unittest.TestCase):
+ def setUp(self, *args, **kwargs):
+ self.clear_datastore()
+ super(GaeTestCase, self).setUp(*args, **kwargs)
+
+ @staticmethod
+ def clear_datastore():
+ from google.appengine.api import apiproxy_stub_map, datastore_file_stub
+ from google.appengine.api import memcache
+
+ # See http://code.google.com/p/gaeunit/issues/detail?id=15 for clue.
+ for key in ['datastore', 'datastore_v3']:
+ # W0212: 23,16:GaeTestCase.clear_datastore: Access to a protected member
+ # _APIProxyStubMap__stub_map of a client class
+ # pylint: disable=W0212
+ # E1101: 50,16:GaeTestCase.clear_datastore: Instance of 'APIProxyStubMap'
+ # has no '_APIProxyStubMap__stub_map' member
+ # pylint: disable=E1101
+ if key in apiproxy_stub_map.apiproxy._APIProxyStubMap__stub_map:
+ # W0212: 24,12:GaeTestCase.clear_datastore: Access to a protected
+ # member _APIProxyStubMap__stub_map of a client class
+ # pylint: disable=W0212
+ # E1101: 54,12:GaeTestCase.clear_datastore: Instance of
+ # 'APIProxyStubMap' has no '_APIProxyStubMap__stub_map' member
+ # pylint: disable=E1101
+ del apiproxy_stub_map.apiproxy._APIProxyStubMap__stub_map[key]
+
+ # Use a fresh stub datastore.
+ stub = datastore_file_stub.DatastoreFileStub(
+ app.APP_NAME, '/dev/null', '/dev/null')
+ apiproxy_stub_map.apiproxy.RegisterStub('datastore', stub)
+
+ # Flush memcache.
+ memcache.flush_all()
+
+
+class RedirectTestCase(GaeTestCase):
+ def setUp(self):
+ from google.appengine.ext import testbed
+ self.testbed = testbed.Testbed()
+ self.testbed.activate()
+ self.testbed.init_user_stub()
+
+ def tearDown(self):
+ self.testbed.deactivate()
+
+ def redirect_helper(self, path):
+ from webtest import TestApp
+ testapp = TestApp(app.application)
+ response = testapp.get(path)
+ self.assertEquals('302 Moved Temporarily', response.status)
+ self.assertEquals('', response.body)
+ return response
+
+ def user_helper(self, email, uid):
+ self.testbed.setup_env(
+ USER_EMAIL = email,
+ USER_ID = uid,
+ USER_IS_ADMIN = '0',
+ overwrite = True)
+
+ def test_main_page_redirect_logged_out(self):
+ self.assertEquals(app.users.get_current_user(), None)
+ page = self.redirect_helper('/')
+ self.assertEquals(page.headers['Location'],
+ app.users.create_login_url('http://localhost/'))
+
+ def test_main_page_redirect_logged_in(self):
+ self.user_helper('tester@gmail.com', '123')
+ page = self.redirect_helper('/')
+ self.assertEquals(page.headers['Location'],
+ 'http://code.google.com/p/chromium/issues')
+
+ def test_main_page_redirect_logged_in_chromium(self):
+ self.user_helper('tester@chromium.org', '123')
+ page = self.redirect_helper('/')
+ self.assertEquals(page.headers['Location'],
+ 'http://chromiumbugs.appspot.com')
+
+ def test_dev_page_redirect_logged_out(self):
+ self.user_helper('', '')
+ page = self.redirect_helper('/detailed')
+ self.assertEquals(page.headers['Location'],
+ 'http://code.google.com/p/chromium/issues/entry')
+
+ def test_dev_page_redirect_logged_in(self):
+ self.user_helper('tester@gmail.com', '123')
+ page = self.redirect_helper('/detailed')
+ self.assertEquals(page.headers['Location'],
+ 'http://code.google.com/p/chromium/issues/entry')
« no previous file with comments | « chromium-shortener/new-crbug/app.yaml ('k') | chromium-shortener/new-crbug/redirect.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698