Пример #1
0
    def test_pickle_dict(self):
        items = {
            'name': u'jon',
            'animal': 'dog',
            'boolean': True,
            'number': 42,
            'list': ['a', 'b'],
            'dict': {
                'foo': 'bar'
            },
        }
        pickled = pickle_dict(items)
        expected = (
            ('name', u'jon'),
            ('animal', 'dog'),
            ('boolean', 'I01\n.'),
            ('number', 'I42\n.'),
            (
                'list',
                "(lp1\nS'a'\naS'b'\na.",
            ),
            ('dict', "(dp1\nS'foo'\np2\nS'bar'\np3\ns."),
        )

        self.assertEqual(len(pickled.items()), 7)
        for key, val in expected:
            self.assertEqual(pickled.get(key), val)
        fields = pickled.get('_pickled').split(',')
        self.assertEqual(sorted(fields), ['boolean', 'dict', 'list', 'number'])
        self.assertEqual(unpickle_dict(pickled), items)
        self.assertEqual(unpickle_dict(pickle_dict(items)), items)
Пример #2
0
    def test_pickle_dict(self):
        items = {
            'name': u'jon',
            'animal': 'dog',
            'boolean': True,
            'number': 42,
            'list': ['a', 'b'],
            'dict': {'foo': 'bar'},
        }
        pickled = pickle_dict(items)
        expected = (
            ('name', u'jon'),
            ('animal', 'dog'),
            ('boolean', 'I01\n.'),
            ('number', 'I42\n.'),
            ('list', "(lp0\nS'a'\np1\naS'b'\np2\na."),
            ('dict', "(dp0\nS'foo'\np1\nS'bar'\np2\ns."),
        )


        self.assertEqual(len(pickled.items()), 7)
        for key, val in expected:
            self.assertEqual(pickled.get(key), val)
        fields = pickled.get('_pickled').split(',')
        self.assertEqual(sorted(fields), ['boolean', 'dict', 'list', 'number'])
        self.assertEqual(unpickle_dict(pickled), items)
        self.assertEqual(unpickle_dict(pickle_dict(items)), items)
Пример #3
0
 def _make_qs(self, items):
     '''Returns a query string for the given dictionary of items. All keys
     and values in the provided items will be urlencoded. If necessary, any
     python objects will be pickled before being urlencoded.
     '''
     return urlencode(pickle_dict(items))
Пример #4
0
 def _make_qs(self, items):
     '''Returns a query string for the given dictionary of items. All keys
     and values in the provided items will be urlencoded. If necessary, any
     python objects will be pickled before being urlencoded.
     '''
     return urlencode(pickle_dict(items))