Skip to content

fix(scripts): return None from get_docx_document on missing template - #3298

Open
prajakta128 wants to merge 1 commit into
OWASP:masterfrom
prajakta128:fix/2490-docx-none-on-missing-template
Open

fix(scripts): return None from get_docx_document on missing template#3298
prajakta128 wants to merge 1 commit into
OWASP:masterfrom
prajakta128:fix/2490-docx-none-on-missing-template

Conversation

@prajakta128

Copy link
Copy Markdown

Resolves #2490

Summary

get_docx_document() was returning a blank docx.Document() object when the template file could not be found. Because a blank docx.Document() is always truthy in Python, the caller's if doc: check in create_edition_from_template() always passed — so a missing template silently produced an empty, corrupt .docx output file instead of failing with a clear error.

Fix

  • get_docx_document() now returns None instead of a blank document when the file is missing. Return type updated from Any to Optional[Any] to reflect this.
  • create_edition_from_template() now checks if doc is not None: instead of if doc:, and adds an else branch that logs a clear error (Cannot create output file: template document not found at %s) and returns early — so no empty file gets written.

Scope

Only scripts/convert.py and tests/scripts/convert_utest.py are touched. No unrelated files, formatting, or refactors are included.

Testing

Ran locally before opening this PR:

  • pytest tests/scripts/convert_utest.py — 149/149 pass on Linux
  • mypy --namespace-packages --strict ./scripts/ — clean
  • flake8 --max-line-length=120 --max-complexity=10 — clean
  • black --check — clean

One note: on Windows, test_get_template_abs_path fails locally due to path-separator handling unrelated to this change (fails identically on master without this PR applied) — flagging it here for visibility, happy to open a separate issue for it if useful.


This is my first PR to Cornucopia — feedback very welcome, and happy to adjust anything that doesn't fit the project's conventions.

Signed-off-by: Prajakta <your-email@gmail.com>
@github-actions

Copy link
Copy Markdown
Contributor

Build artifacts:

Name Link
Output files cornucopia-build-files.10842a27ef68c3619cbeb5432b136ee8415d25d2.zip

Translation Check Report

The following sentences/tags have issues in the translations:

Spanish

File: eop-cards-5.0-es.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00105, T00140

Russian

File: eop-cards-5.0-ru.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00001, T00003, T00004, T00090, T00100, T00105, T00210, T00220, T00230, T00240, T00250, T00260, T00270, T00280, T00290, T00300, T00310, T00320, T00330, T00340, T00350, T00360, T00370, T00380, T00390, T00400, T00410, T00420, T00430, T00440, T00450, T00460, T00470, T00480

Russian

File: mobileapp-cards-1.0-ru.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00020, T00120, T00130, T00220, T00240, T00310, T00311, T00320, T00330, T00340, T00350, T00360, T00370, T00380, T00390, T00400, T00510, T00520, T00530, T00610, T01010, T01070, T01160, T01170, T01180, T01200, T01210, T01220, T01301, T01411, T02680, T02690, T02700, T02710, T02720, T02730, T02780, T03010

Hindi

File: mobileapp-cards-1.1-hi.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090

Russian

File: mobileapp-cards-1.1-ru.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00020, T00090, T00120, T00130, T00220, T00240, T00310, T00311, T00320, T00330, T00340, T00350, T00360, T00370, T00380, T00390, T00400, T00510, T00520, T00530, T00610, T01010, T01070, T01160, T01170, T01180, T01200, T01210, T01220, T01301, T01411, T02680, T02690, T02700, T02710, T02720, T02730, T02780, T03010

uk

File: mobileapp-cards-1.1-uk.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090

Spanish

File: webapp-cards-2.2-es.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00020, T00380, T01590, T02940, T03140, T03160, T03180, T03200, T03210, T03220, T03230, T03250, T03270, T03280, T03290, T03300, T03310, T03320, T03330, T03340, T03360, T03370, T03380, T03390, T03400, T03410, T03430, T03440, T03450, T03460, T03480, T03500, T03510, T03520, T03530, T03550, T03560, T03570, T03590, T03600, T03610, T03620, T03630, T03640, T03650, T03660, T03670, T03680, T03690, T03700, T03720, T03771, T03773, T03775, T03800, T03810, T03820, T03830, T03840, T03850, T03860, T03870, T03900, T03940, T03950

French

File: webapp-cards-2.2-fr.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00200, T01100, T03110, T03120, T03771, T03773, T03775

Hungarian

