Некоторые токены имеют значение 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, поэтому кажется, что в коде тоже есть путаница. Мы можем предположить, что это int, как и expires_in
.
Любой PR для исправления его использования и добавления модульного теста для покрытия этого крайнего случая приветствуется.
эй, может у меня эта проблема? Я только начинаю с открытого исходного кода, так что это будет хорошим началом.
эй, может у меня эта проблема? Я только начинаю с открытого исходного кода, так что это будет хорошим началом.
@ default-303 дерзай!
@ggiill спасибо, я сделал следующие изменения
- self._expires_at = int(response.get('expires_at'))
+ self._expires_at = round(float(response.get('expires_at')))
и проходит все тесты, когда я запускаю pytest
Но какие тесты вы хотите, чтобы я добавил? как простой typecheck
тест, что-то вроде этого -
`` ''
импорт unittest
import fix ## образец скрипта, который я написал для этой демонстрации
время импорта
класс 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 это был месяц, даже я забыл об этом.
@ggiill эй, могу я получить отзыв?
lmao это был месяц, даже я забыл об этом.
@ default-303 Я не сопровождаю - пингую @JonathanHuot. Вы, вероятно, также захотите поставить PR для обзора.
Самый полезный комментарий
Использование
expires_at
не определено в RFC, поэтому кажется, что в коде тоже есть путаница. Мы можем предположить, что это int, как иexpires_in
.Любой PR для исправления его использования и добавления модульного теста для покрытия этого крайнего случая приветствуется.