def test_get_entity_string(self):
        request = webapp2.Request.blank(
            '/datastore/edit/%s?next=http://next/' % self.entity1.key())
        response = webapp2.Response()
        handler = datastore_viewer.DatastoreEditRequestHandler(
            request, response)

        handler.render(
            'datastore_edit.html', {
                'fields':
                [('dateprop', 'overflowdatetime',
                  mox.Regex('^<input class="overflowdatetime".*'
                            'value="1152921504606846976".*$')),
                 ('intprop', 'int',
                  mox.Regex('^<input class="int".*value="1".*$')),
                 ('listprop', 'list', mox.Regex(r'\[7L?, 8L?, 9L?\]'))],
                'key':
                str(self.entity1.key()),
                'key_id':
                123,
                'key_name':
                None,
                'kind':
                'Kind1',
                'namespace':
                '',
                'next':
                'http://next/',
                'parent_key':
                None,
                'parent_key_string':
                None
            })

        self.mox.ReplayAll()
        handler.get(str(self.entity1.key()))
        self.mox.VerifyAll()
Esempio n. 2
0
  def setUp(self):
    self.mox = mox.Mox()
    self.testbed = testbed.Testbed()
    self.testbed.activate()
    self.testbed.init_memcache_stub()
    self.testbed.init_app_identity_stub()
    self.testbed.init_urlfetch_stub()
    self.attachment_data = ""

    self._old_gcs_open = cloudstorage.open
    cloudstorage.open = fake.gcs_open

    services = service_manager.Services(
        project=fake.ProjectService(),
        config=fake.ConfigService(),
        issue=fake.IssueService(),
        user=fake.UserService())
    self.project = services.project.TestAddProject('proj')
    self.servlet = issueattachment.AttachmentPage(
        'req', webapp2.Response(), services=services)
    services.user.TestAddUser('*****@*****.**', 111)
    self.issue = fake.MakeTestIssue(
        self.project.project_id, 1, 'summary', 'New', 111)
    services.issue.TestAddIssue(self.issue)
    self.comment = tracker_pb2.IssueComment(
        id=123, issue_id=self.issue.issue_id,
        project_id=self.project.project_id, user_id=111,
        content='this is a comment')
    services.issue.TestAddComment(self.comment, self.issue.local_id)
    self.attachment = tracker_pb2.Attachment(
        attachment_id=54321, filename='hello.txt', filesize=23432,
        mimetype='text/plain', gcs_object_id='/pid/attachments/object_id')
    services.issue.TestAddAttachment(
        self.attachment, self.comment.id, self.issue.issue_id)
    self.orig_sign_attachment_id = attachment_helpers.SignAttachmentID
    attachment_helpers.SignAttachmentID = (
        lambda aid: 'signed_%d' % aid)
    def test_page_request(self):
        for i in range(1000):
            entity = datastore.Entity('Kind1', id=i + 1, _app=self.app_id)
            entity['intprop'] = i
            datastore.Put(entity)

        request = webapp2.Request.blank('/datastore?kind=Kind1&page=3')
        response = webapp2.Response()
        handler = datastore_viewer.DatastoreRequestHandler(request, response)

        admin_request_handler.AdminRequestHandler(handler).get()
        handler.render(
            'datastore_viewer.html',
            {
                'entities':
                mox.IgnoreArg(),  # Tested with _get_entity_template_data.
                'headers':
                mox.IgnoreArg(),  # Tested with _get_entity_template_data.
                'kind': 'Kind1',
                'kinds': ['Kind1'],
                'message': None,
                'namespace': '',
                'num_pages': 50,
                'order': None,
                'order_base_url': '/datastore?kind=Kind1&page=3',
                'page': 3,
                'paging_base_url': '/datastore?kind=Kind1',
                'select_namespace_url':
                '/datastore?kind=Kind1&namespace=&page=3',
                'show_namespace': False,
                'start': 40,
                'total_entities': 1000
            })

        self.mox.ReplayAll()
        handler.get()
        self.mox.VerifyAll()
    def test_get(self):
        queue1 = taskqueue_utils.QueueInfo(
            name='queue1',
            mode=taskqueue_service_pb.TaskQueueMode.PUSH,
            rate='10/s',
            bucket_size=20,
            tasks_in_queue=10,
            oldest_eta_usec=-1)
        queue2 = taskqueue_utils.QueueInfo(
            name='queue1',
            mode=taskqueue_service_pb.TaskQueueMode.PUSH,
            rate='20/s',
            bucket_size=20,
            tasks_in_queue=10,
            oldest_eta_usec=-1)
        queue3 = taskqueue_utils.QueueInfo(
            name='queue1',
            mode=taskqueue_service_pb.TaskQueueMode.PULL,
            rate='20/s',
            bucket_size=20,
            tasks_in_queue=10,
            oldest_eta_usec=-1)

        taskqueue_utils.QueueInfo.get().AndReturn([queue1, queue2, queue3])
        request = webapp2.Request.blank('/taskqueue')
        response = webapp2.Response()

        handler = taskqueue_queues_handler.TaskQueueQueuesHandler(
            request, response)
        handler.render('taskqueue_queues.html', {
            'push_queues': [queue1, queue2],
            'pull_queues': [queue3]
        })

        self.mox.ReplayAll()
        handler.get()
        self.mox.VerifyAll()
