Skip to content

Commit 6a300ec

Browse files
committed
fix: use tmp_path fixture in all download tests to avoid cwd pollution
1 parent 31d0dbe commit 6a300ec

3 files changed

Lines changed: 24 additions & 24 deletions

File tree

test/test_datasource.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -608,15 +608,14 @@ def test_delete(server) -> None:
608608
server.datasources.delete("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb")
609609

610610

611-
def test_download(server) -> None:
611+
def test_download(server, tmp_path) -> None:
612612
with requests_mock.mock() as m:
613613
m.get(
614614
server.datasources.baseurl + "/9dbd2263-16b5-46e1-9c43-a76bb8ab65fb/content",
615615
headers={"Content-Disposition": 'name="tableau_datasource"; filename="Sample datasource.tds"'},
616616
)
617-
file_path = server.datasources.download("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb")
617+
file_path = server.datasources.download("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", filepath=tmp_path)
618618
assert os.path.exists(file_path)
619-
os.remove(file_path)
620619

621620

622621
def test_download_object(server) -> None:
@@ -630,21 +629,20 @@ def test_download_object(server) -> None:
630629
assert isinstance(file_path, BytesIO)
631630

632631

633-
def test_download_sanitizes_name(server) -> None:
632+
def test_download_sanitizes_name(server, tmp_path) -> None:
634633
filename = "Name,With,Commas.tds"
635634
disposition = f'name="tableau_workbook"; filename="{filename}"'
636635
with requests_mock.mock() as m:
637636
m.get(
638637
server.datasources.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2/content",
639638
headers={"Content-Disposition": disposition},
640639
)
641-
file_path = server.datasources.download("1f951daf-4061-451a-9df1-69a8062664f2")
640+
file_path = server.datasources.download("1f951daf-4061-451a-9df1-69a8062664f2", filepath=tmp_path)
642641
assert os.path.basename(file_path) == "NameWithCommas.tds"
643642
assert os.path.exists(file_path)
644-
os.remove(file_path)
645643

646644

647-
def test_download_extract_only(server) -> None:
645+
def test_download_extract_only(server, tmp_path) -> None:
648646
# Pretend we're 2.5 for 'extract_only'
649647
server.version = "2.5"
650648

@@ -654,12 +652,13 @@ def test_download_extract_only(server) -> None:
654652
headers={"Content-Disposition": 'name="tableau_datasource"; filename="Sample datasource.tds"'},
655653
complete_qs=True,
656654
)
657-
file_path = server.datasources.download("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", include_extract=False)
655+
file_path = server.datasources.download(
656+
"9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", include_extract=False, filepath=tmp_path
657+
)
658658
assert os.path.exists(file_path)
659-
os.remove(file_path)
660659

661660

662-
def test_download_no_extract_emits_deprecation_warning(server) -> None:
661+
def test_download_no_extract_emits_deprecation_warning(server, tmp_path) -> None:
663662
"""no_extract=True should emit a DeprecationWarning and map to includeExtract=False."""
664663
server.version = "2.5"
665664

@@ -670,9 +669,10 @@ def test_download_no_extract_emits_deprecation_warning(server) -> None:
670669
complete_qs=True,
671670
)
672671
with pytest.warns(DeprecationWarning, match="deprecated and will be removed"):
673-
file_path = server.datasources.download("9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", no_extract=True)
672+
file_path = server.datasources.download(
673+
"9dbd2263-16b5-46e1-9c43-a76bb8ab65fb", no_extract=True, filepath=tmp_path
674+
)
674675
assert os.path.exists(file_path)
675-
os.remove(file_path)
676676

677677

678678
def test_update_missing_id(server) -> None:

test/test_flow.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,14 @@ def server():
3333
return server
3434

3535

36-
def test_download(server: TSC.Server) -> None:
36+
def test_download(server: TSC.Server, tmp_path: Path) -> None:
3737
with requests_mock.mock() as m:
3838
m.get(
3939
server.flows.baseurl + "/587daa37-b84d-4400-a9a2-aa90e0be7837/content",
4040
headers={"Content-Disposition": 'name="tableau_flow"; filename="FlowOne.tfl"'},
4141
)
42-
file_path = server.flows.download("587daa37-b84d-4400-a9a2-aa90e0be7837")
42+
file_path = server.flows.download("587daa37-b84d-4400-a9a2-aa90e0be7837", filepath=tmp_path)
4343
assert os.path.exists(file_path) is True
44-
os.remove(file_path)
4544

4645

4746
def test_download_object(server: TSC.Server) -> None:

test/test_workbook.py

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -339,21 +339,20 @@ def test_download_object(server: TSC.Server) -> None:
339339
assert isinstance(file_path, BytesIO)
340340

341341

342-
def test_download_sanitizes_name(server: TSC.Server) -> None:
342+
def test_download_sanitizes_name(server: TSC.Server, tmp_path: Path) -> None:
343343
filename = "Name,With,Commas.twbx"
344344
disposition = f'name="tableau_workbook"; filename="{filename}"'
345345
with requests_mock.mock() as m:
346346
m.get(
347347
server.workbooks.baseurl + "/1f951daf-4061-451a-9df1-69a8062664f2/content",
348348
headers={"Content-Disposition": disposition},
349349
)
350-
file_path = server.workbooks.download("1f951daf-4061-451a-9df1-69a8062664f2")
350+
file_path = server.workbooks.download("1f951daf-4061-451a-9df1-69a8062664f2", filepath=tmp_path)
351351
assert os.path.basename(file_path) == "NameWithCommas.twbx"
352352
assert os.path.exists(file_path)
353-
os.remove(file_path)
354353

355354

356-
def test_download_extract_only(server: TSC.Server) -> None:
355+
def test_download_extract_only(server: TSC.Server, tmp_path: Path) -> None:
357356
# Pretend we're 2.5 for 'extract_only'
358357
server.version = "2.5"
359358

@@ -364,12 +363,13 @@ def test_download_extract_only(server: TSC.Server) -> None:
364363
complete_qs=True,
365364
)
366365
# Technically this shouldn't download a twbx, but we are interested in the qs, not the file
367-
file_path = server.workbooks.download("1f951daf-4061-451a-9df1-69a8062664f2", include_extract=False)
366+
file_path = server.workbooks.download(
367+
"1f951daf-4061-451a-9df1-69a8062664f2", include_extract=False, filepath=tmp_path
368+
)
368369
assert os.path.exists(file_path)
369-
os.remove(file_path)
370370

371371

372-
def test_download_no_extract_emits_deprecation_warning(server: TSC.Server) -> None:
372+
def test_download_no_extract_emits_deprecation_warning(server: TSC.Server, tmp_path: Path) -> None:
373373
"""no_extract=True should emit a DeprecationWarning and map to includeExtract=False."""
374374
server.version = "2.5"
375375

@@ -380,9 +380,10 @@ def test_download_no_extract_emits_deprecation_warning(server: TSC.Server) -> No
380380
complete_qs=True,
381381
)
382382
with pytest.warns(DeprecationWarning, match="deprecated and will be removed"):
383-
file_path = server.workbooks.download("1f951daf-4061-451a-9df1-69a8062664f2", no_extract=True)
383+
file_path = server.workbooks.download(
384+
"1f951daf-4061-451a-9df1-69a8062664f2", no_extract=True, filepath=tmp_path
385+
)
384386
assert os.path.exists(file_path)
385-
os.remove(file_path)
386387

387388

388389
def test_download_missing_id(server: TSC.Server) -> None:

0 commit comments

Comments
 (0)