assertWarns تعمل رغم مرشحات التحذيرات السابقة؛ ignore لا يمنع نجاحها عند صدور التحذير المطلوب. [1] [2]
الخلاصة السريعة
لا؛ النجاح يتطلب صدور التحذير. [1] [2]
- assertWarns تعمل رغم مرشحات التحذيرات السابقة؛ ignore لا يمنع نجاحها عند صدور التحذير المطلوب. [1] [2]
- على CPython 3.12.14، نستخدم tc=TestCase() وUserWarning برسالة "bud"، مع ignore. [1] [2]
- خارج assertWarns، قائمة التسجيل baseline تبقى فارغة في التجربة. [1] [2]
- داخل التأكيد يمر التحذير؛ str(own.warning) تعطي "bud". الخاصية تحمل كائن التحذير. [1] [2]
- تحكم: سياق التأكيد دون إصدار تحذير يسبب AssertionError. نختبر بخيط واحد، دون تحذيرات مخصصة أو regex. [1] [2]
التأكيد والمرشح
assertWarns تعمل رغم مرشحات التحذيرات السابقة؛ ignore لا يمنع نجاحها عند صدور التحذير المطلوب. [1] [2]
التحذير المطلوب
على CPython 3.12.14، نستخدم tc=TestCase() وUserWarning برسالة "bud"، مع ignore. [1] [2]
التجاهل خارج التأكيد
خارج assertWarns، قائمة التسجيل baseline تبقى فارغة في التجربة. [1] [2]
import warnings as w from unittest import TestCase tc=TestCase() with w.catch_warnings(record=True) as baseline: w.simplefilter("ignore",UserWarning) w.warn("bud",UserWarning) print(len(baseline)) with tc.assertWarns(UserWarning) as own: w.warn("bud",UserWarning) print(str(own.warning)) [1] [2]

التقاط التحذير وغيابه
داخل التأكيد يمر التحذير؛ str(own.warning) تعطي "bud". الخاصية تحمل كائن التحذير. [1] [2]
with w.catch_warnings(): w.simplefilter("ignore",UserWarning) try: with tc.assertWarns(UserWarning):pass except AssertionError:print("AssertionError") [1] [2]
تحكم: سياق التأكيد دون إصدار تحذير يسبب AssertionError. نختبر بخيط واحد، دون تحذيرات مخصصة أو regex. [1] [2]
المراجع
للتوسع: لغات البرمجة.
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
