예제 #1
0
    def testSortKey(self):
        item = util.AcceptItem('main/sub; q=0.2; level=3', 11)
        self.assertEqual((False, False, -0.2, False, 11), item.sort_key)

        item = util.AcceptItem('main/*', 12)
        self.assertEqual((False, True, -1, True, 12), item.sort_key)

        item = util.AcceptItem('*/*', 1)
        self.assertEqual((True, True, -1, True, 1), item.sort_key)
예제 #2
0
 def testStr(self):
     self.assertHeaderSame('*/*', str(util.AcceptItem('*/*', 1)))
     self.assertHeaderSame('text/*', str(util.AcceptItem('text/*', 1)))
     self.assertHeaderSame('text/plain',
                           str(util.AcceptItem('text/plain', 1)))
     self.assertHeaderSame('text/plain; q=0.2',
                           str(util.AcceptItem('text/plain; q=0.2', 1)))
     self.assertHeaderSame(
         'text/plain; q=0.2; level=1',
         str(util.AcceptItem('text/plain; level=1; q=0.2', 1)))
예제 #3
0
 def testSort(self):
     i1 = util.AcceptItem('text/*', 1)
     i2 = util.AcceptItem('text/html', 2)
     i3 = util.AcceptItem('text/html; q=0.9', 3)
     i4 = util.AcceptItem('text/html; q=0.3', 4)
     i5 = util.AcceptItem('text/xml', 5)
     i6 = util.AcceptItem('text/html; level=1', 6)
     i7 = util.AcceptItem('*/*', 7)
     items = [i1, i2, i3, i4, i5, i6, i7]
     random.shuffle(items)
     self.assertEqual([i6, i2, i5, i3, i4, i1, i7], sorted(items))
예제 #4
0
 def testParse(self):
     self.CheckAttributes(util.AcceptItem('*/*', 1), None, None)
     self.CheckAttributes(util.AcceptItem('text/*', 1), 'text', None)
     self.CheckAttributes(util.AcceptItem('text/plain', 1), 'text', 'plain')
     self.CheckAttributes(
         util.AcceptItem('text/plain; q=0.3', 1), 'text', 'plain', 0.3,
         values={'q': '0.3'})
     self.CheckAttributes(
         util.AcceptItem('text/plain; level=2', 1), 'text', 'plain',
         values={'level': '2'})
     self.CheckAttributes(
         util.AcceptItem('text/plain', 10), 'text', 'plain', index=10)
예제 #5
0
 def testValues(self):
     item = util.AcceptItem('text/plain; a=1; b=2; c=3;', 1)
     values = item.values
     self.assertEqual(dict(a="1", b="2", c="3"), values)
     values['a'] = "7"
     self.assertNotEqual(values, item.values)
예제 #6
0
 def testRepr(self):
     self.assertEqual("AcceptItem('*/*', 1)", repr(util.AcceptItem('*/*', 1)))
     self.assertEqual("AcceptItem('text/plain', 11)",
                       repr(util.AcceptItem('text/plain', 11)))
예제 #7
0
 def testMatchCaseInsensitive(self):
     item = util.AcceptItem('text/plain', 1)
     self.assertTrue(item.match('tExt/pLain'))
예제 #8
0
 def testMatchFullType(self):
     item = util.AcceptItem('text/plain', 1)
     self.assertFalse(item.match('text/html'))
     self.assertTrue(item.match('text/plain; level=1'))
     self.assertFalse(item.match('image/png'))
     self.assertFalse(item.match('image/png; q=0.3'))
예제 #9
0
 def testMatchAll(self):
     item = util.AcceptItem('*/*', 1)
     self.assertTrue(item.match('text/html'))
     self.assertTrue(item.match('text/plain; level=1'))
     self.assertTrue(item.match('image/png'))
     self.assertTrue(item.match('image/png; q=0.3'))
예제 #10
0
 def testCaseInsensitive(self):
     self.CheckAttributes(util.AcceptItem('Text/Plain', 1), 'text', 'plain')