[Test] Add unit coverage for content-based file type detection

Cerrado Apto para principiantes
#15 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
python, security
Área
testing

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

good first issue test

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.gz are 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

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de ANCORATE/EncryptHome

Todos los issues de ANCORATE/EncryptHome

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.