Skip to content

Commit c1d95b5

Browse files
committed
fix school moves download test
1 parent b5d9f18 commit c1d95b5

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

mavis/test/pages/programmes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def _download_and_verify_report_headers(self, expected_headers: str):
135135
getattr(browser, "browser_type", None), "name", None
136136
)
137137

138-
# In Safari, downloaded files are not saved to disk, but instead immediately displayed in the browser
138+
# Playwrights webkit browser always opens CSVs in the browser, unlike Chromium and Firefox
139139
if browser_type_name == "webkit":
140140
self.click_continue()
141141
csv_content = self.page.locator("pre").inner_text()

mavis/test/pages/school_moves.py

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
from datetime import date
2-
from pathlib import Path
32
from typing import Optional
3+
import pandas as pd
4+
from pandas import DataFrame
5+
from io import StringIO
46

57
from ..step import step
68

@@ -67,10 +69,22 @@ def enter_date_range(
6769

6870
self.continue_button.click()
6971

70-
def confirm(self) -> Path:
71-
with self.page.expect_download() as download_info:
72+
def confirm(self) -> DataFrame:
73+
browser = getattr(self.page.context, "browser", None)
74+
browser_type_name = getattr(
75+
getattr(browser, "browser_type", None), "name", None
76+
)
77+
78+
# Playwrights webkit browser always opens CSVs in the browser, unlike Chromium and Firefox
79+
if browser_type_name == "webkit":
7280
self.confirm_button.click()
73-
return download_info.value.path()
81+
csv_content = self.page.locator("pre").inner_text()
82+
self.page.go_back()
83+
return pd.read_csv(StringIO(csv_content))
84+
else:
85+
with self.page.expect_download() as download_info:
86+
self.confirm_button.click()
87+
return pd.read_csv(download_info.value.path())
7488

7589

7690
class ReviewSchoolMovePage:

tests/test_school_moves.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import pandas
21
from playwright.sync_api import expect
32
from mavis.test.data import ClassFileMapping
43
import pytest
@@ -91,9 +90,9 @@ def test_download(
9190
):
9291
school_moves_page.click_download()
9392
download_school_moves_page.enter_date_range()
94-
path = download_school_moves_page.confirm()
93+
school_moves_csv = download_school_moves_page.confirm()
9594

96-
actual_headers = set(pandas.read_csv(path).columns)
95+
actual_headers = set(school_moves_csv.columns)
9796
expected_headers = {
9897
"NHS_REF",
9998
"SURNAME",

0 commit comments

Comments
 (0)