-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
123 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -160,3 +160,5 @@ cython_debug/ | |
#.idea/ | ||
|
||
package_scripts/tmp/ | ||
|
||
tmp/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
<html lang='fr'> | ||
<head> | ||
<link rel="stylesheet" href="/assets/attestation.debug-3c57ac8945dab8095dd2b5cb0fb3fd6321ef7b646edb4c2ceed35b8af00b93d3.css" media="all" /> | ||
<title>Attestation</title> | ||
|
||
|
||
|
||
<meta content='localhost:3000' name='generator'> | ||
<meta content='2024-09-02T10:55:10+02:00' name='dcterms.created'> | ||
</head> | ||
<body id='attestation'> | ||
<div class='a4-container official-layout'> | ||
<div class='content'> | ||
<header class='first-header'> | ||
<div class='left'> | ||
<img alt="" class="marianne" src="/assets/centered_marianne-00cb9c7009adea9ffa65aa8cf028ce2f94b88b1bcdaf202c5a42fc1976f0dabd.svg" /> | ||
<div class='bloc-marque'> | ||
<p class="intitule">DS</p> | ||
<img alt="" class="devise" src="/assets/liberte2-5ee183e5c6400eccff4b10a6a3c3beff34ec3582b77aa13ef701bb8f40c6bd19.svg" /> | ||
</div> | ||
</div> | ||
<div class='right'> | ||
</div> | ||
</header> | ||
<footer> | ||
<p>Préfecture de zone / [email protected] | ||
<br />2 878 rue de la Capitainerie — CS — 25000 RENNES CEDEX 02 - Tel: 02 01 02 01 02</p> | ||
</footer> | ||
<div class='main'> | ||
<header><div style="text-align:left;"><p style="text-align:left;">Service des techs de DS</p></div> | ||
<div style="text-align:left;"><p style="text-align:left;">Fait le </p></div></header><h1 style="text-align:center;">Titre de l’attestation</h1><p class="body-start" style="text-align:left;">Cher M. C C ,</p><p style="text-align:left;">Voici le rendu d’une liste à choix multilpes : </p><ul> | ||
<li><p>Premier choix</p></li> | ||
<li><p>Deuxième choix</p></li> | ||
</ul><p> </p><p style="text-align:left;">Et celui d’un bloc répétable : </p><ol class="tdc-repetition"> | ||
<li><dl> | ||
<dt>Nom</dt> | ||
<dd>Lavande</dd> | ||
<dt>Nombre</dt> | ||
<dd>20</dd> | ||
<dt>Pourquoi si peu ?</dt> | ||
<dd></dd> | ||
</dl></li> | ||
<li><dl> | ||
<dt>Nom</dt> | ||
<dd>Olivier</dd> | ||
<dt>Nombre</dt> | ||
<dd>1</dd> | ||
<dt>Pourquoi si peu ?</dt> | ||
<dd>pas la place</dd> | ||
</dl></li> | ||
<li><dl> | ||
<dt>Nom</dt> | ||
<dd>Un nom super long qui aura de bonnes chances de passer sur une seconde ligne (ou pas, on verra hein)</dd> | ||
<dt>Nombre</dt> | ||
<dd>20</dd> | ||
<dt>Pourquoi si peu ?</dt> | ||
<dd></dd> | ||
</dl></li> | ||
</ol><p> </p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><h3 style="text-align:left;">Un niveau de titre qui passe sur 2 lignes, et qui pose un problème de chevauchement lorqu’on a un line-height qui n’est pas adapté.</h3><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p><p style="text-align:left;">Vous pouvez éditer ce texte pour personnaliser votre attestation. Pour ajouter du contenu issu du dossier, utilisez les balises situées sous cette zone de saisie.</p> | ||
</div> | ||
</div> | ||
</div> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
import os | ||
from unittest import TestCase | ||
from weasyprint import HTML | ||
from src.custom_fetcher import custom_url_fetcher | ||
|
||
fixtures_dir = "tests/fixtures" | ||
output_dir = "tmp" | ||
|
||
os.makedirs(output_dir, exist_ok=True) | ||
|
||
|
||
class TestIntegrations(TestCase): | ||
# NOTE: App server must run in order to fetch assets. | ||
def test_non_regression(self): | ||
if "CI" in os.environ: | ||
self.skipTest( | ||
"Skipping non-regression test in CI: app server assets must run." | ||
) | ||
|
||
# Iterate through each HTML file in the fixtures directory | ||
for filename in os.listdir(fixtures_dir): | ||
if filename.endswith(".html"): | ||
html_file_path = os.path.join(fixtures_dir, filename) | ||
|
||
# Load HTML content | ||
with open(html_file_path, "r", encoding="utf-8") as f: | ||
string_html = f.read() | ||
|
||
# Generate PDF. | ||
html = HTML( | ||
string=string_html, | ||
base_url=os.environ.get("BASE_URL"), | ||
url_fetcher=custom_url_fetcher, | ||
) | ||
|
||
pdf = html.write_pdf() | ||
|
||
# Define output PDF file path | ||
pdf_filename = filename.replace(".html", ".pdf") | ||
|
||
# Check if PDF exists in fixtures_dir | ||
fixtures_file_path = os.path.join(fixtures_dir, pdf_filename) | ||
if not os.path.exists(fixtures_file_path): | ||
# If not, write the PDF to fixtures_dir | ||
with open(fixtures_file_path, "wb") as f: | ||
f.write(pdf) | ||
print(f"New reference PDF saved: {fixtures_file_path}") | ||
|
||
# Save the PDF to the specified directory | ||
pdf_file_path = os.path.join(output_dir, pdf_filename) | ||
with open(pdf_file_path, "wb") as f: | ||
f.write(pdf) | ||
|
||
print( | ||
f"Non regression PDF generated: {pdf_file_path}, compare it with reference" | ||
) |