क्या अजगर अचार को "यह वही वस्तु नहीं है" त्रुटियों को अनदेखा करने का कोई तरीका है?क्या पाइथन अचार को "यह वही वस्तु नहीं है" त्रुटियों को अनदेखा करने का कोई तरीका है
मैं डॉकटाइम .utcnow() उत्पादन के परिणामों पर ठीक अनाज नियंत्रण रखने के लिए मॉक का उपयोग करके एक परीक्षण लिख रहा हूं। मैं जिस कोड का उपयोग कर रहा हूं वह समय संवेदनशील है इसलिए नकली पैच परीक्षण करना आसान बनाता है।
समान परीक्षणों को वस्तुओं को चुनने और परिणामों को दूरस्थ सर्वर पर भेजने की आवश्यकता होती है। परीक्षण के उद्देश्य के लिए यदि रिमोट सर्वर द्वारा एक मानक डेटाटाइम उठाया गया और प्राप्त किया गया तो सबकुछ ठीक होगा।
दुर्भाग्य से अचार मॉड्यूल निम्न त्रुटि के साथ barfing है:
Can't pickle <type 'datetime.datetime'>: it's not the same object as datetime.datetime
यहाँ त्रुटि पुन: पेश करने के लिए एक न्यूनतम उदाहरण है।
from mock import patch
from datetime import datetime
import pickle
class MockDatetime(datetime):
frozendt = datetime(2011,05,31)
@classmethod
def advance(cls, **kw):
cls.frozendt = cls.frozendt + timedelta(**kw)
@classmethod
def utcnow(cls):
return cls.frozendt
@patch('datetime.datetime', MockDatetime)
def test():
pickle.dumps(datetime.utcnow())
if __name__ == '__main__':
test()
वहाँ __reduce__
और __getstate__
तरीकों कि सोच जब मैं अचार MockDatetime एक datetime है में अचार मशीनरी चाल सकता है कुछ कॉम्बो है?