夏時間の切り替え後、今日失敗し始めた単体テストがいくつかあります。
iCalendar pythonモジュールを使用して、icsファイルをロードおよび保存しています。
次のスクリプトは、テストの簡略化されたバージョンです。今朝の時点で、スクリプトは「夏」では正常に機能し、「冬」では失敗します。手動で時計を戻すことで故障を再現できます。スクリプトの出力は次のとおりです。
[root@ana icalendar]# date 10250855
Sat Oct 25 08:55:00 CEST 2008
[root@ana icalendar]# python dst.py
DTSTART should represent datetime.datetime(2015, 4, 4, 8, 0, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Brussels')) Brussels time
DTSTART should represent datetime.datetime(2015, 4, 4, 6, 0, tzinfo=<icalendar.prop.UTC object at 0x956b5cc>) UTC
DTSTART represents datetime.datetime(2015, 4, 4, 6, 0, tzinfo=<icalendar.prop.UTC object at 0x956b5cc>) Brussels time
[root@ana icalendar]# date 10260855
Sun Oct 26 08:55:00 CET 2008
[root@ana icalendar]# python dst.py
DTSTART should represent datetime.datetime(2015, 4, 4, 8, 0, tzinfo=tzfile('/usr/share/zoneinfo/Europe/Brussels')) Brussels time
DTSTART should represent datetime.datetime(2015, 4, 4, 6, 0, tzinfo=<icalendar.prop.UTC object at 0x96615cc>) UTC
DTSTART represents datetime.datetime(2015, 4, 4, 7, 0, tzinfo=<icalendar.prop.UTC object at 0x96615cc>) Brussels time
Traceback (most recent call last):
File "dst.py", line 58, in <module>
start.dt, startUTCExpected)
AssertionError: calendar's datetime.datetime(2015, 4, 4, 7, 0, tzinfo=<icalendar.prop.UTC object at 0x96615cc>) != expected datetime.datetime(2015, 4, 4, 6, 0, tzinfo=<icalendar.prop.UTC object at 0x96615cc>)
そして、これがスクリプト全体です。
それで、質問:-なぜ私の現在の時刻(および私がいるDSTのどの部分)がタイムスタンプのロード/保存/解析に影響を与えるのでしょうか?私はそうしないと思います。-バグの場合、この種のバグをどのように単体テストしますか?明らかに、単体テストでコンピューターの時計をリセットしたくありません。