Example #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)
Example #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)
Example #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))
Example #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))