示例#1
0
  def post(self):
    params = self.request.params
    if not 'domain' in params:
      self.abort(404)

    domain = get_domain_or_404(params['domain'])
    if 'from' in params and 'firstvisit' in params:
      if params['from'] == 'inside' and params['firstvisit'] == 'true':
        # maybe use a transaction for these two independent database
        # operations? maybe not: it doesn't really matter if an entity of
        # UserData could be put while Domain failed or vice versa.
        domain.increment_counter()
        UserData.add(self.request, params['domain'])

    # explicit request to have content-type application/json
    self.response.headers['Content-Type'] = 'application/json'
    self.response.write(domain.get_json())
示例#2
0
  def test_userdata_add(self):
    remote_addr = '127.0.0.1'
    http_user_agent = 'foo agent'
    domain = 'foobar'
    referer = None

    class Request(object): pass
    request = Request()
    request.headers = {'HTTP_USER_AGENT': http_user_agent}
    request.referer = referer
    os.environ['REMOTE_ADDR'] = remote_addr
    UserData.add(request, domain)

    user_data = UserData.query(UserData.domain==domain).get()
    self.assertEqual(user_data.remote_addr, remote_addr)
    self.assertEqual(user_data.http_user_agent, http_user_agent)
    self.assertEqual(user_data.referer, referer)
示例#3
0
    def test_userdata_add(self):
        remote_addr = '127.0.0.1'
        http_user_agent = 'foo agent'
        domain = 'foobar'
        referer = None

        class Request(object):
            pass

        request = Request()
        request.headers = {'HTTP_USER_AGENT': http_user_agent}
        request.referer = referer
        os.environ['REMOTE_ADDR'] = remote_addr
        UserData.add(request, domain)

        user_data = UserData.query(UserData.domain == domain).get()
        self.assertEqual(user_data.remote_addr, remote_addr)
        self.assertEqual(user_data.http_user_agent, http_user_agent)
        self.assertEqual(user_data.referer, referer)