File: take_screenshots.sh

package info (click to toggle)
python-django-ordered-model 3.7.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 592 kB
  • sloc: python: 2,139; sh: 38; makefile: 11
file content (46 lines) | stat: -rwxr-xr-x 1,505 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# requires ubuntu
# sudo apt install cutycapt xvfb

set -x

# https://stackoverflow.com/questions/24390488/django-admin-without-authentication
# https://askubuntu.com/questions/75058/how-can-i-take-a-full-page-screenshot-of-a-webpage-from-the-command-line

# delete test DB if it exists
rm -f testdb
rm -Rf tests/staticfiles
mkdir -p tests/migrations tests/staticfiles
touch tests/migrations/__init__.py
mkdir -p static
killall django-admin

function djangoadmin() {
    django-admin $1 --pythonpath=. --settings=tests.settings --skip-checks $2
}
djangoadmin "makemigrations"
djangoadmin "migrate"
# requires Django > 3.0
DJANGO_SUPERUSER_PASSWORD=password DJANGO_SUPERUSER_EMAIL="x@test.com" DJANGO_SUPERUSER_USERNAME=admin \
    djangoadmin "createsuperuser" "--no-input"
djangoadmin "collectstatic"

# to refresh sample data, use runserver then this export command
# django-admin dumpdata --pythonpath=. --settings=tests.settings tests --output tests/fixtures/screenshot-sample-data.json --indent 4

djangoadmin "loaddata" "screenshot-sample-data"
django-admin runserver --pythonpath=. --settings=tests.settings_autoauth 7000 &
sleep 2

function capture() {
    xvfb-run --server-args="-screen 0, 1024x768x24" cutycapt --url=http://localhost:7000/$1 --out=static/$2
}
capture "admin/tests/item/" "items.png"
capture "admin/tests/pizza/1/change/" "pizza.png"
capture "admin/tests/pizzaproxy/1/change/" "pizza-stacked.png"

sleep 1
killall django-admin
rm -Rf tests/migrations
rm -Rf tests/staticfiles