def test_missingSource(self): """ Warnings emitted by a function the source code of which is not available can still be flushed. """ package = FilePath(self.mktemp().encode("utf-8")).child( b"twisted_private_helper" ) package.makedirs() package.child(b"__init__.py").setContent(b"") package.child(b"missingsourcefile.py").setContent( b""" import warnings def foo(): warnings.warn("oh no") """ ) pathEntry = package.parent().path.decode("utf-8") sys.path.insert(0, pathEntry) self.addCleanup(sys.path.remove, pathEntry) from twisted_private_helper import missingsourcefile # type: ignore[import] self.addCleanup(sys.modules.pop, "twisted_private_helper") self.addCleanup(sys.modules.pop, missingsourcefile.__name__) package.child(b"missingsourcefile.py").remove() missingsourcefile.foo() self.assertEqual(len(self.flushWarnings([missingsourcefile.foo])), 1)
def test_missingSource(self): """ If a function the source of which is not available is including in the C{offendingFunctions} list, L{TestCase.flushWarnings} raises L{IOError}. Such a call flushes no warnings. """ package = FilePath(self.mktemp()).child('twisted_private_helper') package.makedirs() package.child('__init__.py').setContent('') package.child('missingsourcefile.py').setContent(''' import warnings def foo(): warnings.warn("oh no") ''') sys.path.insert(0, package.parent().path) self.addCleanup(sys.path.remove, package.parent().path) from twisted_private_helper import missingsourcefile self.addCleanup(sys.modules.pop, 'twisted_private_helper') self.addCleanup(sys.modules.pop, missingsourcefile.__name__) package.child('missingsourcefile.py').remove() missingsourcefile.foo() self.assertRaises( IOError, self.flushWarnings, [missingsourcefile.foo]) self.assertEqual(len(self.flushWarnings()), 1)
def test_missingSource(self): """ Warnings emitted by a function the source code of which is not available can still be flushed. """ package = FilePath(self.mktemp()).child('twisted_private_helper') package.makedirs() package.child('__init__.py').setContent('') package.child('missingsourcefile.py').setContent(''' import warnings def foo(): warnings.warn("oh no") ''') sys.path.insert(0, package.parent().path) self.addCleanup(sys.path.remove, package.parent().path) from twisted_private_helper import missingsourcefile self.addCleanup(sys.modules.pop, 'twisted_private_helper') self.addCleanup(sys.modules.pop, missingsourcefile.__name__) package.child('missingsourcefile.py').remove() missingsourcefile.foo() self.assertEqual(len(self.flushWarnings([missingsourcefile.foo])), 1)
def test_missingSource(self): """ If a function the source of which is not available is including in the C{offendingFunctions} list, L{TestCase.flushWarnings} raises L{IOError}. Such a call flushes no warnings. """ package = FilePath(self.mktemp()).child('twisted_private_helper') package.makedirs() package.child('__init__.py').setContent('') package.child('missingsourcefile.py').setContent(''' import warnings def foo(): warnings.warn("oh no") ''') sys.path.insert(0, package.parent().path) self.addCleanup(sys.path.remove, package.parent().path) from twisted_private_helper import missingsourcefile self.addCleanup(sys.modules.pop, 'twisted_private_helper') self.addCleanup(sys.modules.pop, missingsourcefile.__name__) package.child('missingsourcefile.py').remove() missingsourcefile.foo() self.assertRaises(IOError, self.flushWarnings, [missingsourcefile.foo]) self.assertEqual(len(self.flushWarnings()), 1)