Coverage for polar/email/react.py: 44%

12 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 16:17 +0000

1import subprocess 1a

2from typing import TYPE_CHECKING 1a

3 

4from polar.config import settings 1a

5 

6if TYPE_CHECKING: 6 ↛ 7line 6 didn't jump to line 7 because the condition on line 6 was never true1a

7 from .schemas import Email 

8 

9 

10def render_email_template(email: "Email") -> str: 1a

11 process = subprocess.Popen( 

12 [ 

13 settings.EMAIL_RENDERER_BINARY_PATH, 

14 email.template, 

15 email.props.model_dump_json(), 

16 ], 

17 stdout=subprocess.PIPE, 

18 stderr=subprocess.PIPE, 

19 ) 

20 stdout, stderr = process.communicate() 

21 if process.returncode != 0: 

22 raise Exception(f"Error in react-email process: {stderr.decode('utf-8')}") 

23 return stdout.decode("utf-8") 

24 

25 

26__all__ = ["render_email_template"] 1a