рдХреБрдЫ рдЯреЛрдХрди рдореЗрдВ рдПрдХ рдлреНрд▓реЛрдЯ рдХреЗ рд░реВрдк рдореЗрдВ 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)
RFC рдореЗрдВ expires_at
рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рднреА рднреНрд░рдо рд╣реИред рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ expires_in
рд╕рдорд╛рди рдПрдХ int рд╣реИред
рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкреАрдЖрд░ рдФрд░ рдЗрд╕ рдПрдЬ-рдХреЗрд╕ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред
рдЕрд░реЗ, рдХреНрдпрд╛ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдореИрдВ рдЕрднреА рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАред
рдЕрд░реЗ, рдХреНрдпрд╛ рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ? рдореИрдВ рдЕрднреА рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАред
@ рдбрд┐рдлрд╝реЙрд▓реНрдЯ -303 рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдУ!
@ggiill рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рд╣реИрдВ
- self._expires_at = int(response.get('expires_at'))
+ self._expires_at = round(float(response.get('expires_at')))
рдФрд░ рдЬрдм рдореИрдВ pytest
рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ
рд▓реЗрдХрд┐рди рдЖрдк рдореБрдЭреЗ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдПрдХ рд╕рд╛рдзрд╛рд░рдг typecheck
рддрд░рд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ -
```
рдЖрдпрд╛рдд рдпреВрдирд┐рдЯрдЯреЗрд╕реНрдЯ
рдЖрдпрд╛рдд рдлрд┐рдХреНрд╕ ## рдПрдХ рдирдореВрдирд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИ
рдЖрдпрд╛рдд рд╕рдордп
рдХреНрд▓рд╛рд╕ рдЯреЗрд╕реНрдЯрдлрд┐рдХреНрд╕ (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 рдпрд╣ рдПрдХ рдорд╣реАрдирд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдореИрдВ рдЗрд╕реЗ рднреВрд▓ рдЧрдпрд╛ред
@ рдбрд┐рдлреЙрд▓реНрдЯ-303 рдореИрдВ рдореЗрдВрдЯреЗрдирд░ рдирд╣реАрдВ рд╣реВрдВ - рдкрд┐рдВрдЧрд┐рдВрдЧ @JonathanHuotред рдЖрдк рд╢рд╛рдпрдж рд╕рдореАрдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рднреА рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
RFC рдореЗрдВ
expires_at
рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдб рдореЗрдВ рднреА рднреНрд░рдо рд╣реИред рд╣рдо рдорд╛рди рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣expires_in
рд╕рдорд╛рди рдПрдХ int рд╣реИредрдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдкреАрдЖрд░ рдФрд░ рдЗрд╕ рдПрдЬ-рдХреЗрд╕ рдХреЛ рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред