Пример #1
0
 def testSerializeNone(self):
   """Test Serialize()."""
   self.assertEqual(
       'null',
       util.Serialize(None, _use_json=True, _use_pickle=False))
   self.assertEqual(
       util.pickle.dumps(None),
       util.Serialize(None, _use_json=False, _use_pickle=True))
Пример #2
0
  def testSerializeControlChars(self):
    """Test Serialize()."""
    input = []
    output = []

    for x in xrange(0, 31):
      input.append(chr(x))
      if x == 8:
        output.append('\\b')
      elif x == 9:
        output.append('\\t')
      elif x == 10:
        output.append('\\n')
      elif x == 12:
        output.append('\\f')
      elif x == 13:
        output.append('\\r')
      else:
        output.append('\\u%04x' % x)

    input_str = ''.join(input)
    output_str = '"%s"' % ''.join(output)

    serialized = util.Serialize(input_str)
    self.assertEqual(
        output_str,
        serialized,
        '%s != %s' % (self._DumpStr(output_str), self._DumpStr(serialized)))
Пример #3
0
  def testSerializeUnicode(self):
    """Test Serialize()."""
    ustr = u'Hello there\u2014'
    ustr_js = '"Hello there\\u2014"'

    # javascript uses the same notation as python to represent unicode
    # characters.
    self.assertEqual(ustr_js, util.Serialize(ustr))
Пример #4
0
 def Serialize(self):
     """Returns a serialized string representation of the entity instance."""
     d = {}
     for p in self.properties():
         d[p] = getattr(self, p)
         if p in ['mtime', 'user']:
             d[p] = str(d[p])
     return util.Serialize(d)
Пример #5
0
  def testGet(self, render_mock, _):
    data = {'192.168.1.1': 'zerocool'}
    models.KeyValueCache.MemcacheWrappedSet(
        'client_exit_ip_blocks', 'text_value', util.Serialize(data))

    self.testapp.get('/admin/ip_blacklist', status=httplib.OK)

    args = test.GetArgFromCallHistory(render_mock, arg_index=1)
    self.assertEquals(data.items(), args['list'])
Пример #6
0
    def SetSerializedItem(cls, key, value):
        """Serializes a value and caches it to an entity with a given key.

    Args:
      key: str, key_name for the ReportsCache entity.
      value: any, a value of any kind to serialize and cache.
    """
        value = util.Serialize(value)
        cls.MemcacheWrappedSet(key, 'blob_value', value)
Пример #7
0
    def testSerializeJson(self):
        """Test Serialize()."""
        self.mox.StubOutWithMock(util.json, 'dumps')

        util.json.dumps('object1').AndReturn('serial1')
        util.json.dumps('object2').AndRaise(TypeError)

        self.mox.ReplayAll()
        self.assertEqual('serial1', util.Serialize('object1'))
        self.assertRaises(util.SerializeError, util.Serialize, 'object2')
        self.mox.VerifyAll()
Пример #8
0
    def _SetUserSettings(self, data):
        """Sets the user settings dictionary.

    Args:
      data: dictionary data to set to the user_settings, or None.
    """
        if not data:
            self.user_settings_exist = False
            self._user_settings = None
        else:
            self._user_settings = util.Serialize(data)
            self.user_settings_exist = True
Пример #9
0
    def testSerializeFloat(self):
        """Test Serialize()."""

        # expected behavior: we can only guarentee this level of precision
        # in the unit test because of rounding errors.
        #
        # GAE's float is capable of 10 digits of precision, and a stock
        # python2.6 reports 15 digits from sys.float_info.

        input = {'foo': 103.2261}
        output = '{"foo": 103.2261}'

        self.assertEqual(output, util.Serialize(input))
Пример #10
0
    def testSerializePickle(self):
        """Test Serialize()."""
        self.mox.StubOutWithMock(util.pickle, 'dumps')

        util.pickle.dumps('object1').AndReturn('serial1')
        util.pickle.dumps('object2').AndRaise(util.pickle.PicklingError)

        self.mox.ReplayAll()
        self.assertEqual(
            'serial1',
            util.Serialize('object1', _use_json=False, _use_pickle=True))
        self.assertRaises(util.SerializeError,
                          util.Serialize,
                          'object2',
                          _use_json=False,
                          _use_pickle=True)
        self.mox.VerifyAll()
Пример #11
0
    def SetSerializedItem(cls, key, value):
        """Serializes a value and caches it to an entity with a given key.

    Args:
      key: str, key_name for the ReportsCache entity.
      value: any, a value of any kind to serialize and cache.
    """
        value = util.Serialize(value)
        i = 0
        while value:
            shard = value[:_MEMCACHE_ENTITY_SIZE_LIMIT]
            if i == 0:
                cls.MemcacheWrappedSet(key, 'blob_value', shard)
            else:
                cls.MemcacheWrappedSet('%s_shard_%s' % (key, i), 'blob_value',
                                       shard)
            i += 1
            value = value[_MEMCACHE_ENTITY_SIZE_LIMIT:]
Пример #12
0
 def post(self):
   """POST handler."""
   if not self.IsAdminUser():
     self.error(httplib.FORBIDDEN)
     return
   values = self.request.get_all('item_0', None)
   comments = self.request.get_all('item_1', None)
   if values and (not comments or len(values) != len(comments)):
     self.error(httplib.BAD_REQUEST)
     return
   is_ip = re.compile(IP_REGEX)
   if not all(map(is_ip.match, values)):
     self.error(httplib.BAD_REQUEST)
     self.response.out.write('Malformed IP')
     return
   ips = dict(zip(values, comments))
   models.KeyValueCache.MemcacheWrappedSet('client_exit_ip_blocks',
                                           'text_value',
                                           util.Serialize(ips))
   self.redirect('/admin/ip_blacklist?msg=IPs%20saved')
Пример #13
0
    def post(self, group=None):
        """POST handler."""
        if not self.IsAdminUser():
            self.error(httplib.FORBIDDEN)
            return

        if group:
            values = self.request.get_all('item_0', None)
            members = []
            is_email = re.compile(MAIL_REGEX)
            for member in values:
                if is_email.match(member):
                    members.append(member)
                else:
                    self.error(httplib.BAD_REQUEST)
                    self.response.out.write('malformed email')
                    return
            models.KeyValueCache.MemcacheWrappedSet(group, 'text_value',
                                                    util.Serialize(members))
            self.redirect('/admin/acl_groups?msg=Group%20saved')
Пример #14
0
 def testSerializeNone(self):
   """Test Serialize()."""
   self.assertEqual('null', util.Serialize(None))
Пример #15
0
 def get_value_for_datastore(self, model_instance):
     """Sends a serialized representation of self._obj to Datastore."""
     if self._obj is None:
         return None
     else:
         return db.Text(util.Serialize(self._obj))
Пример #16
0
 def testSerializeJson(self):
     """Test Serialize()."""
     with mock.patch.object(util.json, 'dumps', return_value='serial1'):
         self.assertEqual('serial1', util.Serialize('object1'))
     with mock.patch.object(util.json, 'dumps', side_effect=TypeError):
         self.assertRaises(util.SerializeError, util.Serialize, 'object2')