تقنية

assertNoLogs في بايثون: هل نجاحها يعني غياب كل استدعاءات التسجيل؟

assertNoLogs; level=ERROR; logger.warning("bud"); pass.
الأدنى يمر.

assertNoLogs تختبر غياب الرسائل عند المستوى المحدد أو أعلى؛ نجاحها لا يثبت غياب كل استدعاءات التسجيل. [1] [2]

الخلاصة السريعة

لا؛ المستوى جزء من شرط الفحص. [1] [2]

  • assertNoLogs تختبر غياب الرسائل عند المستوى المحدد أو أعلى؛ نجاحها لا يثبت غياب كل استدعاءات التسجيل. [1] [2]
  • على CPython 3.12.14، نستخدم tc=TestCase() ومسجلًا مسمى مضبوطًا على WARNING، دون انتشار. [1] [2]
  • داخل assertNoLogs عند ERROR، استدعاء logger.warning("bud") لا يفشل التأكيد. [1] [2]
  • تحكم: logger.error("bud") عند العتبة نفسها يسبب AssertionError. [1] [2]
  • خفض العتبة إلى WARNING يجعل استدعاء warning نفسه يفشل. نختبر المسجل نفسه بخيط واحد، دون أبناء أو معالجات مخصصة. [1] [2]

فحص عند عتبة

assertNoLogs تختبر غياب الرسائل عند المستوى المحدد أو أعلى؛ نجاحها لا يثبت غياب كل استدعاءات التسجيل. [1] [2]

مسجل محدد

على CPython 3.12.14، نستخدم tc=TestCase() ومسجلًا مسمى مضبوطًا على WARNING، دون انتشار. [1] [2]

استدعاء أدنى من العتبة

داخل assertNoLogs عند ERROR، استدعاء logger.warning("bud") لا يفشل التأكيد. [1] [2]

import logging from unittest import TestCase tc=TestCase() logger=logging.getLogger("BA-assertNoLogs-own") logger.setLevel(logging.WARNING);logger.propagate=False with tc.assertNoLogs(logger,level="ERROR"): logger.warning("bud") print("pass") [1] [2]

assertNoLogs; level=ERROR; logger.error("bud"); AssertionError.
العتبة تفشل.

بلوغ العتبة وخفضها

تحكم: logger.error("bud") عند العتبة نفسها يسبب AssertionError. [1] [2]

try: with tc.assertNoLogs(logger,level="ERROR"):logger.error("bud") except AssertionError:print("error: AssertionError") try: with tc.assertNoLogs(logger,level="WARNING"):logger.warning("bud") except AssertionError:print("warning: AssertionError") [1] [2]

خفض العتبة إلى WARNING يجعل استدعاء warning نفسه يفشل. نختبر المسجل نفسه بخيط واحد، دون أبناء أو معالجات مخصصة. [1] [2]

المراجع

  1. Python assertNoLogs
  2. CPython 3.12.14 logging assertions

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

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