|
16 | 16 | class SetAttributeTest(unittest.TestCase): |
17 | 17 | def setUp(self): |
18 | 18 | self.parser = expat.ParserCreate(namespace_separator='!') |
19 | | - self.set_get_pairs = [ |
20 | | - [0, 0], |
21 | | - [1, 1], |
22 | | - [2, 1], |
23 | | - [0, 0], |
24 | | - ] |
| 19 | + |
| 20 | + def test_buffer_text(self): |
| 21 | + self.assertIs(self.parser.buffer_text, False) |
| 22 | + for x in 0, 1, 2, 0: |
| 23 | + self.parser.buffer_text = x |
| 24 | + self.assertIs(self.parser.buffer_text, bool(x)) |
| 25 | + |
| 26 | + def test_namespace_prefixes(self): |
| 27 | + self.assertIs(self.parser.namespace_prefixes, False) |
| 28 | + for x in 0, 1, 2, 0: |
| 29 | + self.parser.namespace_prefixes = x |
| 30 | + self.assertIs(self.parser.namespace_prefixes, bool(x)) |
25 | 31 |
|
26 | 32 | def test_ordered_attributes(self): |
27 | | - for x, y in self.set_get_pairs: |
| 33 | + self.assertIs(self.parser.ordered_attributes, False) |
| 34 | + for x in 0, 1, 2, 0: |
28 | 35 | self.parser.ordered_attributes = x |
29 | | - self.assertEqual(self.parser.ordered_attributes, y) |
| 36 | + self.assertIs(self.parser.ordered_attributes, bool(x)) |
| 37 | + |
| 38 | + def test_specified_attributes(self): |
| 39 | + self.assertIs(self.parser.specified_attributes, False) |
| 40 | + for x in 0, 1, 2, 0: |
| 41 | + self.parser.specified_attributes = x |
| 42 | + self.assertIs(self.parser.specified_attributes, bool(x)) |
30 | 43 |
|
31 | 44 | def test_specified_attributes(self): |
32 | | - for x, y in self.set_get_pairs: |
| 45 | + self.assertIs(self.parser.specified_attributes, False) |
| 46 | + for x in 0, 1, 2, 0: |
33 | 47 | self.parser.specified_attributes = x |
34 | | - self.assertEqual(self.parser.specified_attributes, y) |
| 48 | + self.assertIs(self.parser.specified_attributes, bool(x)) |
| 49 | + |
| 50 | + def test_invalid_attributes(self): |
| 51 | + with self.assertRaises(AttributeError): |
| 52 | + self.parser.returns_unicode = 1 |
| 53 | + with self.assertRaises(AttributeError): |
| 54 | + self.parser.returns_unicode |
| 55 | + |
| 56 | + # Issue #25019 |
| 57 | + self.assertRaises(TypeError, setattr, self.parser, range(0xF), 0) |
| 58 | + self.assertRaises(TypeError, self.parser.__setattr__, range(0xF), 0) |
| 59 | + self.assertRaises(TypeError, getattr, self.parser, range(0xF)) |
35 | 60 |
|
36 | 61 |
|
37 | 62 | data = b'''\ |
@@ -514,11 +539,12 @@ def test_1000_bytes(self): |
514 | 539 | def test_wrong_size(self): |
515 | 540 | parser = expat.ParserCreate() |
516 | 541 | parser.buffer_text = 1 |
517 | | - def f(size): |
518 | | - parser.buffer_size = size |
519 | | - |
520 | | - self.assertRaises(ValueError, f, -1) |
521 | | - self.assertRaises(ValueError, f, 0) |
| 542 | + with self.assertRaises(ValueError): |
| 543 | + parser.buffer_size = -1 |
| 544 | + with self.assertRaises(ValueError): |
| 545 | + parser.buffer_size = 0 |
| 546 | + with self.assertRaises(TypeError): |
| 547 | + parser.buffer_size = 512.0 |
522 | 548 |
|
523 | 549 | def test_unchanged_size(self): |
524 | 550 | xml1 = b"<?xml version='1.0' encoding='iso8859'?><s>" + b'a' * 512 |
|
0 commit comments