Commit abb34fe9 authored by Brett Cannon's avatar Brett Cannon

UserString.MutableString has been removed in Python 3.0.

Works on issue #2877. Thanks Quentin Gallet-Gilles for the patch.
parent 5ec330cb
......@@ -178,6 +178,9 @@ The :mod:`UserString` module defines the following classes:
mutable object as dictionary key, which would be otherwise very error prone and
hard to track down.
.. deprecated:: 2.6
The :class:`MutableString` class has been removed in Python 3.0.
In addition to supporting the methods and operations of string and Unicode
objects (see section :ref:`string-methods`), :class:`UserString` instances
provide the following attribute:
......
......@@ -146,6 +146,9 @@ class MutableString(UserString, collections.MutableSequence):
A faster and better solution is to rewrite your program using lists."""
def __init__(self, string=""):
from warnings import warnpy3k
warnpy3k('the class UserString.MutableString has been removed in '
'Python 3.0', stacklevel=2)
self.data = string
def __hash__(self):
raise TypeError, "unhashable type (it is mutable)"
......
......@@ -219,6 +219,14 @@ class TestStdlibRemovals(unittest.TestCase):
func = getattr(commands, name)
self.assertRaises(DeprecationWarning, func, *([None]*arg_count))
def test_mutablestring_removal(self):
# UserString.MutableString has been removed in 3.0.
import UserString
with catch_warning(record=False):
warnings.filterwarnings("error", ".*MutableString",
DeprecationWarning)
self.assertRaises(DeprecationWarning, UserString.MutableString)
def test_main():
with catch_warning(record=True):
......
......@@ -4,8 +4,8 @@
import string
from test import test_support, string_tests
from UserString import UserString, MutableString
import warnings
class UserStringTest(
string_tests.CommonTest,
......@@ -135,7 +135,10 @@ class MutableStringTest(UserStringTest):
self.assertEqual(s, "")
def test_main():
test_support.run_unittest(UserStringTest, MutableStringTest)
with test_support.catch_warning(record=False):
warnings.filterwarnings("ignore", ".*MutableString",
DeprecationWarning)
test_support.run_unittest(UserStringTest, MutableStringTest)
if __name__ == "__main__":
test_main()
......@@ -63,6 +63,9 @@ Extension Modules
Library
-------
Issue #2877 - The UserString.MutableString class has been removed in
Python 3.0.
- Do not close external file objects passed to tarfile.open(mode='w:bz2')
when the TarFile is closed.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment