Пример #1
0
 def test_loads_list_impostors(self):
     to_loads = urlencode({
         'a': 'Hello',
         'b': 'Goodbye',
         'b2': 'I-try-to-be-a-list',
         'l_desc1': '1',
         'l_desc2': '2',
         'l_foo_0_bar0': '1',
         'l_foo_0_bar1': '2',
         'l_foo_0_bar33': 'haha',
         'l_foo_33_bar0': 'muhaha',
         'l_not-a-list_1_bar': 'evil',
     })
     loaded = nvp.loads(to_loads)
     self.assertEqual(loaded, {
         'a': 'Hello',
         'a': 'Hello',
         'b': 'Goodbye',
         'b2': 'I-try-to-be-a-list',
         'l': {
             'desc1': '1',
             'desc2': '2',
             'foo': [{
                 'bar': ['1', '2'],
                 'bar33': 'haha',
             }],
             'foo_33': {
                 'bar': ['muhaha'],
             },
             'not-a-list_1': {
                 'bar': 'evil',
             }
         },
     })
Пример #2
0
    def test_loads_with_key_filter(self):
        def key_to_lower(key):
            return key.lower()

        to_loads = 'A=1&B=2&C=3'
        expected = dict(a='1', b='2', c='3')
        loaded = nvp.loads(to_loads, key_filter=key_to_lower)
        self.assertEqual(expected, loaded)
Пример #3
0
    def test_loads_with_value_filter(self):
        def value_filter(value):
            return int(value) / 10

        to_loads = 'a=10&b=20&c=30'
        expected = dict(a=1, b=2, c=3)
        loaded = nvp.loads(to_loads, value_filter=value_filter)
        self.assertEqual(expected, loaded)
Пример #4
0
    def test_loads(self):
        """Test decoding all encoded data source values using nvp.loads."""
        decoded = self.data_source['decoded']
        encoded = self.data_source['encoded']

        for name, encoded_obj in encoded.iteritems():
            to_match = decoded[name]
            for convention in nvp.CONVENTIONS:
                query_string = encoded_obj[convention]
                value = nvp.loads(query_string)
                self.assertEqual(value, to_match)
Пример #5
0
 def decode(cls, encoded_response):
     return nvp.loads(encoded_response,
                      key_filter=cls.decode_key_filter,
                      value_filter=cls.decode_value_filter)