一部のトークンには、フロートとしてexpires_at
値があり(例: 1612807300.1613762
)、この行でValueError: invalid literal for int() with base 10
がスローされます。 これは、 int(float(response.get('expires_at')))
(または切り捨てないように丸める)を使用して解決できます。
そのすぐ上でself._expires_at
がフロートになります。
self._expires_at = time.time() + int(self.expires_in)
expires_at
の使用法はRFCで定義されていないため、コードにも混乱があるようです。 expires_in
と同様にintであると見なすことができます。
その使用法を修正し、このエッジケースをカバーするためにユニットテストを追加するPRは大歓迎です。
ねえ、私はこの問題を抱えることができますか? 私はオープンソースから始めたばかりなので、これは良いスタートです。
ねえ、私はこの問題を抱えることができますか? 私はオープンソースから始めたばかりなので、これは良いスタートです。
@ default-303頑張ってください!
@ggiillありがとう、私は次の変更を行いました
- self._expires_at = int(response.get('expires_at'))
+ self._expires_at = round(float(response.get('expires_at')))
すべてのテストに合格するのは、 pytest
実行したときです。
しかし、どのようなテストを追加してほしいですか? 単純なtypecheck
ようにこのようなものをテストします-
`` `
ユニットテストをインポートする
インポート修正##このデモ用に作成したサンプルスクリプト
インポート時間
クラスTestFix(unittest.TestCase):
def test_float(self) :
string_time = str(time.time())
self.assertIsInstance(fix.get_time("123345.1222"), int)
def test_int(self) :
string_time = str(round(time.time()))
self.assertIsInstance(fix.get_time("12333"), int)
`` `
またはmock test
いっぱいですか?
@ggiillねえ、レビューを
lmaoそれは私がそれを忘れていたとしても1ヶ月でした。
@ggiillねえ、レビューを
lmaoそれは私がそれを忘れていたとしても1ヶ月でした。
@ default-303私はメンテナではありません-@ JonathanHuotにpingを送信します。 あなたはおそらくレビューのためにもPRを入れたいと思うでしょう。
最も参考になるコメント
expires_at
の使用法はRFCで定義されていないため、コードにも混乱があるようです。expires_in
と同様にintであると見なすことができます。その使用法を修正し、このエッジケースをカバーするためにユニットテストを追加するPRは大歓迎です。