Esempio n. 5
0
  def test_namespace_request(self):
    entity = datastore.Entity('Kind1',
                              id=123,
                              _app=self.app_id,
                              _namespace='google')
    entity['intprop'] = 1
    entity['listprop'] = [7, 8, 9]
    datastore.Put(entity)

    request = webapp2.Request.blank(
        '/datastore?kind=Kind1&namespace=google')
    response = webapp2.Response()
    handler = datastore_viewer.DatastoreRequestHandler(request, response)

    admin_request_handler.AdminRequestHandler(handler).get()
    handler.render(
        'datastore_viewer.html',
        {'entities': mox.IgnoreArg(),  # Tested with _get_entity_template_data.
         'headers': mox.IgnoreArg(),  # Tested with _get_entity_template_data.
         'kind': 'Kind1',
         'kinds': ['Kind1'],
         'message': None,
         'namespace': 'google',
         'num_pages': 1,
         'order': None,
         'order_base_url': '/datastore?kind=Kind1&namespace=google',
         'page': 1,
         'paging_base_url': '/datastore?kind=Kind1&namespace=google',
         'select_namespace_url':
         '/datastore?kind=Kind1&namespace=google',
         'show_namespace': True,
         'start': 0,
         'total_entities': 1})

    self.mox.ReplayAll()
    handler.get()
    self.mox.VerifyAll()
Esempio n. 6
0
def lockdown_dispatcher(router, request, response):
    """Override dispatch to provide lockdown support
    """

    username = settings.LOCKDOWN_USERNAME
    password = settings.LOCKDOWN_PASSWORD

    # Don't lock down if the URL matches an exception pattern.
    unlocked_url = False
    for pattern in _default_url_exceptions:
        if pattern.search(request.path):
            unlocked_url = True
            break

    if not unlocked_url and not check_auth(request, username, password):
        msg = 'Could not verify your access level for that URL. ' \
            'You have to login with proper credentials'
        resp = webapp2.Response(msg)
        resp.set_status(401)
        resp.headers['WWW-Authenticate'] = 'Basic realm="Login Required"'
        return resp

    # Dispatch the request using nacelle's regular dispatcher.
    return nacelle_dispatcher(router, request, response)
Esempio n. 7
0
  def test_empty_request_and_empty_datastore(self):
    request = webapp2.Request.blank('/datastore')
    response = webapp2.Response()
    handler = datastore_viewer.DatastoreRequestHandler(request, response)

    handler.render('datastore_viewer.html',
                   {'entities': [],
                    'headers': [],
                    'kind': None,
                    'kinds': [],
                    'message': None,
                    'namespace': '',
                    'num_pages': 0,
                    'order': None,
                    'paging_base_url': '/datastore?',
                    'order_base_url': '/datastore?',
                    'page': 1,
                    'select_namespace_url': '/datastore?namespace=',
                    'show_namespace': False,
                    'start': 0,
                    'total_entities': 0})
    self.mox.ReplayAll()
    handler.get()
    self.mox.VerifyAll()
 def test_post(self):
     self.mox.StubOutWithMock(cron_handler.CronHandler, 'dispatcher')
     request = webapp2.Request.blank('/cron',
                                     POST={
                                         'url': '/url',
                                         'target': 'module_name'
                                     })
     response = webapp2.Response()
     handler = cron_handler.CronHandler(request, response)
     admin_request_handler.AdminRequestHandler(handler).post()
     handler.dispatcher = self.mox.CreateMock(dispatcher.Dispatcher)
     handler.dispatcher.add_request(method='GET',
                                    relative_url='/url',
                                    headers=[('X-AppEngine-Cron', 'true')],
                                    body='',
                                    module_name='module_name',
                                    source_ip='0.1.0.1').AndReturn(
                                        dispatcher.ResponseTuple(
                                            '500 Internal Server Error', [],
                                            ''))
     self.mox.ReplayAll()
     handler.post()
     self.mox.VerifyAll()
     self.assertEqual(500, response.status_int)
