تقنية

assertWarns في بايثون: هل يمنع ignore نجاح التأكيد؟

assertWarns(UserWarning); prior ignore; warn: bud; pass.
التحذير يمر.

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]

assertWarns(UserWarning); prior ignore; no warning; AssertionError.
الصمت يفشل.

التقاط التحذير وغيابه

داخل التأكيد يمر التحذير؛ 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]

المراجع

  1. Python assertWarns
  2. CPython 3.12.14 assertWarns

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.