Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Move patch/redirect/mod.rs's inline test modules into sibling test files

Aberta Para iniciantes
#1,011 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Refatoração
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
tooling

Direção de pesquisa

Comece em crates/socket-patch-core/src/patch/redirect/mod.rs: o código de produção termina em L7622, mod tests vai de L7623 a L21402 mais cinco outros módulos #[cfg(test)] até L21936. Mova o corpo de cada módulo verbatim para um arquivo irmão (redirect/tests.rs, python_lock_warning_tests.rs, etc.), declarando-os como #[cfg(test)] mod ...; a partir de mod.rs, usando use super::* para visibilidade e os arquivos *_equivalence_tests.rs existentes (L33–L49) como padrão. Concluído quando cargo test -p socket-patch-core redirect:: mostrar 307/322 testes aprovados como antes, cargo clippy -p socket-patch-core --all-targets estiver limpo e git diff --color-moved=zebra mostrar apenas blocos movidos.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

arch-audit refactor

[agent] Filed by the scheduled architecture audit routine (ecosystems and formats). Register: register comment.

Kind: refactor. Source: §3.7 #1 (step 1 of tracking #1010). Register E30.

Problem

About two thirds of patch/redirect/mod.rs (21,936 lines at db83f01) is inline tests:

  • mod tests, L7623–L21402: 13,780 lines and 307 tests (322 across all six modules), covering every ecosystem's rewriter;
  • python_lock_warning_tests (L21403), python_metadata_pairing_tests (L21445), hatch_tests (L21546), hosted_patch_uuid_tests (L21665) and superseding_repin_tests (L21792–L21936).

The production code ends at L7622. The sibling *_equivalence_tests.rs files already use the sibling-file pattern (L35–L45).

Impact
  • Each hosted test addition creates a conflict hotspot in the same file as the production code.
  • Production review is buried in a 22K-line file.
  • This is the cheapest step of the split, and it removes about 14.3K lines from mod.rs without touching a production line.
Proposed change
  • Declare the modules from mod.rs and move each one's body verbatim into its own file: #[cfg(test)] mod tests; → redirect/tests.rs, and likewise python_lock_warning_tests.rs, python_metadata_pairing_tests.rs, hatch_tests.rs, hosted_patch_uuid_tests.rs and superseding_repin_tests.rs.
  • Inside each file, use super::* keeps the same visibility, so no item changes visibility.
  • Optional, in a follow-up and not this PR: split tests.rs per ecosystem once the production split (later steps of #1010) lands.

Deleted from mod.rs: L7623–L21936.

Size and scope
  • Files: redirect/mod.rs and six new sibling files.
  • About 14.3K moved lines, 0 changed production lines, and about 12 added declaration lines.
  • Out of scope: any production move, any test edit or rename, and the equivalence suites.
Acceptance criteria
  • git diff --color-moved=zebra shows only moved blocks, plus the six mod declarations.
  • mod.rs is ≤ ~7.7K lines.
  • cargo test -p socket-patch-core redirect:: runs the same number of tests before and after (307 in tests and 322 across the six modules), and all of them pass.
  • cargo clippy -p socket-patch-core --all-targets is clean (no new unused warnings from the move).
Dependencies

None. It is best landed when few PRs touching redirect/mod.rs tests are open, because open PRs will need a trivial rebase onto the moved file. It is step 1 of #1010 and unblocks nothing technically, but it makes steps 2–7 reviewable.

Linguagem predominante
Rust
Estrelas
8
Forks
0
Merge médio
1d 1h
PRs com merge (30d)
211

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de SocketDev/socket-patch

Todas as issues de SocketDev/socket-patch

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.