कुछ पायथन कोड है जो लिनक्स के तहत काम करता है। ऐसा एक तरह से लोक निर्माण विभाग के मॉड्यूल का उपयोग करता है:पाइथन बिल्टिन पीडब्ल्यूडी मॉड्यूल को कैसे छाया करें
import pwd
...
def func():
user=pwd.getpwnam(user)[2]
अब हम परीक्षण के साथ इस कोड को कवर करने के लिए एक विशिष्ट की जरूरत है, और परीक्षण Windows के तहत runnable रहना होगा। कार्यक्रम स्वयं ही लिनक्स के तहत चलाने का इरादा है। समस्या यह है कि पीडब्ल्यूडी मॉड्यूल विंडोज के तहत उपलब्ध नहीं है, इसलिए परीक्षण के तहत कोड आयात त्रुटि के साथ विफल हो जाएगा, भले ही pwd फ़ंक्शंस के कार्यान्वयन को MagicMock का उपयोग करके मजाक किया गया हो।
इस समस्या को हल करने का मूल विचार परीक्षण चलाने के दौरान पीडब्ल्यूडी मॉड्यूल को छाया करना था। तो परीक्षण चलते समय, स्टब छाया pwd छाया करेगा और मुख्य प्रोग्राम चलाते समय, मूल (यूनिक्स) pwd का उपयोग किया जाएगा। हम परीक्षण PYTHONPATH पर इस तरह के ठूंठ बनाया:
# pwd.py
def getpwnam(user):
print("YESSSSSSSS")
लेकिन यह एक लोक निर्माण विभाग मॉड्यूल परछाई, एक डिबगर हम देखते हैं कि निर्मित pwd आयात किया जाता है में नहीं लगता है। मैं मुख्य रूप से जावा डेवलपर हूं, इसलिए मुझे खेद है कि चीजों को करने का तरीका "पायथनिक" नहीं है। विचारों का स्वागत है।
उत्कृष्ट उत्तर, बस हमें क्या चाहिए! – Dmitriusan
आप Winpwd कैसे स्थापित करना चाहते हैं? पीआईपी ने इसे अनुक्रमित नहीं किया है, और एक Google खोज अजीब चीजें पाती है। – syonip
मुझे यह वही समस्या है। – Locane