Repository navigation
test: cover create_max_link and fragment_ (closes #303) - #357
kshivam4781 wants to merge 1 commit into
Conversation
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. 📝 WalkthroughWalkthroughДобавлены шесть тестов для ChangesПроверки формирования ссылок
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~8 minutes Change: Other Merge Risk: ⚪ Minimal · up to The added link-formatting tests present no identified merge-blocking risk. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Linked Issues checkExplanation По issue Resolution Добавить автоматический тест для ветки
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
K1rL3s
left a comment
There was a problem hiding this comment.
Спасибо! Тесты на maxo.utils.link уже лежат в tests/maxo/utils/test_urls.py. Перенеси, пожалуйста, новые тесты туда, а test_link.py удали, чтобы тесты одного модуля были в одном файле.
Описание
Issue #303:
create_max_linkи веткаfragment_в_format_urlне были покрыты тестами (src/maxo/utils/link.py, 94% coverage, непокрытые строки — телоcreate_max_linkиif fragment_:).Проверил указанное в issue опасение о расхождении поведения
urljoinдля схемыmax://(её нет вurllib.parse.uses_relative) на непустом path:urljoin('max://link', 'a/b')действительно отбрасывает базу и возвращает'a/b', в отличие отhttps://(urljoin('https://max.ru', 'a/b')→'https://max.ru/a/b'). Но текущая сигнатураcreate_max_link(link: str, **kwargs)не принимает*path— она встраиваетlinkпрямо в базовый URL (f"max://{link}") и вызывает_format_urlбез позиционных сегментов пути, поэтомуurljoin(url, "", allow_fragments=True)всегда получает пустой relative и это расхождение сейчас недостижимо через публичный API. Учитывая это, выбрал первый вариант из issue («Покрыть тестами») вместо удаления из публичного API — код рабочий и используется без расхождений при текущей сигнатуре.Closes #303
Тип изменения
Только тесты, без изменений в
src/.Как это было протестировано?
Добавлен
tests/maxo/utils/test_link.pyс 6 тестами:create_max_link(базовый вызов, с query, сfragment_, с query+fragment_вместе) иcreate_max_http_linkсfragment_(базовый + query+fragment_) — для симметрии между обеими функциями, использующими общий_format_url.uv run pytest tests/ --cov=maxo.utils.link— 1858 тестов пройдено, покрытиеsrc/maxo/utils/link.pyвыросло с 94% до 100% (строки 46 и 51 теперь покрыты).ruff check,ruff format --checkиmypy— без замечаний.Тестовая конфигурация:
Контрольный список:
Summary by CodeRabbit