Kaynağa Gözat

Forgot to backport warnings.WarningMessage, which is not present in Python <= 2.5

Ask Solem 15 yıl önce
ebeveyn
işleme
85e0f24d37
1 değiştirilmiş dosya ile 20 ekleme ve 1 silme
  1. 20 1
      celery/tests/compat.py

+ 20 - 1
celery/tests/compat.py

@@ -1,5 +1,24 @@
 import sys
-from warnings import WarningMessage
+
+
+class WarningMessage(object):
+
+    """Holds the result of a single showwarning() call."""
+
+    _WARNING_DETAILS = ("message", "category", "filename", "lineno", "file",
+                        "line")
+
+    def __init__(self, message, category, filename, lineno, file=None,
+                    line=None):
+        local_values = locals()
+        for attr in self._WARNING_DETAILS:
+            setattr(self, attr, local_values[attr])
+        self._category_name = category.__name__ if category else None
+
+    def __str__(self):
+        return ("{message : %r, category : %r, filename : %r, lineno : %s, "
+                    "line : %r}" % (self.message, self._category_name,
+                                    self.filename, self.lineno, self.line))
 
 
 class catch_warnings(object):