69 lines
2.3 KiB
Python
69 lines
2.3 KiB
Python
import unittest
|
|
from microdot.microdot import MultiDict, NoCaseDict
|
|
|
|
|
|
class TestMultiDict(unittest.TestCase):
|
|
def test_multidict(self):
|
|
d = MultiDict()
|
|
|
|
self.assertEqual(dict(d), {})
|
|
self.assertIsNone(d.get('zero'))
|
|
self.assertEqual(d.get('zero', default=0), 0)
|
|
self.assertEqual(d.getlist('zero'), [])
|
|
self.assertEqual(d.getlist('zero', type=int), [])
|
|
|
|
d['one'] = 1
|
|
self.assertEqual(d['one'], 1)
|
|
self.assertEqual(d.get('one'), 1)
|
|
self.assertEqual(d.get('one', default=2), 1)
|
|
self.assertEqual(d.get('one', type=int), 1)
|
|
self.assertEqual(d.get('one', type=str), '1')
|
|
|
|
d['two'] = 1
|
|
d['two'] = 2
|
|
self.assertEqual(d['two'], 1)
|
|
self.assertEqual(d.get('two'), 1)
|
|
self.assertEqual(d.get('two', default=2), 1)
|
|
self.assertEqual(d.get('two', type=int), 1)
|
|
self.assertEqual(d.get('two', type=str), '1')
|
|
self.assertEqual(d.getlist('two'), [1, 2])
|
|
self.assertEqual(d.getlist('two', type=int), [1, 2])
|
|
self.assertEqual(d.getlist('two', type=str), ['1', '2'])
|
|
|
|
def test_case_insensitive_dict(self):
|
|
d = NoCaseDict()
|
|
|
|
d['One'] = 1
|
|
d['one'] = 2
|
|
d['ONE'] = 3
|
|
d['One'] = 4
|
|
d['two'] = 5
|
|
self.assertEqual(d['one'], 4)
|
|
self.assertEqual(d['One'], 4)
|
|
self.assertEqual(d['ONE'], 4)
|
|
self.assertEqual(d['onE'], 4)
|
|
self.assertEqual(d['two'], 5)
|
|
self.assertEqual(d['tWO'], 5)
|
|
self.assertEqual(d.get('one'), 4)
|
|
self.assertEqual(d.get('One'), 4)
|
|
self.assertEqual(d.get('ONE'), 4)
|
|
self.assertEqual(d.get('onE'), 4)
|
|
self.assertEqual(d.get('two'), 5)
|
|
self.assertEqual(d.get('tWO'), 5)
|
|
self.assertIn(('One', 4), list(d.items()))
|
|
self.assertIn(('two', 5), list(d.items()))
|
|
self.assertIn(4, list(d.values()))
|
|
self.assertIn(5, list(d.values()))
|
|
|
|
del d['oNE']
|
|
self.assertEqual(list(d.items()), [('two', 5)])
|
|
self.assertEqual(list(d.values()), [5])
|
|
|
|
d.update({'oNe': 1, 'two': 2, 'three': 3})
|
|
self.assertEqual(d['one'], 1)
|
|
self.assertEqual(d['ONE'], 1)
|
|
self.assertEqual(d['two'], 2)
|
|
self.assertEqual(d['TWO'], 2)
|
|
self.assertEqual(d['three'], 3)
|
|
self.assertEqual(d['THREE'], 3)
|