11import builtins
22import platform
3+ import pickle
34import sys
45
56def exceptions_eq (e1 , e2 ):
@@ -273,6 +274,14 @@ class SubError(MyError):
273274assert w .filename == None
274275assert w .filename2 == None
275276assert str (w ) == ""
277+ x = pickle .loads (pickle .dumps (w , 4 ))
278+ assert type (w ) == type (x )
279+ assert x .errno == None
280+ assert not sys .platform .startswith ("win" ) or x .winerror == None
281+ assert x .strerror == None
282+ assert x .filename == None
283+ assert x .filename2 == None
284+ assert str (x ) == ""
276285
277286w = OSError (0 )
278287assert w .errno == None
@@ -281,6 +290,14 @@ class SubError(MyError):
281290assert w .filename == None
282291assert w .filename2 == None
283292assert str (w ) == "0"
293+ x = pickle .loads (pickle .dumps (w , 4 ))
294+ assert type (w ) == type (x )
295+ assert x .errno == None
296+ assert not sys .platform .startswith ("win" ) or x .winerror == None
297+ assert x .strerror == None
298+ assert x .filename == None
299+ assert x .filename2 == None
300+ assert str (x ) == "0"
284301
285302w = OSError ('foo' )
286303assert w .errno == None
@@ -289,6 +306,14 @@ class SubError(MyError):
289306assert w .filename == None
290307assert w .filename2 == None
291308assert str (w ) == "foo"
309+ x = pickle .loads (pickle .dumps (w , 4 ))
310+ assert type (w ) == type (x )
311+ assert x .errno == None
312+ assert not sys .platform .startswith ("win" ) or x .winerror == None
313+ assert x .strerror == None
314+ assert x .filename == None
315+ assert x .filename2 == None
316+ assert str (x ) == "foo"
292317
293318w = OSError ('a' , 'b' , 'c' , 'd' , 'e' , 'f' )
294319assert w .errno == None
@@ -297,6 +322,14 @@ class SubError(MyError):
297322assert w .filename == None
298323assert w .filename2 == None
299324assert str (w ) == "('a', 'b', 'c', 'd', 'e', 'f')"
325+ x = pickle .loads (pickle .dumps (w , 4 ))
326+ assert type (w ) == type (x )
327+ assert x .errno == None
328+ assert not sys .platform .startswith ("win" ) or x .winerror == None
329+ assert x .strerror == None
330+ assert x .filename == None
331+ assert x .filename2 == None
332+ assert str (x ) == "('a', 'b', 'c', 'd', 'e', 'f')"
300333
301334# Custom `__new__` and `__init__`:
302335assert ImportError .__init__ .__qualname__ == 'ImportError.__init__'
0 commit comments