|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
| 3 | +import os |
3 | 4 | import re |
4 | 5 |
|
| 6 | +from onegov.org.models import ImageFileCollection |
| 7 | + |
5 | 8 | from tests.shared.utils import create_image |
6 | 9 | from webtest import Upload |
7 | 10 |
|
8 | | - |
9 | 11 | from typing import TYPE_CHECKING |
| 12 | + |
10 | 13 | if TYPE_CHECKING: |
11 | 14 | from .conftest import Client |
12 | 15 |
|
@@ -54,3 +57,44 @@ def test_manage_album(client: Client) -> None: |
54 | 57 |
|
55 | 58 | album = albums.click("Comicon 2016") |
56 | 59 | assert "This is an alt text" in album |
| 60 | + |
| 61 | + |
| 62 | +def test_image_selection(client: Client) -> None: |
| 63 | + client.login_admin() |
| 64 | + |
| 65 | + number_of_images = 3 |
| 66 | + |
| 67 | + albums = client.get('/photoalbums') |
| 68 | + new = albums.click('Fotoalbum') |
| 69 | + new.form['title'] = "Vacation Destinations 2026" |
| 70 | + new.form.submit() |
| 71 | + |
| 72 | + album = client.get('/photoalbums').click("Vacation Destinations 2026") |
| 73 | + for i in range(number_of_images): |
| 74 | + images = albums.click("Bilder verwalten") |
| 75 | + images.form['file'] = [Upload(f'image_{i}.jpg', create_image().read())] |
| 76 | + images.form.submit() |
| 77 | + |
| 78 | + # select all images |
| 79 | + select = album.click("Bilder auswählen") |
| 80 | + select.form[tuple(select.form.fields.keys())[1]] = True |
| 81 | + select.form[tuple(select.form.fields.keys())[2]] = True |
| 82 | + select.form[tuple(select.form.fields.keys())[3]] = True |
| 83 | + select.form.submit() |
| 84 | + |
| 85 | + images = ImageFileCollection(client.app.session()).query().all() |
| 86 | + assert len(images) == number_of_images |
| 87 | + images = {(i.id, i.name) for i in images} |
| 88 | + print(images) |
| 89 | + album = client.get('/photoalbums').click("Vacation Destinations 2026") |
| 90 | + for i in images: |
| 91 | + assert i[0] in album, '{} not found in album'.format(i) |
| 92 | + |
| 93 | + # switch to grid mode |
| 94 | + settings = album.click("Bearbeiten") |
| 95 | + settings.form['view'] = 'grid' |
| 96 | + settings.form.submit() |
| 97 | + |
| 98 | + album = client.get('/photoalbums').click("Vacation Destinations 2026") |
| 99 | + for i in images: |
| 100 | + assert i[0] in album, '{} not found in album'.format(i) |
0 commit comments