Esempio n. 9
0
    def test_write(self):
        var_1 = NoStringOrUnicodeConversion()
        var_2 = StringConversion()
        var_3 = UnicodeConversion()

        rsp = webapp2.Response()
        rsp.write(var_1)
        rsp.write(var_2)
        rsp.write(var_3)
        self.assertEqual(rsp.body, webapp2._to_utf8('%rfoobar' % var_1))

        rsp = webapp2.Response()
        rsp.write(var_1)
        rsp.write(var_3)
        rsp.write(var_2)
        self.assertEqual(rsp.body, webapp2._to_utf8('%rbarfoo' % var_1))

        rsp = webapp2.Response()
        rsp.write(var_2)
        rsp.write(var_1)
        rsp.write(var_3)
        self.assertEqual(rsp.body, webapp2._to_utf8('foo%rbar' % var_1))

        rsp = webapp2.Response()
        rsp.write(var_2)
        rsp.write(var_3)
        rsp.write(var_1)
        self.assertEqual(rsp.body, webapp2._to_utf8('foobar%r' % var_1))

        rsp = webapp2.Response()
        rsp.write(var_3)
        rsp.write(var_1)
        rsp.write(var_2)
        self.assertEqual(rsp.body, webapp2._to_utf8('bar%rfoo' % var_1))

        rsp = webapp2.Response()
        rsp.write(var_3)
        rsp.write(var_2)
        rsp.write(var_1)
        self.assertEqual(rsp.body, webapp2._to_utf8('barfoo%r' % var_1))
Esempio n. 10
0
    def test_cookie_unicode(self):
        import urllib
        import base64

        # With base64 ---------------------------------------------------------

        value = base64.b64encode(u'á'.encode('utf-8'))
        rsp = webapp2.Response()
        rsp.set_cookie('foo', value)

        cookie = rsp.headers.get('Set-Cookie')
        req = webapp2.Request.blank('/', headers=[('Cookie', cookie)])

        self.assertEqual(req.cookies.get('foo'), value)
        self.assertEqual(
            base64.b64decode(req.cookies.get('foo')).decode('utf-8'), u'á')

        # Without quote -------------------------------------------------------

        # Most recent WebOb versions take care of quoting.
        # (not the version available on App Engine though)

        value = u'föö=bär; föo, bär, bäz=dïng;'
        rsp = webapp2.Response()
        rsp.set_cookie('foo', value)

        cookie = rsp.headers.get('Set-Cookie')
        req = webapp2.Request.blank('/', headers=[('Cookie', cookie)])

        self.assertEqual(req.cookies.get('foo'), value)

        # With quote, hard way ------------------------------------------------

        # Here is our test value.
        x = u'föö'
        # We must store cookies quoted. To quote unicode, we need to encode it.
        y = urllib.quote(x.encode('utf8'))
        # The encoded, quoted string looks ugly.
        self.assertEqual(y, 'f%C3%B6%C3%B6')
        # But it is easy to get it back to our initial value.
        z = urllib.unquote(y).decode('utf8')
        # And it is indeed the same value.
        self.assertEqual(z, x)

        # Set a cookie using the encoded/quoted value.
        rsp = webapp2.Response()
        rsp.set_cookie('foo', y)
        cookie = rsp.headers.get('Set-Cookie')
        self.assertEqual(cookie, 'foo=f%C3%B6%C3%B6; Path=/')

        # Get the cookie back.
        req = webapp2.Request.blank('/', headers=[('Cookie', cookie)])
        self.assertEqual(req.cookies.get('foo'), y)
        # Here is our original value, again. Problem: the value is decoded
        # before we had a chance to unquote it.
        w = urllib.unquote(
            req.cookies.get('foo').encode('utf8')).decode('utf8')
        # And it is indeed the same value.
        self.assertEqual(w, x)

        # With quote, easy way ------------------------------------------------

        value = u'föö=bär; föo, bär, bäz=dïng;'
        quoted_value = urllib.quote(value.encode('utf8'))
        rsp = webapp2.Response()
        rsp.set_cookie('foo', quoted_value)

        cookie = rsp.headers.get('Set-Cookie')
        req = webapp2.Request.blank('/', headers=[('Cookie', cookie)])

        cookie_value = req.str_cookies.get('foo')
        unquoted_cookie_value = urllib.unquote(cookie_value).decode('utf-8')
        self.assertEqual(cookie_value, quoted_value)
        self.assertEqual(unquoted_cookie_value, value)
