blob: a84d2228e8a5f65f0156be8fa64eac95b80866ee [file] [log] [blame]
# Copyright 2015 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 json
import unittest
import webapp2
import webtest
from dashboard import post_data_handler
from dashboard import testing_common
_SAMPLE_POINT = {
'master': 'ChromiumPerf',
'bot': 'win7',
'test': 'foo/bar/baz',
'revision': '12345',
'value': '10',
}
class PostDataHandlerTest(testing_common.TestCase):
def setUp(self):
super(PostDataHandlerTest, self).setUp()
app = webapp2.WSGIApplication(
[('/whitelist_test', post_data_handler.PostDataHandler)])
self.testapp = webtest.TestApp(app)
def testPost_NoIPWhitelist_Authorized(self):
self.testapp.post('/whitelist_test', {'data': json.dumps([_SAMPLE_POINT])})
def testPost_IPNotInWhitelist_NotAuthorized(self):
testing_common.SetIpWhitelist(['123.45.67.89', '98.76.54.32'])
self.testapp.post(
'/whitelist_test', {'data': json.dumps([_SAMPLE_POINT])}, status=403,
extra_environ={'REMOTE_ADDR': '22.45.67.89'})
def testPost_IPInWhiteList_Authorized(self):
testing_common.SetIpWhitelist(['123.45.67.89', '98.76.54.32'])
self.testapp.post(
'/whitelist_test', {'data': json.dumps([_SAMPLE_POINT])},
extra_environ={'REMOTE_ADDR': '123.45.67.89'})
if __name__ == '__main__':
unittest.main()