Einige Token haben einen expires_at
Wert als Float (Beispiel: 1612807300.1613762
), was dazu führt, dass diese Zeile ein ValueError: invalid literal for int() with base 10
wirft. Dies könnte mit int(float(response.get('expires_at')))
(oder Runden, um nicht abgeschnitten) gelöst werden.
Direkt darüber wird self._expires_at
zu einem Float gemacht:
self._expires_at = time.time() + int(self.expires_in)
Die Verwendung von expires_at
ist in RFC nicht definiert, daher scheint es auch im Code Verwirrung zu geben. Wir können davon ausgehen, dass es sich um einen int handelt, ähnlich wie bei expires_in
.
Jeder PR, der seine Verwendung korrigiert und einen Unit-Test hinzufügt, um diesen Randfall abzudecken, ist willkommen.
Hey, kann ich dieses Problem haben? Ich fange gerade mit Open Source an, also wird dies ein guter Anfang sein.
Hey, kann ich dieses Problem haben? Ich fange gerade mit Open Source an, also wird dies ein guter Anfang sein.
@default-303 mach es!
@ggiill danke, ich habe folgende Änderungen vorgenommen
- self._expires_at = int(response.get('expires_at'))
+ self._expires_at = round(float(response.get('expires_at')))
und alle Tests bestehen ist, wenn ich pytest
ausführe
Aber was für Tests soll ich hinzufügen? wie ein einfacher typecheck
Test so etwas -
```
Unittest importieren
import fix ## ein Beispielskript, das ich für diese Demo erstellt habe
Importzeit
Klasse 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)
```
oder ein volles mock test
?
@ggiill hey, kann ich eine Bewertung bekommen?
lmao ist ein Monat her, sogar ich habe es vergessen.
@ggiill hey, kann ich eine Bewertung bekommen?
lmao ist ein Monat her, sogar ich habe es vergessen.
@default-303 Ich bin kein Betreuer - pinge @JonathanHuot. Sie möchten wahrscheinlich auch eine PR zur Überprüfung einreichen.
Hilfreichster Kommentar
Die Verwendung von
expires_at
ist in RFC nicht definiert, daher scheint es auch im Code Verwirrung zu geben. Wir können davon ausgehen, dass es sich um einen int handelt, ähnlich wie beiexpires_in
.Jeder PR, der seine Verwendung korrigiert und einen Unit-Test hinzufügt, um diesen Randfall abzudecken, ist willkommen.