예제 #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())