File: webapp-cards-2.2-hu.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T00005, T00161, T00162, T01301, T01311, T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00020, T00140, T00145, T00200, T00210, T00220, T00230, T00240, T00300, T00320, T00340, T00350, T00360, T00370, T00380, T00390, T00400, T00500, T00510, T00520, T00600, T00610, T00700, T00710, T00720, T00730, T00740, T00750, T00760, T00770, T00780, T00790, T00800, T00810, T00830, T00840, T00900, T00910, T00920, T01000, T01020, T01060, T01100, T01110, T01120, T01130, T01140, T01150, T01160, T01170, T01190, T01200, T01240, T01250, T01260, T01270, T01280, T01290, T01300, T01400, T01410, T01420, T01430, T01431, T01440, T01450, T01500, T01510, T01520, T01530, T01540, T01550, T01560, T01570, T01571, T01580, T01590, T01600, T01610, T01700, T01710, T01720, T01730, T01740, T01800, T01810, T01811, T01820, T01900, T01910, T01920, T01930, T01940, T01960, T01970, T01980, T02000, T02010, T02020, T02030, T02040, T02100, T02120, T02140, T02200, T02220, T02240, T02250, T02260, T02280, T02290, T02300, T02310, T02320, T02340, T02400, T02410, T02420, T02440, T02450, T02460, T02480, T02490, T02500, T02510, T02520, T02540, T02600, T02610, T02620, T02630, T02650, T02680, T02690, T02700, T02710, T02720, T02730, T02760, T02770, T02790, T02800, T02810, T02820, T02840, T02850, T02860, T02870, T02880, T02890, T02900, T02910, T02920, T02930, T02940, T02950, T02960, T02970, T02980, T02990, T03000, T03020, T03100, T03110, T03120, T03140, T03160, T03200, T03210, T03220, T03230, T03250, T03270, T03280, T03290, T03300, T03310, T03320, T03330, T03340, T03360, T03370, T03380, T03390, T03400, T03410, T03430, T03450, T03460, T03480, T03500, T03510, T03520, T03530, T03550, T03560, T03570, T03590, T03600, T03610, T03620, T03630, T03640, T03650, T03660, T03670, T03680, T03690, T03700, T03720, T03740, T03760, T03771, T03773, T03775, T03800, T03810, T03820, T03830, T03840, T03900, T03920, T03950

Italian

File: webapp-cards-2.2-it.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00380, T02940, T03250, T03771, T03773, T03775

Dutch

File: webapp-cards-2.2-nl.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00500, T03771, T03773, T03775

Norwegian

File: webapp-cards-2.2-no_nb.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00380, T01700, T03140, T03160, T03180, T03200, T03210, T03220, T03230, T03250, T03270, T03280, T03290, T03300, T03310, T03320, T03330, T03340, T03360, T03370, T03380, T03390, T03400, T03410, T03430, T03440, T03450, T03460, T03480, T03500, T03510, T03520, T03530, T03550, T03560, T03570, T03590, T03600, T03610, T03620, T03630, T03640, T03650, T03660, T03670, T03680, T03690, T03700, T03771, T03773, T03775

Portuguese (Brazil)

File: webapp-cards-2.2-pt_br.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00380, T02250, T02290, T02310, T02450, T02490, T02510, T03100, T03110, T03120, T03140, T03160, T03180, T03200, T03210, T03220, T03230, T03250, T03270, T03280, T03290, T03300, T03310, T03320, T03330, T03340, T03360, T03370, T03380, T03390, T03400, T03410, T03430, T03440, T03450, T03460, T03480, T03500, T03510, T03520, T03530, T03550, T03560, T03570, T03590, T03600, T03610, T03620, T03630, T03640, T03650, T03660, T03670, T03680, T03690, T03700, T03720, T03771, T03773, T03775

Portuguese (Portugal)

File: webapp-cards-2.2-pt_pt.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00380, T03771, T03773, T03775

Russian

File: webapp-cards-2.2-ru.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00380, T01411, T03771, T03773, T03775

Spanish

File: webapp-cards-3.0-es.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00380, T02940

French

File: webapp-cards-3.0-fr.yaml

Missing Tags

The following tags are present in the English version but missing in this translation:

T01411

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00200, T01100, T03110, T03120

Hindi

File: webapp-cards-3.0-hi.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090

Italian

File: webapp-cards-3.0-it.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00380, T02940, T03250

Dutch

File: webapp-cards-3.0-nl.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00380, T02270, T02290, T03250

Norwegian

File: webapp-cards-3.0-no_nb.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00380, T01700, T03140, T03160, T03180, T03200, T03210, T03220, T03230, T03250, T03270, T03280, T03290, T03300, T03310, T03320, T03330, T03340, T03360, T03370, T03380, T03390, T03400, T03410, T03430, T03440, T03450, T03460, T03480, T03500, T03510, T03520, T03530, T03550, T03560, T03570, T03590, T03600, T03610, T03620, T03630, T03640, T03650, T03660, T03670, T03680, T03690, T03700

Portuguese (Brazil)

File: webapp-cards-3.0-pt_br.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00330, T00340, T00350, T00360, T00370, T00380, T02240, T02260, T02280, T02300, T02320, T02340, T02440, T02460, T02480, T02500, T02520, T02540

Portuguese (Portugal)

File: webapp-cards-3.0-pt_pt.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00380

Russian

File: webapp-cards-3.0-ru.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090, T00380

uk

File: webapp-cards-3.0-uk.yaml

Untranslated Tags

The following tags have identical text to English (not translated):

T00090

@sydseter

Copy link
Copy Markdown
Collaborator

@prajakta128 Thank you. all commits must have a verified signature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: get_docx_document() returns truthy blank Document on missing template, silently writing empty output file

2 participants