Esempio n. 11
0
 def get(self):
     ret = webapp2.Response()
     ret.set_status(200)
     return ret
Esempio n. 12
0
def requestInitialize(handler, url):
    request_vars = webapp2.Request.blank(url)
    handler.initialize(request_vars, webapp2.Response())
    setattr(handler, "is_initialized", True)
Esempio n. 13
0
def handle_exception(request, response, exception):
    return webapp2.Response(body="Hello, custom response world!")
Esempio n. 14
0
def textres(content, **kwargs):
    headers = {}
    if "type" in kwargs:
        headers['Content-Type'] = kwargs["type"]
    return webapp2.Response(content, headers=headers)
Esempio n. 15
0
 def get(self):
   client = SheriffConfigClient()
   ok, err_msg = client.Update()
   if not ok:
     return webapp2.Response('FAILED: %s' % err_msg)
   return webapp2.Response('OK')
Esempio n. 16
0
    def test_uri_for(self):
        class Handler(webapp2.RequestHandler):
            def get(self, *args, **kwargs):
                pass

        req = webapp2.Request.blank('http://localhost:80/')
        req.route = webapp2.Route('')
        req.route_args = tuple()
        req.route_kwargs = {}
        req.app = app
        app.set_globals(app=app, request=req)
        handler = Handler(req, webapp2.Response())
        handler.app = app

        for func in (handler.uri_for, ):
            self.assertEqual(func('home'), '/')
            self.assertEqual(func('home', foo='bar'), '/?foo=bar')
            self.assertEqual(func('home', _fragment='my-anchor', foo='bar'),
                             '/?foo=bar#my-anchor')
            self.assertEqual(func('home', _fragment='my-anchor'),
                             '/#my-anchor')
            self.assertEqual(func('home', _full=True), 'http://localhost:80/')
            self.assertEqual(func('home', _full=True, _fragment='my-anchor'),
                             'http://localhost:80/#my-anchor')
            self.assertEqual(func('home', _scheme='https'),
                             'https://localhost:80/')
            self.assertEqual(func('home', _scheme='https', _full=False),
                             'https://localhost:80/')
            self.assertEqual(
                func('home', _scheme='https', _fragment='my-anchor'),
                'https://localhost:80/#my-anchor')

            self.assertEqual(func('methods'), '/methods')
            self.assertEqual(func('methods', foo='bar'), '/methods?foo=bar')
            self.assertEqual(func('methods', _fragment='my-anchor', foo='bar'),
                             '/methods?foo=bar#my-anchor')
            self.assertEqual(func('methods', _fragment='my-anchor'),
                             '/methods#my-anchor')
            self.assertEqual(func('methods', _full=True),
                             'http://localhost:80/methods')
            self.assertEqual(
                func('methods', _full=True, _fragment='my-anchor'),
                'http://localhost:80/methods#my-anchor')
            self.assertEqual(func('methods', _scheme='https'),
                             'https://localhost:80/methods')
            self.assertEqual(func('methods', _scheme='https', _full=False),
                             'https://localhost:80/methods')
            self.assertEqual(
                func('methods', _scheme='https', _fragment='my-anchor'),
                'https://localhost:80/methods#my-anchor')

            self.assertEqual(
                func('route-test', year='2010', month='07', name='test'),
                '/2010/07/test')
            self.assertEqual(
                func('route-test',
                     year='2010',
                     month='07',
                     name='test',
                     foo='bar'), '/2010/07/test?foo=bar')
            self.assertEqual(
                func('route-test',
                     _fragment='my-anchor',
                     year='2010',
                     month='07',
                     name='test',
                     foo='bar'), '/2010/07/test?foo=bar#my-anchor')
            self.assertEqual(
                func('route-test',
                     _fragment='my-anchor',
                     year='2010',
                     month='07',
                     name='test'), '/2010/07/test#my-anchor')
            self.assertEqual(
                func('route-test',
                     _full=True,
                     year='2010',
                     month='07',
                     name='test'), 'http://localhost:80/2010/07/test')
            self.assertEqual(
                func('route-test',
                     _full=True,
                     _fragment='my-anchor',
                     year='2010',
                     month='07',
                     name='test'),
                'http://localhost:80/2010/07/test#my-anchor')
            self.assertEqual(
                func('route-test',
                     _scheme='https',
                     year='2010',
                     month='07',
                     name='test'), 'https://localhost:80/2010/07/test')
            self.assertEqual(
                func('route-test',
                     _scheme='https',
                     _full=False,
                     year='2010',
                     month='07',
                     name='test'), 'https://localhost:80/2010/07/test')
            self.assertEqual(
                func('route-test',
                     _scheme='https',
                     _fragment='my-anchor',
                     year='2010',
                     month='07',
                     name='test'),
                'https://localhost:80/2010/07/test#my-anchor')
