PDF report generation can overwrite HTML when the destination extension is not lowercase .html

Abierto Apto para principiantes
#10,082 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
78/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
csharp
Área
backend

Línea de trabajo

Empieza por la derivación de la ruta del PDF en Report/Program.cs y sigue cómo se pasa el destino al convertidor. Comprueba la configuración de pruebas existente del iniciador del informe para ver si cubre regresiones relacionadas con extensiones en mayúsculas y rutas de entrada y salida idénticas. El trabajo estará terminado cuando report.HTML siga intacto, se genere un PDF independiente y pasen los casos de regresión.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Problem

The report launcher derives the PDF output path with destination.Replace(".html", ".pdf") in Report/Program.cs. With a destination such as report.HTML, the replacement does nothing: wkhtmltopdf receives the same path for its input and output. It overwrites the HTML with PDF content, writes no report.pdf, and exits successfully.

This path derivation is already present on master.

Reproduction

  1. Build the report launcher in Release and install xvfb-run and wkhtmltopdf.

  2. Use Report/config.example.json as config.json, with the report template and CSS available in the working directory.

  3. Point backtest-data-source-file at Tests/TestData/test_report_data.json, set live-data-source-file to an empty string, and set:

    {
      "report-format": "PDF",
      "report-destination": "/tmp/report-repro/report.HTML",
      "close-automatically": true
    }
    
  4. Create /tmp/report-repro and run dotnet /path/to/QuantConnect.Report.dll from the report working directory.

Observed with the real converter: launcher exit code 0; report.HTML starts with %PDF- instead of HTML; report.pdf is absent.

The converter behavior can also be reproduced independently:

mkdir -p /tmp/report-repro
printf '%s\n' '<!doctype html><html><body>Report</body></html>' > /tmp/report-repro/report.HTML
xvfb-run --server-args='-screen 0, 1600x1200x24+32' wkhtmltopdf /tmp/report-repro/report.HTML /tmp/report-repro/report.HTML

Expected

Keep the generated HTML and write a separate PDF alongside it, without allowing the two output paths to coincide. Suggestion: derive the PDF filename with Path.ChangeExtension and add regression coverage for non-lowercase extensions and identical input/output paths.

Lenguaje dominante
C#
Estrellas
22.5k
Forks
5.4k
Merge medio
22 h 6 min
PR fusionados (30 d)
81

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

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 QuantConnect/Lean

Todos los issues de QuantConnect/Lean

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.