我繼承寫入新的「/etc/udev/rules.d中」映射文件,然後一些Python代碼,使子進程調用的udev有它刷新其設備列表:單元測試蟒蛇的udev互動
call(['/sbin/udevadm', 'trigger', '--action=change'])
觸發器調用是必要的,因爲我們需要更新映射而不想拔出並插回被映射的設備。我的問題是「呼叫」線在某一點被刪除,在程序的其他部分造成非明顯的副作用,因此未被捕獲。
我通常的解決方法是對這個方法(寫映射文件並調用觸發器)進行單元測試以強制執行預期的行爲,但是這種行爲似乎超出了單元測試的範圍。這是一個系統調用,更不用說udevadm觸發器需要sudo訪問。我無法弄清楚在這種情況下如何/嘲笑什麼。
我考慮過使用pyudev庫,因爲我發現它可以模擬udev的某些行爲,但它看起來並不像它可以嘲諷觸發器行爲(甚至無法訪問它)。
缺少一個很大的「#DO DELETE THIS LINE EVER!」在「通話」線路之上,有什麼我可以在這裏做的,以防止將來被刪除?從現在開始一年後,「不要刪除」的行很容易被忽略,當時沒有人知道它爲什麼在那裏。