Esempio n. 17
0
    def test_flashes(self):

        # Round 1 -------------------------------------------------------------

        req = webapp2.Request.blank("/")
        req.app = app
        store = sessions.SessionStore(req)

        session = store.get_session(factory=self.factory)
        flashes = session.get_flashes()
        self.assertEqual(flashes, [])
        session.add_flash("foo")

        rsp = webapp2.Response()
        store.save_sessions(rsp)

        # Round 2 -------------------------------------------------------------

        cookies = rsp.headers.get("Set-Cookie")
        req = webapp2.Request.blank("/", headers=[("Cookie", cookies)])
        req.app = app
        store = sessions.SessionStore(req)

        session = store.get_session(factory=self.factory)

        flashes = session.get_flashes()
        self.assertEqual(flashes, [["foo", None]])

        flashes = session.get_flashes()
        self.assertEqual(flashes, [])

        session.add_flash("bar")
        session.add_flash("baz", "important")

        rsp = webapp2.Response()
        store.save_sessions(rsp)

        # Round 3 -------------------------------------------------------------

        cookies = rsp.headers.get("Set-Cookie")
        req = webapp2.Request.blank("/", headers=[("Cookie", cookies)])
        req.app = app
        store = sessions.SessionStore(req)

        session = store.get_session(factory=self.factory)

        flashes = session.get_flashes()
        self.assertEqual(flashes, [["bar", None], ["baz", "important"]])

        flashes = session.get_flashes()
        self.assertEqual(flashes, [])

        rsp = webapp2.Response()
        store.save_sessions(rsp)

        # Round 4 -------------------------------------------------------------

        cookies = rsp.headers.get("Set-Cookie")
        req = webapp2.Request.blank("/", headers=[("Cookie", cookies)])
        req.app = app
        store = sessions.SessionStore(req)

        session = store.get_session(factory=self.factory)
        flashes = session.get_flashes()
        self.assertEqual(flashes, [])
Esempio n. 18
0
 def myfunction(request, *args, **kwargs):
     return webapp2.Response('Hello, custom response world!')
Esempio n. 19
0
    def response_ok_raw(self, message):
        response = webapp2.Response(message)
        response.set_status(self.HTTP_OK)

        return response
Esempio n. 20
0
 def set_headers():
     rsp = webapp2.Response()
     rsp.headers = 'foo'
     return rsp.headers
Esempio n. 21
0
 def myhandler(request, *args, **kwargs):
     return webapp2.Response('hello')
Esempio n. 22
0
 def setUp(self):
     super(SubNotifyTest, self).setUp()
     self.handler = swarming.SubNotify(response=webapp2.Response())
Esempio n. 23
0
def hello(request):
	users=user.query().fetch()
	return webapp2.Response(template.render("index.html", {"user":users}))
Esempio n. 24
0
 def my_view(request, *args, **kwargs):
     return webapp2.Response('Hello, function world!')
Esempio n. 25
0
def signup(request):
	return webapp2.Response(template.render("signup.html", None))
Esempio n. 26
0
 def other_view(request, *args, **kwargs):
     return webapp2.Response('Hello again, function world!')
Esempio n. 27
0
 def setUp(self):
     request = webapp2.Request.blank('/settings')
     response = webapp2.Response()
     self.handler = users.SettingsHandler(request, response)
Esempio n. 28
0
 def one_more_view(request, *args, **kwargs):
     self.assertEqual(args, ())
     self.assertEqual(kwargs, {'foo': 'bar'})
     return webapp2.Response('Hello you too!')
Esempio n. 29
0
def jsonres(content):
    return webapp2.Response(json.dumps(content))
Esempio n. 30
0
    def response_ok(self, data={}):
        response = webapp2.Response(json.dumps(data))
        response.set_status(self.HTTP_OK)

        return response