def setUp(self): super(DatastoreHooksTest, self).setUp() testing_common.SetIsInternalUser('*****@*****.**', True) testing_common.SetIsInternalUser('*****@*****.**', False) self._AddDataToDatastore() datastore_hooks.InstallHooks() self.PatchDatastoreHooksRequest()
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.addCleanup(self.testbed.deactivate) self.testbed.init_datastore_v3_stub() self.testbed.init_mail_stub() self.testbed.init_memcache_stub() self.testbed.init_taskqueue_stub(root_path=_QUEUE_YAML_DIR) self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() ndb.get_context().clear_cache() self.mail_stub = self.testbed.get_stub(testbed.MAIL_SERVICE_NAME) self.mock_get_request = None self._PatchIsInternalUser() self._PatchIsAdministrator() datastore_hooks.InstallHooks() SetIsInternalUser(INTERNAL_USER, True) SetIsInternalUser(EXTERNAL_USER, False) self.testapp = None self.logger = logging.getLogger() self.logger.level = logging.DEBUG self.stream_handler = logging.StreamHandler(sys.stdout) self.logger.addHandler(self.stream_handler) self.addCleanup(self.logger.removeHandler, self.stream_handler)
def testPost_TestPath_ReturnsInternalData(self, mock_oauth, mock_utils): mock_oauth.get_current_user.return_value = GOOGLER_USER mock_oauth.get_client_id.return_value = ( api_auth.OAUTH_CLIENT_ID_WHITELIST[0]) mock_utils.return_value = True self._AddData() datastore_hooks.InstallHooks() test = utils.TestKey('ChromiumPerf/linux/page_cycler/warm/cnn').get() test.internal_only = True test.put() response = self.testapp.post( '/api/timeseries/ChromiumPerf/linux/page_cycler/warm/cnn') data = self.GetJsonValue(response, 'timeseries') self.assertEquals(10, len(data)) self.assertEquals( ['revision', 'value', 'timestamp', 'r_not_every_row', 'r_v8'], data[0]) self.assertEquals(100, data[1][0]) self.assertEquals(900, data[9][0]) self.assertEquals('1234a', data[1][4]) improvement_direction = self.GetJsonValue(response, 'improvement_direction') self.assertEquals(improvement_direction, anomaly.UP)
def testGet_WithNonInternalUserAndWhitelistedIP(self): self._AddMockInternalData() self.UnsetCurrentUser() datastore_hooks.InstallHooks() testing_common.SetIpWhitelist(['123.45.67.89']) query = '/graph_csv?test_path=ChromiumPerf/win7/dromaeo/dom&num_points=3' expected = [['revision', 'value']] self._CheckGet(query, expected, status=500)
def testGet_InternalTestDataUnauthorized_DoesntShowData(self): """Tests a query for internal data for an unauthorized user.""" self._AddInternalSampleData() self.UnsetCurrentUser() datastore_hooks.InstallHooks() response = self.testapp.get('/new_points') # Only the header row is listed, not any others rows. self.assertEqual(1, len(re.findall(r'<tr>', response.body)))
def setUp(self): super(ListTestsTest, self).setUp() app = webapp2.WSGIApplication([('/list_tests', list_tests.ListTestsHandler)]) self.testapp = webtest.TestApp(app) datastore_hooks.InstallHooks() self.UnsetCurrentUser() testing_common.SetIsInternalUser('*****@*****.**', True) testing_common.SetIsInternalUser('*****@*****.**', False)
def testPost_InternalListPageToExternalUser(self): self._AddTableConfigDataStore('BestTable', True) self._AddTableConfigDataStore('SecondBestTable', True) self._AddTableConfigDataStore('ThirdBestTable', False) self.UnsetCurrentUser() datastore_hooks.InstallHooks() response = self.testapp.post('/speed_releasing/') self.assertIn('"show_list": true', response) self.assertIn('"list": ["ThirdBestTable"]', response)
def setUp(self): super(ListTestSuitesTest, self).setUp() app = webapp2.WSGIApplication( [('/update_test_suites', update_test_suites.UpdateTestSuitesHandler)]) self.testapp = webtest.TestApp(app) datastore_hooks.InstallHooks() testing_common.SetIsInternalUser('*****@*****.**', True) self.UnsetCurrentUser()
def testGet_WhitelistedIPOnly(self): self.PatchDatastoreHooksRequest('123.45.67.89') self._AddMockInternalData() self.UnsetCurrentUser() datastore_hooks.InstallHooks() testing_common.SetIpWhitelist(['123.45.67.89']) query = '/graph_csv?test_path=ChromiumPerf/win7/dromaeo/dom&num_points=3' expected = [['revision', 'value'], ['47', '94.0'], ['48', '96.0'], ['49', '98.0']] self._CheckGet(query, expected, whitelisted_ip='123.45.67.89')
def testGet_InternalTestDataAuthorized_ShowsData(self): """Tests a query for internal data when the user should be authorized.""" self._AddInternalSampleData() # The user doesn't need to be authorized as admin to view internal data, # they only need to have an internal email address. self.SetCurrentUser('*****@*****.**') datastore_hooks.InstallHooks() response = self.testapp.get('/new_points') # 50 rows for xtest, 1 for the header. self.assertEqual(51, len(re.findall(r'<tr>', response.body)))
def testPost_ExternalUserInternalData_500Error(self, mock_oauth): mock_oauth.get_current_user.return_value = NON_GOOGLE_USER mock_oauth.get_client_id.return_value = ( api_auth.OAUTH_CLIENT_ID_WHITELIST[0]) self._AddData() datastore_hooks.InstallHooks() test = utils.TestKey('ChromiumPerf/linux/page_cycler/warm/cnn').get() test.internal_only = True test.put() self.testapp.post( '/api/timeseries/ChromiumPerf/linux/page_cycler/warm/cnn', status=500)
def setUp(self): self.testbed = testbed.Testbed() self.testbed.activate() self.testbed.init_datastore_v3_stub() self.testbed.init_mail_stub() self.mail_stub = self.testbed.get_stub(testbed.MAIL_SERVICE_NAME) self.testbed.init_memcache_stub() ndb.get_context().clear_cache() self.testbed.init_taskqueue_stub(root_path=_QUEUE_YAML_DIR) self.testbed.init_user_stub() self.testbed.init_urlfetch_stub() self.mock_get_request = None self._PatchIsInternalUser() datastore_hooks.InstallHooks()
def testPost_WithBugIdParameterExternalUser_ExternaData( self, mock_oauth, mock_utils): mock_oauth.get_current_user.return_value = NON_GOOGLE_USER mock_oauth.get_client_id.return_value = ( api_auth.OAUTH_CLIENT_ID_WHITELIST[0]) mock_utils.return_value = False datastore_hooks.InstallHooks() sheriff_key = self._AddSheriff() test_keys = self._AddTests() bug_data.Bug(id=123).put() self._AddAnomalyEntities([(200, 300), (100, 200), (400, 500)], test_keys[0], sheriff_key, bug_id=123, internal_only=True) self._AddAnomalyEntities([(150, 250)], test_keys[0], sheriff_key, bug_id=123) response = self.testapp.post('/api/alerts/bug_id/123') anomalies = self.GetJsonValue(response, 'anomalies') self.assertEqual(1, len(anomalies))
def webapp_add_wsgi_middleware(app): from google.appengine.ext.appstats import recording app = recording.appstats_wsgi_middleware(app) return app # pylint: enable=invalid-name def _AddThirdPartyLibraries(): """Registers the third party libraries with App Engine. In order for third-party libraries to be available in the App Engine runtime environment, they must be added with vendor.add. The directories added this way must be inside the App Engine project directory. """ # The deploy script is expected to add links to third party libraries # before deploying. If the directories aren't there (e.g. when running tests) # then just ignore it. for library_dir in dashboard.THIRD_PARTY_LIBRARIES: if os.path.exists(library_dir): vendor.add(os.path.join(os.path.dirname(__file__), library_dir)) _AddThirdPartyLibraries() # This is at the bottom because datastore_hooks may depend on third_party # modules. from dashboard.common import datastore_hooks datastore_hooks.InstallHooks()