Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# general dev/ide files
*.log
*.log.*
*.vscode
.idea
*.DS_Store
Expand Down Expand Up @@ -28,16 +29,21 @@ workon/
pytest.xml

*.txt

# e2e test output
test-output/

# content
# todo probably want to add a workbook and ds in /res for getting started easily
*.pdf
*.png
*.html
# *.twbx
*.csv
*.twbx
*.tdsx
# *.hyper
# *.twb
# *.twbr
# *.tdsx
**/credentials.py
# exceptions
!tests/assets/
Expand Down
29 changes: 18 additions & 11 deletions tests/e2e/online_tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ def _env_bool(name: str, default: bool = False) -> bool:

default_project_name = "Personal Work" # not unique, has to exist already when you run random test cases

OUTPUT_DIR = "test-output"
os.makedirs(OUTPUT_DIR, exist_ok=True)


class TestAssets:

Expand Down Expand Up @@ -210,15 +213,15 @@ def _export_view(wb_name_on_server, sheet_name, export_type, filename=None, addi
def _get_workbook(server_file):
command = "get"
server_file = "/workbooks/" + server_file
arguments = [command, server_file, "-f", "get_workbook.twbx"]
arguments = [command, server_file, "-f", os.path.join(OUTPUT_DIR, "get_workbook.twbx")]
_test_command(arguments)
os.path.exists("get_workbook.twbx")

@staticmethod
def _get_datasource(server_file):
command = "get"
server_file = "/datasources/" + server_file
arguments = [command, server_file]
out_file = os.path.join(OUTPUT_DIR, os.path.basename(server_file))
arguments = [command, server_file, "-f", out_file]
_test_command(arguments)

@staticmethod
Expand Down Expand Up @@ -443,9 +446,13 @@ def test_view_get_png_sizes(self):

TabcmdCall._get_view(wb_name_on_server, sheet_name, "get_view_default_size.png")
url_params = "?:size=100,200"
TabcmdCall._get_view(wb_name_on_server, sheet_name + url_params, "get_view_sized_sm.png")
TabcmdCall._get_view(
wb_name_on_server, sheet_name + url_params, os.path.join(OUTPUT_DIR, "get_view_sized_sm.png")
)
url_params = "?:size=500,700"
TabcmdCall._get_view(wb_name_on_server, sheet_name + url_params, "get_view_sized_LARGE.png")
TabcmdCall._get_view(
wb_name_on_server, sheet_name + url_params, os.path.join(OUTPUT_DIR, "get_view_sized_LARGE.png")
)

@pytest.mark.order(11)
def test_view_get_csv(self):
Expand Down Expand Up @@ -516,39 +523,39 @@ def test_export_wb_filters(self):
sheet_name = TestAssets.TWBX_WITH_EXTRACT_SHEET
friendly_name = wb_name_on_server + "/" + sheet_name
filters = ["--filter", "Product Type=Tea", "--fullpdf", "--pagelayout", "landscape"]
TabcmdCall._export_wb(friendly_name, "filter_a_wb_to_tea_and_two_pages.pdf", filters)
TabcmdCall._export_wb(friendly_name, os.path.join(OUTPUT_DIR, "filter_a_wb_to_tea_and_two_pages.pdf"), filters)
# NOTE: this test needs a visual check on the returned pdf to confirm the expected appearance

@pytest.mark.order(19)
def test_export_wb_pdf(self):
wb_name_on_server = TestAssets.get_publishable_name(TestAssets.TWBX_FILE_WITH_EXTRACT)
friendly_name = wb_name_on_server + "/" + TestAssets.TWBX_WITH_EXTRACT_SHEET
filename = "exported_wb.pdf"
filename = os.path.join(OUTPUT_DIR, "exported_wb.pdf")
TabcmdCall._export_wb(friendly_name, filename)

@pytest.mark.order(19)
def test_export_data_csv(self):
wb_name_on_server = TestAssets.get_publishable_name(TestAssets.TWBX_FILE_WITH_EXTRACT)
sheet_name = TestAssets.TWBX_WITH_EXTRACT_SHEET
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--csv", "exported_data.csv")
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--csv", os.path.join(OUTPUT_DIR, "exported_data.csv"))

@pytest.mark.order(19)
def test_export_view_png(self):
wb_name_on_server = TestAssets.get_publishable_name(TestAssets.TWBX_FILE_WITH_EXTRACT)
sheet_name = TestAssets.TWBX_WITH_EXTRACT_SHEET
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--png", "export_view.png")
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--png", os.path.join(OUTPUT_DIR, "export_view.png"))

@pytest.mark.order(19)
def test_export_view_pdf(self):
wb_name_on_server = TestAssets.get_publishable_name(TestAssets.TWBX_FILE_WITH_EXTRACT)
sheet_name = TestAssets.TWBX_WITH_EXTRACT_SHEET
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--pdf", "export_view_pdf.pdf")
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--pdf", os.path.join(OUTPUT_DIR, "export_view_pdf.pdf"))

@pytest.mark.order(19)
def test_export_view_filtered(self):
wb_name_on_server = TestAssets.get_publishable_name(TestAssets.TWBX_FILE_WITH_EXTRACT)
sheet_name = TestAssets.TWBX_WITH_EXTRACT_SHEET
filename = "view_with_filters.pdf"
filename = os.path.join(OUTPUT_DIR, "view_with_filters.pdf")

filters = ["--filter", "Product Type=Tea"]
TabcmdCall._export_view(wb_name_on_server, sheet_name, "--pdf", filename, filters)
Expand Down
Loading