summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/screenshots.yml8
-rw-r--r--django/test/selenium.py6
2 files changed, 12 insertions, 2 deletions
diff --git a/.github/workflows/screenshots.yml b/.github/workflows/screenshots.yml
index f9f372102d..7b9db7d064 100644
--- a/.github/workflows/screenshots.yml
+++ b/.github/workflows/screenshots.yml
@@ -47,8 +47,14 @@ jobs:
- name: Optimize screenshots
run: oxipng --interlace=0 --opt=4 --strip=safe tests/screenshots/*.png
+ - name: Organize screenshots
+ run: |
+ mkdir --parents "/tmp/screenshots/${{ github.event.pull_request.head.sha }}"
+ mv tests/screenshots/* "/tmp/screenshots/${{ github.event.pull_request.head.sha }}/"
+
- name: Upload screenshots
uses: actions/upload-artifact@v4
with:
name: screenshots-${{ github.event.pull_request.head.sha }}
- path: tests/screenshots/
+ path: /tmp/screenshots/
+ if-no-files-found: error
diff --git a/django/test/selenium.py b/django/test/selenium.py
index eecfd87bf1..2840afb9ec 100644
--- a/django/test/selenium.py
+++ b/django/test/selenium.py
@@ -142,6 +142,8 @@ class SeleniumTestCase(LiveServerTestCase, metaclass=SeleniumTestCaseBase):
test.__name__ = f"{name}_{screenshot_case}"
test.__qualname__ = f"{test.__qualname__}_{screenshot_case}"
+ test._screenshot_name = name
+ test._screenshot_case = screenshot_case
setattr(cls, test.__name__, test)
@classproperty
@@ -214,7 +216,9 @@ class SeleniumTestCase(LiveServerTestCase, metaclass=SeleniumTestCaseBase):
def take_screenshot(self, name):
if not self.screenshots:
return
- path = Path.cwd() / "screenshots" / f"{self._testMethodName}-{name}.png"
+ test = getattr(self, self._testMethodName)
+ filename = f"{test._screenshot_name}--{name}--{test._screenshot_case}.png"
+ path = Path.cwd() / "screenshots" / filename
path.parent.mkdir(exist_ok=True, parents=True)
self.selenium.save_screenshot(path)