Daily messages across all services
-
You have sent {{ 5000 - daily_global_messages_remaining }} of your 5000 daily messages allowance.
+
You have sent {{ global_message_limit - daily_global_messages_remaining }} of your {{ global_message_limit }} daily messages allowance.
You have {{ daily_global_messages_remaining }} messages remaining.
Text messages
diff --git a/gulpfile.js b/gulpfile.js
index f26ef6f39..541c39cf4 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -126,6 +126,7 @@ const javascripts = () => {
paths.src + 'javascripts/errorBanner.js',
paths.src + 'javascripts/homepage.js',
paths.src + 'javascripts/timeoutPopup.js',
+ paths.src + 'javascripts/date.js',
paths.src + 'javascripts/main.js',
])
.pipe(plugins.prettyerror())
diff --git a/poetry.lock b/poetry.lock
index 68a247592..ff50d9b19 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -625,13 +625,13 @@ six = ">=1.10.0"
[[package]]
name = "exceptiongroup"
-version = "1.1.3"
+version = "1.2.0"
description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
files = [
- {file = "exceptiongroup-1.1.3-py3-none-any.whl", hash = "sha256:343280667a4585d195ca1cf9cef84a4e178c4b6cf2274caef9859782b567d5e3"},
- {file = "exceptiongroup-1.1.3.tar.gz", hash = "sha256:097acd85d473d75af5bb98e41b61ff7fe35efe6675e4f9370ec6ec5126d160e9"},
+ {file = "exceptiongroup-1.2.0-py3-none-any.whl", hash = "sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14"},
+ {file = "exceptiongroup-1.2.0.tar.gz", hash = "sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68"},
]
[package.extras]
@@ -1054,13 +1054,13 @@ lxml = ["lxml"]
[[package]]
name = "humanize"
-version = "4.8.0"
+version = "4.9.0"
description = "Python humanize utilities"
optional = false
python-versions = ">=3.8"
files = [
- {file = "humanize-4.8.0-py3-none-any.whl", hash = "sha256:8bc9e2bb9315e61ec06bf690151ae35aeb65651ab091266941edf97c90836404"},
- {file = "humanize-4.8.0.tar.gz", hash = "sha256:9783373bf1eec713a770ecaa7c2d7a7902c98398009dfa3d8a2df91eec9311e8"},
+ {file = "humanize-4.9.0-py3-none-any.whl", hash = "sha256:ce284a76d5b1377fd8836733b983bfb0b76f1aa1c090de2566fcf008d7f6ab16"},
+ {file = "humanize-4.9.0.tar.gz", hash = "sha256:582a265c931c683a7e9b8ed9559089dea7edcf6cc95be39a3cbc2c5d5ac2bcfa"},
]
[package.extras]
@@ -2265,13 +2265,13 @@ python-slugify = ">=6.0.0,<9.0.0"
[[package]]
name = "pytest-xdist"
-version = "3.4.0"
+version = "3.5.0"
description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs"
optional = false
python-versions = ">=3.7"
files = [
- {file = "pytest-xdist-3.4.0.tar.gz", hash = "sha256:3a94a931dd9e268e0b871a877d09fe2efb6175c2c23d60d56a6001359002b832"},
- {file = "pytest_xdist-3.4.0-py3-none-any.whl", hash = "sha256:e513118bf787677a427e025606f55e95937565e06dfaac8d87f55301e57ae607"},
+ {file = "pytest-xdist-3.5.0.tar.gz", hash = "sha256:cbb36f3d67e0c478baa57fa4edc8843887e0f6cfc42d677530a36d7472b32d8a"},
+ {file = "pytest_xdist-3.5.0-py3-none-any.whl", hash = "sha256:d075629c7e00b611df89f490a5063944bee7a4362a5ff11c7cc7824a03dfce24"},
]
[package.dependencies]
@@ -2970,4 +2970,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
[metadata]
lock-version = "2.0"
python-versions = ">=3.9,<3.12"
-content-hash = "4a38fa6c01f64c2e813d2e65aa22334357fe8785fc76c2008668ed9eab7a27de"
+content-hash = "f49ee7dbab2abe9884ac8576ebe3b654d5ba7754249908ccb5c50e05c2629666"
diff --git a/pyproject.toml b/pyproject.toml
index 661af4e57..f325a2212 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -9,7 +9,7 @@ readme = "README.md"
python = ">=3.9,<3.12"
ago = "~=0.0.95"
blinker = "~=1.7"
-exceptiongroup = "==1.1.3"
+exceptiongroup = "==1.2.0"
flask = "~=2.3"
flask-basicauth = "~=0.2"
flask-login = "^0.6"
@@ -18,7 +18,7 @@ flask-wtf = "^1.2"
govuk-bank-holidays = "==0.13"
govuk-frontend-jinja = {git = "https://github.com/alphagov/govuk-frontend-jinja.git", tag = "v0.5.8-alpha"}
gunicorn = {version = "==21.2.0", extras = ["eventlet"]}
-humanize = "~=4.8"
+humanize = "~=4.9"
itsdangerous = "~=2.1"
jinja2 = "~=3.1"
newrelic = "*"
@@ -56,7 +56,7 @@ pytest = "^7.4.3"
pytest-env = "^1.1.1"
pytest-mock = "^3.12.0"
pytest-playwright = "^0.4.3"
-pytest-xdist = "^3.4.0"
+pytest-xdist = "^3.5.0"
radon = "^6.0.1"
requests-mock = "^1.11.0"
vulture = "^2.10"
diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py
index f0e07f105..031bc0316 100644
--- a/tests/app/main/views/test_dashboard.py
+++ b/tests/app/main/views/test_dashboard.py
@@ -1517,6 +1517,7 @@ def test_breadcrumb_shows_if_service_is_suspended(
],
)
def test_service_dashboard_shows_usage(
+ mocker,
client_request,
service_one,
mock_get_service_templates,
@@ -1526,18 +1527,22 @@ def test_service_dashboard_shows_usage(
mock_get_free_sms_fragment_limit,
permissions,
):
+ mocker.patch(
+ "app.service_api_client.get_global_notification_count",
+ return_value={
+ "count": 500,
+ },
+ )
+
service_one["permissions"] = permissions
page = client_request.get("main.service_dashboard", service_id=SERVICE_ONE_ID)
- assert normalize_spaces(page.select_one("[data-key=usage]").text) == (
- "Daily Usage Remaining "
- "40,000 "
- "$29.85 "
- "spent on text messages"
- # Disabled for pilot
- # '0 '
- # 'email disabled during SMS pilot'
- )
+ table_rows = page.find_all("tbody")[0].find_all("tr")
+
+ assert len(table_rows) == 1
+
+ assert "500" in table_rows[0].find_all("td")[0].text
+ assert "9500" in table_rows[0].find_all("td")[1].text
def test_service_dashboard_shows_free_allowance(
@@ -1566,4 +1571,4 @@ def test_service_dashboard_shows_free_allowance(
usage_text = normalize_spaces(page.select_one("[data-key=usage]").text)
assert "spent on text messages" not in usage_text
- assert "Daily Usage Remaining -209,000 249,000" in usage_text
+ assert "Daily Usage Remaining 1,000 249,000" in usage_text