Пример #1
0
 def setUp(self):
     super(DatastoreHooksTest, self).setUp()
     testing_common.SetIsInternalUser('*****@*****.**', True)
     testing_common.SetIsInternalUser('*****@*****.**', False)
     self._AddDataToDatastore()
     datastore_hooks.InstallHooks()
     self.PatchDatastoreHooksRequest()
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
 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)
Пример #5
0
 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)))
Пример #6
0
 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)
Пример #7
0
 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)
Пример #8
0
 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()
Пример #9
0
 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')
Пример #10
0
 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)))
Пример #11
0
    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)
Пример #12
0
 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()
Пример #13
0
 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))
Пример #14
0
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()