Example #1
0
    def test_mergedict_merges_multivaluedict(self):
        """ MergeDict can merge MultiValueDicts """

        multi1 = MultiValueDict({
            'key1': ['value1'],
            'key2': ['value2', 'value3']
        })

        multi2 = MultiValueDict({
            'key2': ['value4'],
            'key4': ['value5', 'value6']
        })

        mm = MergeDict(multi1, multi2)

        # Although 'key2' appears in both dictionaries,
        # only the first value is used.
        self.assertEqual(mm.getlist('key2'), ['value2', 'value3'])
        self.assertEqual(mm.getlist('key4'), ['value5', 'value6'])
        self.assertEqual(mm.getlist('undefined'), [])

        self.assertEqual(sorted(six.iterkeys(mm)), ['key1', 'key2', 'key4'])
        self.assertEqual(len(list(six.itervalues(mm))), 3)

        self.assertTrue('value1' in six.itervalues(mm))

        self.assertEqual(sorted(six.iteritems(mm), key=lambda k: k[0]),
                         [('key1', 'value1'), ('key2', 'value3'),
                          ('key4', 'value6')])

        self.assertEqual([(k, mm.getlist(k)) for k in sorted(mm)],
                         [('key1', ['value1']), ('key2', ['value2', 'value3']),
                          ('key4', ['value5', 'value6'])])
Example #2
0
    def test_mergedict_merges_multivaluedict(self):
        """ MergeDict can merge MultiValueDicts """

        multi1 = MultiValueDict({'key1': ['value1'],
                                 'key2': ['value2', 'value3']})

        multi2 = MultiValueDict({'key2': ['value4'],
                                 'key4': ['value5', 'value6']})

        mm = MergeDict(multi1, multi2)

        # Although 'key2' appears in both dictionaries,
        # only the first value is used.
        self.assertEqual(mm.getlist('key2'), ['value2', 'value3'])
        self.assertEqual(mm.getlist('key4'), ['value5', 'value6'])
        self.assertEqual(mm.getlist('undefined'), [])

        self.assertEqual(sorted(six.iterkeys(mm)), ['key1', 'key2', 'key4'])
        self.assertEqual(len(list(six.itervalues(mm))), 3)

        self.assertTrue('value1' in six.itervalues(mm))

        self.assertEqual(sorted(six.iteritems(mm), key=lambda k: k[0]),
                          [('key1', 'value1'), ('key2', 'value3'),
                           ('key4', 'value6')])

        self.assertEqual([(k,mm.getlist(k)) for k in sorted(mm)],
                          [('key1', ['value1']),
                           ('key2', ['value2', 'value3']),
                           ('key4', ['value5', 'value6'])])
Example #3
0
    def test_mergedict_merges_multivaluedict(self):
        """ MergeDict can merge MultiValueDicts """

        multi1 = MultiValueDict({"key1": ["value1"], "key2": ["value2", "value3"]})

        multi2 = MultiValueDict({"key2": ["value4"], "key4": ["value5", "value6"]})

        mm = MergeDict(multi1, multi2)

        # Although 'key2' appears in both dictionaries,
        # only the first value is used.
        self.assertEqual(mm.getlist("key2"), ["value2", "value3"])
        self.assertEqual(mm.getlist("key4"), ["value5", "value6"])
        self.assertEqual(mm.getlist("undefined"), [])

        self.assertEqual(sorted(six.iterkeys(mm)), ["key1", "key2", "key4"])
        self.assertEqual(len(list(six.itervalues(mm))), 3)

        self.assertIn("value1", six.itervalues(mm))

        self.assertEqual(
            sorted(six.iteritems(mm), key=lambda k: k[0]), [("key1", "value1"), ("key2", "value3"), ("key4", "value6")]
        )

        self.assertEqual(
            [(k, mm.getlist(k)) for k in sorted(mm)],
            [("key1", ["value1"]), ("key2", ["value2", "value3"]), ("key4", ["value5", "value6"])],
        )