|
2 | 2 |
|
3 | 3 | There are four types of string literals: |
4 | 4 |
|
5 | | - 'abc' -- normal str |
6 | | - r'abc' -- raw str |
7 | | - b'xyz' -- normal bytes |
8 | | - br'xyz' -- raw bytes |
| 5 | + 'abc' -- normal str |
| 6 | + r'abc' -- raw str |
| 7 | + b'xyz' -- normal bytes |
| 8 | + br'xyz' | rb'xyz' -- raw bytes |
9 | 9 |
|
10 | 10 | The difference between normal and raw strings is of course that in a |
11 | 11 | raw string, \ escapes (while still used to determine the end of the |
@@ -103,12 +103,25 @@ def test_eval_bytes_normal(self): |
103 | 103 |
|
104 | 104 | def test_eval_bytes_raw(self): |
105 | 105 | self.assertEqual(eval(""" br'x' """), b'x') |
| 106 | + self.assertEqual(eval(""" rb'x' """), b'x') |
106 | 107 | self.assertEqual(eval(r""" br'\x01' """), b'\\' + b'x01') |
| 108 | + self.assertEqual(eval(r""" rb'\x01' """), b'\\' + b'x01') |
107 | 109 | self.assertEqual(eval(""" br'\x01' """), byte(1)) |
| 110 | + self.assertEqual(eval(""" rb'\x01' """), byte(1)) |
108 | 111 | self.assertEqual(eval(r""" br'\x81' """), b"\\" + b"x81") |
| 112 | + self.assertEqual(eval(r""" rb'\x81' """), b"\\" + b"x81") |
109 | 113 | self.assertRaises(SyntaxError, eval, """ br'\x81' """) |
| 114 | + self.assertRaises(SyntaxError, eval, """ rb'\x81' """) |
110 | 115 | self.assertEqual(eval(r""" br'\u1881' """), b"\\" + b"u1881") |
| 116 | + self.assertEqual(eval(r""" rb'\u1881' """), b"\\" + b"u1881") |
111 | 117 | self.assertRaises(SyntaxError, eval, """ br'\u1881' """) |
| 118 | + self.assertRaises(SyntaxError, eval, """ rb'\u1881' """) |
| 119 | + self.assertRaises(SyntaxError, eval, """ bb'' """) |
| 120 | + self.assertRaises(SyntaxError, eval, """ rr'' """) |
| 121 | + self.assertRaises(SyntaxError, eval, """ brr'' """) |
| 122 | + self.assertRaises(SyntaxError, eval, """ bbr'' """) |
| 123 | + self.assertRaises(SyntaxError, eval, """ rrb'' """) |
| 124 | + self.assertRaises(SyntaxError, eval, """ rbb'' """) |
112 | 125 |
|
113 | 126 | def check_encoding(self, encoding, extra=""): |
114 | 127 | modname = "xx_" + encoding.replace("-", "_") |
|
0 commit comments