Skip to content

Commit

Permalink
Merge pull request #328 from 3tilley/atexit-fix
Browse files Browse the repository at this point in the history
Atexit fix
  • Loading branch information
tartley committed Jun 14, 2022
2 parents 3afc350 + 8a364bd commit edf05b7
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 2 deletions.
4 changes: 3 additions & 1 deletion colorama/ansitowin32.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ def closed(self):
stream = self.__wrapped
try:
return stream.closed
except AttributeError:
# AttributeError in the case that the stream doesn't support being closed
# ValueError for the case that the stream has already been detached when atexit runs
except (AttributeError, ValueError):
return True


Expand Down
13 changes: 12 additions & 1 deletion colorama/tests/ansitowin32_test.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file.
from io import StringIO
from io import StringIO, TextIOWrapper
from unittest import TestCase, main

try:
Expand Down Expand Up @@ -40,6 +40,17 @@ def testProxyNoContextManager(self):
with StreamWrapper(mockStream, mockConverter) as wrapper:
wrapper.write('hello')

def test_closed_shouldnt_raise_on_closed_stream(self):
stream = StringIO()
stream.close()
wrapper = StreamWrapper(stream, None)
self.assertEqual(wrapper.closed, True)

def test_closed_shouldnt_raise_on_detached_stream(self):
stream = TextIOWrapper(StringIO())
stream.detach()
wrapper = StreamWrapper(stream, None)
self.assertEqual(wrapper.closed, True)

class AnsiToWin32Test(TestCase):

Expand Down

0 comments on commit edf05b7

Please sign in to comment.