From 6035a4a2aee7f6533afba811746cca94e9af4bb3 Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Tue, 13 Apr 2021 09:22:33 -0400 Subject: [PATCH 1/4] News file. --- newsfragments/3675.minor | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 newsfragments/3675.minor diff --git a/newsfragments/3675.minor b/newsfragments/3675.minor new file mode 100644 index 000000000..e69de29bb From cbd816fbd5909883c4af12b3803c66e47af1344a Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Tue, 13 Apr 2021 09:34:55 -0400 Subject: [PATCH 2/4] Ensure warnings get turned into exceptions. Getting sneaking suspicion it's passing in filenames sometimes, not just modules. --- src/allmydata/test/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/allmydata/test/__init__.py b/src/allmydata/test/__init__.py index c75f8d003..e9c47bd69 100644 --- a/src/allmydata/test/__init__.py +++ b/src/allmydata/test/__init__.py @@ -36,7 +36,7 @@ from foolscap.logging.incident import IncidentQualifier if PY3: # Error on BytesWarnings, to catch things like str(b""), but only for # allmydata code. - warnings.filterwarnings("error", category=BytesWarning, module="allmydata.*") + warnings.filterwarnings("error", category=BytesWarning, module=".*allmydata.*") class NonQualifier(IncidentQualifier, object): From 2299c2dcc827e02c6649913ac2d210bb920d60dc Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Tue, 13 Apr 2021 09:40:24 -0400 Subject: [PATCH 3/4] Fix implicit str(bytesobj). --- src/allmydata/test/test_runner.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/allmydata/test/test_runner.py b/src/allmydata/test/test_runner.py index f6a7c2ee1..c80b5dc9c 100644 --- a/src/allmydata/test/test_runner.py +++ b/src/allmydata/test/test_runner.py @@ -515,7 +515,7 @@ class RunNode(common_util.SignalMixin, unittest.TestCase, pollmixin.PollMixin): 0, "Expected error message from '{}', got something else: {}".format( description, - p.get_buffered_output(), + str(p.get_buffered_output(), "utf-8"), ), ) From 953c06a18d7d360b84ae1c45216a140efbd6a8ef Mon Sep 17 00:00:00 2001 From: Itamar Turner-Trauring Date: Tue, 13 Apr 2021 09:53:08 -0400 Subject: [PATCH 4/4] Fix some plain-str()-of-bytes bugs. --- src/allmydata/test/test_download.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/allmydata/test/test_download.py b/src/allmydata/test/test_download.py index 3a42b0819..d61942839 100644 --- a/src/allmydata/test/test_download.py +++ b/src/allmydata/test/test_download.py @@ -1304,7 +1304,7 @@ class MyShare(object): self._dyhb_rtt = rtt def __repr__(self): - return "sh%d-on-%s" % (self._shnum, self._server.get_name()) + return "sh%d-on-%s" % (self._shnum, str(self._server.get_name(), "ascii")) class MySegmentFetcher(SegmentFetcher): def __init__(self, *args, **kwargs): @@ -1383,7 +1383,7 @@ class Selection(unittest.TestCase): self.failUnless(node.failed) self.failUnless(node.failed.check(NotEnoughSharesError)) sname = serverA.get_name() - self.failUnlessIn("complete= pending=sh0-on-%s overdue= unused=" % sname, + self.failUnlessIn("complete= pending=sh0-on-%s overdue= unused=" % str(sname, "ascii"), str(node.failed)) d.addCallback(_check2) return d @@ -1605,7 +1605,7 @@ class Selection(unittest.TestCase): self.failUnless(node.failed) self.failUnless(node.failed.check(NotEnoughSharesError)) sname = servers[b"peer-2"].get_name() - self.failUnlessIn("complete=sh0 pending= overdue=sh2-on-%s unused=" % sname, + self.failUnlessIn("complete=sh0 pending= overdue=sh2-on-%s unused=" % str(sname, "ascii"), str(node.failed)) d.addCallback(_check4) return d