[Test] Add unit coverage for content-based file type detection
Los mantenedores suelen responder en 1 día
@srivarshni7 ya está trabajando en esto.
Desde el 2/11/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 78/100
Línea de trabajo
Empieza con los cuatro auxiliares de utilities/file_types.py: sniff_magic, detect_type_key, type_label y guess_kind. Revisa tests/test_file_type_icons.py para ver el estilo de pruebas existente y luego añade un nuevo módulo de pruebas sin Qt. Está terminado cuando los bytes mágicos de PNG o PDF prevalecen sobre una extensión que no coincide, .tar.gz se resuelve correctamente, los binarios desconocidos recurren a la categoría segura y las pruebas pasan sin un QApplication.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
utilities/file_types.py contains content sniffing and compound-extension handling, but the test suite currently has no focused tests for these helpers. Regressions could affect file labels and preview selection without being detected.
Proposed solution
Add a small, Qt-independent test module covering sniff_magic, detect_type_key, type_label, and guess_kind. Use representative byte samples and filenames to verify magic bytes take precedence over extensions, .tar.gz is handled correctly, text and unknown data are classified safely, and case-insensitive extensions work.
Acceptance criteria
- Tests cover at least PNG/PDF or another representative magic-byte pair.
- A content type overrides a conflicting filename extension.
- Compound extensions such as
.tar.gzare covered. - Unknown binary data falls back to the expected safe category.
- Tests run without creating a Qt application.
Security considerations
Tests must use synthetic data only and must not weaken or bypass encryption behavior.
Additional context
Relevant file: utilities/file_types.py; existing UI icon tests are in tests/test_file_type_icons.py.
- Lenguaje dominante
- Python
- Estrellas
- 1
- Forks
- 5
- Merge medio
- 4 h 22 min
- PR fusionados (30 d)
- 8
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de ANCORATE/EncryptHome
-
good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ANCORATE/EncryptHome#24 ·
Los mantenedores suelen responder en 1 día
-
documentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
ANCORATE/EncryptHome#17 ·
Los mantenedores suelen responder en 1 día
-
good first issue ux
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
ANCORATE/EncryptHome#10 ·
Los mantenedores suelen responder en 1 día
Todos los issues de ANCORATE/EncryptHome
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
igormcsouza/tether#278 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
aws-samples/sample-per-model-bedrock#803 ·
Los mantenedores suelen responder en 1 día
-
documentation p1
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
huggingface/accelerate#4511 ·
Los mantenedores suelen responder en 1 día
-
follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día