Email or username:

Password:

Forgot your password?
Moana Rijndael 🍍🍕

В софте баг. Баг явно связан с кривым вычислением порогов и условий, когда условия сливаются в (a ≥ b) OR (a ≤ b).
Ну ок, допустим я его пофикшу, а вдруг он опять? Надо добавить тест на этот случай

Добавляем, запускаем...бдыщ, тесты взорвались. Все.
Причём данные то нормальные, просто в них цифр после запятой больше. Окей, меняем число в round() на число знаков в бд, я недавно расширяла размер чисел и заодно вынесла его в константу

Бдыщ, тесты взрываются. Почти все. Причём опять не совпадает число знаков, но на этот раз данные не проходили через бд, и их никто не округлял. Тест ждёт 14 знаков, прилетает 15.
Откуда 15? Да хер его знает. Так, через что у нас прошло сообщение, если не через базу? Ага, оно прошло через RabbitMQ. А для этого оно сериализуется в жсончик, который непонятно за каким хером децималы округлил. Ок, допустим. Раз у нас Pydantic, перенастраиваю модели, чтобы децималы кодировались строками, удаляю оставшиеся флоаты в тестах, делая их децималами

1 comment
Moana Rijndael 🍍🍕

Окей, теперь старые тесты тоже проходятся. Но не проходится новый, хотя условия должны быть пофикшены
Остановив код в дебаггере и погоняв SQL вручную в постгре понимаю, что это уже баг в тестах, код виртуально купил по цене 1.05 а не 1, и засылая обновление цены 1 я триггерю совершенно легальный stop loss

Итого: фикс бага — заменить один + на -, фикс всего остального — дохуя

Я обожаю погромирования

Go Up