Skip to content

Commit 6159933

Browse files
authored
Merge pull request #437 from NHSDigital/add-option-to-use-token
Add option to use token
2 parents 661aeb2 + 3420087 commit 6159933

File tree

6 files changed

+38
-14
lines changed

6 files changed

+38
-14
lines changed

.env.generic

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
1+
PROGRAMMES_ENABLED=HPV,MENACWY,TD_IPV,FLU
12
BASE_URL=https://qa.mavistesting.com
3+
4+
# provide either a token or a username/password pair
25
BASIC_AUTH_USERNAME=
36
BASIC_AUTH_PASSWORD=
4-
PROGRAMMES_ENABLED=HPV,MENACWY,TD_IPV,FLU
7+
8+
BASIC_AUTH_TOKEN=

.github/workflows/functional.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ jobs:
5050
env:
5151
BASE_URL: ${{ vars.BASE_URL }}
5252
PROGRAMMES_ENABLED: ${{ vars.PROGRAMMES_ENABLED }}
53-
BASIC_AUTH_PASSWORD: ${{ secrets.BASIC_AUTH_PASSWORD }}
54-
BASIC_AUTH_USERNAME: ${{ secrets.BASIC_AUTH_USERNAME }}
53+
BASIC_AUTH_TOKEN: ${{ secrets.HTTP_AUTH_TOKEN_FOR_TESTS }}
5554

5655
- name: Generate Allure report
5756
if: always()

.github/workflows/functional_selected_device.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ jobs:
7272
env:
7373
BASE_URL: ${{ steps.set-variables.outputs.environment }}
7474
PROGRAMMES_ENABLED: ${{ steps.set-variables.outputs.programmes }}
75-
BASIC_AUTH_PASSWORD: ${{ secrets.BASIC_AUTH_PASSWORD }}
76-
BASIC_AUTH_USERNAME: ${{ secrets.BASIC_AUTH_USERNAME }}
75+
BASIC_AUTH_TOKEN: ${{ secrets.HTTP_AUTH_TOKEN_FOR_TESTS }}
7776

7877
- name: Generate Allure report
7978
if: always() && steps.set-variables.outputs.deploy_report == 'true'

mavis/test/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
archive_batch_page,
66
archive_consent_response_page,
77
base_url,
8-
basic_auth,
8+
basic_auth_credentials,
9+
basic_auth_token,
910
browser_context_args,
1011
browser_type,
1112
children,
@@ -52,7 +53,8 @@
5253
"archive_batch_page",
5354
"archive_consent_response_page",
5455
"base_url",
55-
"basic_auth",
56+
"basic_auth_credentials",
57+
"basic_auth_token",
5658
"browser_context_args",
5759
"browser_type",
5860
"children",

mavis/test/fixtures/__init__.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,13 @@
4343
unmatched_consent_responses_page,
4444
vaccines_page,
4545
)
46-
from .playwright import base_url, basic_auth, browser_context_args, browser_type
46+
from .playwright import (
47+
base_url,
48+
basic_auth_credentials,
49+
basic_auth_token,
50+
browser_context_args,
51+
browser_type,
52+
)
4753

4854
__all__ = [
4955
"add_vaccine_batch",
@@ -52,7 +58,8 @@
5258
"archive_batch_page",
5359
"archive_consent_response_page",
5460
"base_url",
55-
"basic_auth",
61+
"basic_auth_credentials",
62+
"basic_auth_token",
5663
"browser_context_args",
5764
"browser_type",
5865
"children_page",

mavis/test/fixtures/playwright.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,18 @@ def base_url() -> str:
1111

1212

1313
@pytest.fixture(scope="session")
14-
def basic_auth() -> dict[str, str]:
14+
def basic_auth_credentials() -> dict[str | None, str | None]:
1515
return {
16-
"username": os.environ["BASIC_AUTH_USERNAME"],
17-
"password": os.environ["BASIC_AUTH_PASSWORD"],
16+
"username": os.environ.get("BASIC_AUTH_USERNAME"),
17+
"password": os.environ.get("BASIC_AUTH_PASSWORD"),
1818
}
1919

2020

21+
@pytest.fixture(scope="session")
22+
def basic_auth_token() -> str | None:
23+
return os.environ.get("BASIC_AUTH_TOKEN")
24+
25+
2126
@pytest.fixture(scope="session")
2227
def browser_type(playwright: Playwright, device: Optional[str]) -> BrowserType:
2328
device = device or "Desktop Chrome"
@@ -26,5 +31,13 @@ def browser_type(playwright: Playwright, device: Optional[str]) -> BrowserType:
2631

2732

2833
@pytest.fixture(scope="session")
29-
def browser_context_args(browser_context_args, basic_auth):
30-
return {**browser_context_args, "http_credentials": basic_auth}
34+
def browser_context_args(
35+
browser_context_args, basic_auth_credentials, basic_auth_token
36+
) -> dict:
37+
if basic_auth_token:
38+
return {
39+
**browser_context_args,
40+
"extra_http_headers": {"Authorization": f"Basic {basic_auth_token}"},
41+
}
42+
43+
return {**browser_context_args, "http_credentials": basic_auth_credentials}

0 commit comments

Comments
 (0)