示例#1
0
    def test_list(self):
        res = Decoder(b'l4:spam4:eggsi123ee').decode()

        self.assertEqual(len(res), 3)
        self.assertEqual(res[0], b'spam')
        self.assertEqual(res[1], b'eggs')
        self.assertEqual(res[2], 123)
示例#2
0
 def test_malformed_key_in_dict_should_failed(self):
     with self.assertRaises(EOFError):
         Decoder(b'd3:moo4:spam4:eggse').decode()
示例#3
0
    def test_dict(self):
        res = Decoder(b'd3:cow3:moo4:spam4:eggse').decode()

        self.assertTrue(isinstance(res, dict))
        self.assertEqual(res[b'cow'], b'moo')
        self.assertEqual(res[b'spam'], b'eggs')
示例#4
0
    def test_string_with_space(self):
        res = Decoder(b'12:Middle Earth').decode()

        self.assertEqual(res, b'Middle Earth')
示例#5
0
    def test_string(self):
        res = Decoder(b'4:name').decode()

        self.assertEqual(res, b'name')
示例#6
0
    def test_min_string(self):
        res = Decoder(b'1:a').decode()

        self.assertEqual(res, b'a')
示例#7
0
 def test_not_a_string(self):
     with self.assertRaises(TypeError):
         Decoder(123).decode()
     with self.assertRaises(TypeError):
         Decoder({'a': 1}).decode()
示例#8
0
    def test_integer(self):
        res = Decoder(b'i123e').decode()

        self.assertEqual(int(res), 123)
示例#9
0
 def test_empty_string(self):
     with self.assertRaises(EOFError):
         Decoder(b'').decode()
示例#10
0
    def test_read_until_not_found(self):
        decoder = Decoder(b'123456')

        with self.assertRaises(RuntimeError):
            decoder._read_until(b'7')
示例#11
0
    def test_read_until_found(self):
        decoder = Decoder(b'123456')

        self.assertEqual(b'123', decoder._read_until(b'4'))
示例#12
0
    def test_peek_should_handle_end(self):
        decoder = Decoder(b'1')
        decoder._index = 1

        self.assertEqual(None, decoder._peek())
示例#13
0
    def test_peek_iis_idempotent(self):
        decoder = Decoder(b'12')

        self.assertEqual(b'1', decoder._peek())
        self.assertEqual(b'1', decoder._peek())