Skip to content

Commit bbf8e01

Browse files
authored
Merge pull request #4 from carboneio/2-fix_json_check
Fix json check and add tests
2 parents 8165d55 + 64bbac6 commit bbf8e01

5 files changed

Lines changed: 35 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
### v1.0.3
2+
- Fix #2 - render function: check if the json argument is empty
13

24
### v1.0.2
35
- Add license and update setup

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Carbone Render Python SDK
2-
[![Pypi Package](https://img.shields.io/badge/pypi-1.0.2-brightgreen.svg?cacheSeconds=2592000&logo=python&style=flat-square)](https://pypi.org/project/carbone-sdk)
2+
[![Pypi Package](https://img.shields.io/badge/pypi-1.0.3-brightgreen.svg?cacheSeconds=2592000&logo=python&style=flat-square)](https://pypi.org/project/carbone-sdk)
33
[![Documentation](https://img.shields.io/badge/documentation-yes-blue.svg?style=flat-square)](./API-REFERENCE.md)
44

55
> Python SDK to use Carbone Render easily.

carbone_sdk/carbone_sdk.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def set_api_version(self, api_version = None):
8080
def render(self, file_or_template_id = None, json_data = None, payload = ""):
8181
if file_or_template_id is None:
8282
raise ValueError('Carbone SDK render error: argument is missing: file_or_template_id')
83-
if file_or_template_id is None:
83+
if json_data is None:
8484
raise ValueError('Carbone SDK render error: argument is missing: json_data')
8585
resp = None
8686
# 1 - if file_or_template_id is a template_id => render from the template_id

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="carbone-sdk",
8-
version="1.0.2",
8+
version="1.0.3",
99
author="CarboneIO",
1010
author_email="support@carbone.io",
1111
description="Carbone Render Python SDK to generate reports easily (PDF, docx, xlsx, ods, odt, ...) from a JSON",

tests/test_carbone_sdk.py

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ def test_sdk_default_values(self, csdk):
2121
def test_init_sdk_error_missing_token(self):
2222
with pytest.raises(Exception) as e:
2323
c = carbone_sdk.CarboneSDK()
24+
assert e.value.args[0] == 'CarboneSDK: "API access token" is missing'
2425

2526
def test_simple_mock_http_request(self, csdk, requests_mock):
2627
requests_mock.get(csdk._api_url + "/path", text="content")
@@ -36,6 +37,7 @@ def test_set_access_token(self, csdk):
3637
def test_set_access_token_error_missing_token(self, csdk):
3738
with pytest.raises(ValueError) as e:
3839
csdk.set_access_token()
40+
assert e.value.args[0] == 'Carbone SDK set_access_token error: argument is missing: api_token'
3941

4042
def test_set_api_version_int(self, csdk):
4143
new_version = 3
@@ -47,28 +49,35 @@ def test_set_api_version_string(self, csdk):
4749
csdk.set_api_version(new_version)
4850
assert csdk._api_headers["carbone-version"] == new_version
4951

52+
def test_set_api_version_error_missing_version(self, csdk):
53+
with pytest.raises(ValueError) as e:
54+
csdk.set_api_version()
55+
assert e.value.args[0] == 'Carbone SDK set_api_version error: argument is missing: api_version'
56+
5057
class TestRender:
5158
def test_render_a_report_error_file_missing(self, csdk):
52-
with pytest.raises(ValueError):
59+
with pytest.raises(ValueError) as e:
5360
csdk.render()
61+
assert e.value.args[0] == 'Carbone SDK render error: argument is missing: file_or_template_id'
5462

5563
def test_render_a_report_error_json_data_missing(self, csdk):
56-
with pytest.raises(ValueError):
57-
csdk.render()
64+
with pytest.raises(ValueError) as e:
65+
csdk.render("template_id")
66+
assert e.value.args[0] == 'Carbone SDK render error: argument is missing: json_data'
5867

5968
def test_render_a_report_error_from_a_non_existing_template_id(self, csdk, requests_mock):
6069
fake_template_id = "ThisTemplateIdDoesNotExist"
6170
requests_mock.post(csdk._api_url + "/render/" + fake_template_id , json={'success': False, 'error': 'Error while rendering template Error: 404 Not Found'})
62-
with pytest.raises(Exception):
63-
# should return the error "Error while rendering template Error: 404 Not Found"
71+
with pytest.raises(Exception) as e:
6472
csdk.render(fake_template_id, {"data": {"firstname": "john", "lastname": "wick"}})
73+
assert e.value.args[0] == 'Carbone SDK render error: Error while rendering template Error: 404 Not Found'
6574

6675
def test_render_a_report_error_from_a_directory(self, csdk, requests_mock):
6776
fake_template_id = "./tests"
6877
requests_mock.post(csdk._api_url + "/render/" + fake_template_id , json={'success': False, 'error': 'Error while rendering template Error: 404 Not Found'})
69-
with pytest.raises(Exception):
70-
# should return the error "failled to generate the template id"
78+
with pytest.raises(Exception) as e:
7179
csdk.render(fake_template_id, {"data": {"firstname": "john", "lastname": "wick"}})
80+
assert e.value.args[0] == 'Carbone SDK render error: failled to generate the template id'
7281

7382
def test_render_a_report_from_an_existing_template_id(self, csdk, requests_mock):
7483
template_id = "0545253258577a632a99065f0572720225f5165cc43db9515e9cef0e17b40114"
@@ -154,13 +163,14 @@ def test_add_template_with_payload(self, csdk, requests_mock):
154163
def test_add_template_error_missing_args(self, csdk):
155164
with pytest.raises(ValueError) as e:
156165
csdk.add_template()
166+
assert e.value.args[0] == 'CarboneSDK: add_template method: the argument template_file_name is missing'
157167

158168
def test_add_template_error_with_a_non_existing_file(self, csdk):
159-
with pytest.raises(FileNotFoundError) as e:
169+
with pytest.raises(FileNotFoundError):
160170
csdk.add_template("ShouldThrowAnError")
161171

162172
def test_add_template_error_with_directory(self, csdk):
163-
with pytest.raises(FileNotFoundError) as e:
173+
with pytest.raises(IsADirectoryError):
164174
csdk.add_template("../tests")
165175

166176

@@ -176,7 +186,8 @@ def test_get_template(self, csdk, requests_mock):
176186

177187
def test_get_template_error_missing_template_id(self, csdk):
178188
with pytest.raises(ValueError) as e:
179-
csdk.add_template()
189+
csdk.get_template()
190+
assert e.value.args[0] == 'Carbone SDK get_template error: argument is missing: template_id'
180191

181192
class TestDeleteTemplate:
182193
def test_delete_template(self, csdk, requests_mock):
@@ -196,6 +207,7 @@ def test_delete_template_error_already_deleted(self, csdk, requests_mock):
196207
def test_delete_template_error_missing_template_id(self, csdk):
197208
with pytest.raises(ValueError) as e:
198209
csdk.delete_template()
210+
assert e.value.args[0] == 'Carbone SDK delete_template error: argument is missing: template_id'
199211

200212
class TestRenderReport:
201213
def test_render_report(self, csdk, requests_mock):
@@ -216,10 +228,12 @@ def test_render_report(self, csdk, requests_mock):
216228
def test_render_report_error_missing_template_id(self, csdk):
217229
with pytest.raises(ValueError) as e:
218230
csdk.render_report()
231+
assert e.value.args[0] == 'Carbone SDK render_report error: argument is missing: template_id'
219232

220233
def test_render_report_error_missing_json_data(self, csdk):
221234
with pytest.raises(ValueError) as e:
222235
csdk.render_report("template_id")
236+
assert e.value.args[0] == 'Carbone SDK render_report error: argument is missing: json_data'
223237

224238
class TestGetReport:
225239
def test_get_report(self, csdk, requests_mock):
@@ -238,6 +252,7 @@ def test_get_report(self, csdk, requests_mock):
238252
def test_get_report_error_missing_render_id(self, csdk):
239253
with pytest.raises(ValueError) as e:
240254
csdk.get_report()
255+
assert e.value.args[0] == 'Carbone SDK get_report error: argument is missing: render_id'
241256

242257
class TestGenerateTemplateID:
243258
def test_generate_template_id_odt_1(self, csdk):
@@ -265,6 +280,11 @@ def test_generate_template_id_html_2_payload_1(self, csdk):
265280
res = csdk.generate_template_id(filename_html, "This is a long payload with different characters 1 *5 &*9 %$ 3%&@9 @(( 3992288282 29299 9299929")
266281
assert res == "70799b421cc9cf75d9112273a8e054c141d484eb8d5988bd006fac83e3990707"
267282

283+
def test_generate_template_id_error(self, csdk):
284+
with pytest.raises(ValueError) as e:
285+
csdk.generate_template_id()
286+
assert e.value.args[0] == 'Carbone SDK generate_template_id error: argument is missing: template_file_name'
287+
268288
class TestGetReportName:
269289
def test_get_report_name_from_header(self, csdk):
270290
expected_report_name = "01EEYYHV0ENQE07JCKW8BD2QRP.odt"

0 commit comments

Comments
 (0)