def test_parse_qs(self): assert furl.parse_qs('a=a&b=b') == {'a':'a', 'b':'b'} # Duplicates are truncated. assert furl.parse_qs('a=a&b=b&a=c') == {'a':'a', 'b':'b'} # URL encoding. assert furl.parse_qs('space=a+a&=a%26a') == {'space':'a a', 'amp':'a&a'}
def test_params(self): q = furl.Query('a=a&b=b') assert q.params == {'a':'a', 'b':'b'} q.params['sup'] = 'sup' assert q.params == {'a':'a', 'b':'b', 'sup':'sup'} del q.params['a'] assert q.params == {'b':'b', 'sup':'sup'} q.params['b'] = 'BLROP' assert q.params == {'b':'BLROP', 'sup':'sup'} # Non-string parameters are stringified q.params.clear() q.params[99] = 99 q.params['int'] = 1 q.params['float'] = 0.39393 assert furl.parse_qs(str(q)) == {'int':'1', 'float':'0.39393', '99':'99'}
def test_set(self): q = furl.Query('a=a') assert q == q.set({'b':'b', 's':'s s'}) comps = furl.parse_qs(str(q)) assert comps['b'] == 'b' and comps['s'] == 's s'