Issue #21520: test_zipfile no longer fails if the word 'bad' appears
anywhere in the name of the current directory.
diff --git a/Lib/test/test_zipfile.py b/Lib/test/test_zipfile.py
index 3d8f9bc..0c4c579 100644
--- a/Lib/test/test_zipfile.py
+++ b/Lib/test/test_zipfile.py
@@ -719,9 +719,10 @@
             self.assertTrue('SyntaxError' not in reportStr)
 
             # then check that the filter works on individual files
+            def filter(path):
+                return not os.path.basename(path).startswith("bad")
             with captured_stdout() as reportSIO, self.assertWarns(UserWarning):
-                zipfp.writepy(packagedir, filterfunc=lambda fn:
-                                                     'bad' not in fn)
+                zipfp.writepy(packagedir, filterfunc=filter)
             reportStr = reportSIO.getvalue()
             if reportStr:
                 print(reportStr)
diff --git a/Misc/NEWS b/Misc/NEWS
index 333aa43..79c705c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -228,6 +228,9 @@
 Tests
 -----
 
+- Issue #21520: test_zipfile no longer fails if the word 'bad' appears
+  anywhere in the name of the current directory.
+
 - Issue #23799: Added test.support.start_threads() for running and
   cleaning up multiple threads.