@@ -52,17 +52,61 @@ def describe_generate_pdf():
5252 def test_dict_payload (m_request_post , anvil ):
5353 anvil .generate_pdf ({"data" : [{"d1" : "data" }]})
5454 m_request_post .assert_called_once_with (
55- "generate-pdf" , data = {'data' : [{'d1' : 'data' }]}
55+ # Defaults to 'markdown'
56+ "generate-pdf" ,
57+ data = {'data' : [{'d1' : 'data' }], 'type' : 'markdown' },
5658 )
5759
5860 @mock .patch ('python_anvil.api.RestRequest.post' )
5961 def test_json_payload (m_request_post , anvil ):
6062 payload = """{ "data": [{ "d1": "data" }] }"""
6163 anvil .generate_pdf (payload )
6264 m_request_post .assert_called_once_with (
63- "generate-pdf" , data = {' data' : [{'d1' : ' data' }] }
65+ "generate-pdf" , data = {" data" : [{"d1" : " data" }], "type" : "markdown" }
6466 )
6567
68+ @mock .patch ('python_anvil.api.RestRequest.post' )
69+ def test_payload_html_type (m_request_post , anvil ):
70+ anvil .generate_pdf ({"data" : {"html" : "<h1>Hello</h1>" }, "type" : "html" })
71+ m_request_post .assert_called_once_with (
72+ "generate-pdf" ,
73+ data = {"data" : {"html" : "<h1>Hello</h1>" }, "type" : "html" },
74+ )
75+
76+ @mock .patch ('python_anvil.api.RestRequest.post' )
77+ def test_invalid_payload_html_payload (m_request_post , anvil ):
78+ with pytest .raises (ValueError ):
79+ anvil .generate_pdf ({"data" : {"no_html_here" : "Nope" }, "type" : "html" })
80+
81+ @mock .patch ('python_anvil.api.RestRequest.post' )
82+ def test_payload_invalid_type (m_request_post , anvil ):
83+ with pytest .raises (ValueError ):
84+ anvil .generate_pdf (
85+ {"data" : [{"d1" : "data" }], "type" : "something_invalid" }
86+ )
87+
88+ @mock .patch ('python_anvil.api.RestRequest.post' )
89+ def test_invalid_data_for_html (m_request_post , anvil ):
90+ with pytest .raises (ValueError ):
91+ anvil .generate_pdf (
92+ {
93+ # This should be a plain dict, not a list
94+ "data" : [{"d1" : "data" }],
95+ "type" : "html" ,
96+ }
97+ )
98+
99+ @mock .patch ('python_anvil.api.RestRequest.post' )
100+ def test_invalid_data_for_markdown (m_request_post , anvil ):
101+ with pytest .raises (ValueError ):
102+ anvil .generate_pdf (
103+ {
104+ # This should be a plain dict, not a list
105+ "data" : {"d1" : "data" },
106+ "type" : "markdown" ,
107+ }
108+ )
109+
66110 def describe_current_user_query ():
67111 @mock .patch ('python_anvil.api.GraphqlRequest.post' )
68112 def test_get_current_user (m_request_post , anvil ):
0 commit comments