Skip to content

Commit 0ef08c0

Browse files
committed
pytest simple tests, disable screenshots in tests
1 parent d3666a3 commit 0ef08c0

File tree

4 files changed

+146
-4
lines changed

4 files changed

+146
-4
lines changed

django/Makefile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,12 @@ migrate:
2929
$(DOCKER_EXEC) python3 manage.py migrate
3030
make collectstatic
3131

32+
run-tests:
33+
$(DOCKER_EXEC) DJANGO_SETTINGS_MODULE=main.settings_tests pytest --create-db
34+
35+
run-tests-dev:
36+
$(DOCKER_EXEC) DJANGO_SETTINGS_MODULE=main.settings_tests pytest --reuse-db -vvv --nomigrations
37+
3238
delete-gemeinden-django:
3339
$(DOCKER_EXEC) python3 manage.py shell --command="from gsmap.models import Municipality;Municipality.objects.all().delete()"
3440

django/gsmap/models.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from django.contrib.postgres import fields as pg_fields
1111
from django.contrib.sites.models import Site
1212
from django.utils.html import format_html
13+
from django.conf import settings
1314
from sortedm2m.fields import SortedManyToManyField
1415
from sorl.thumbnail import ImageField
1516
from gsuser.models import User
@@ -212,8 +213,8 @@ def save_screenshot():
212213
finally:
213214
# always reconnect signal
214215
post_save.connect(save_screenshot_handler, sender=Snapshot)
215-
216-
save_screenshot()
216+
if hasattr(settings, 'SAVE_SCREENSHOT_ENABLED') and settings.SAVE_SCREENSHOT_ENABLED is True:
217+
save_screenshot()
217218

218219

219220
class Workspace(models.Model):

django/gsmap/tests.py

Lines changed: 136 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,137 @@
1-
from django.test import TestCase
1+
import json
2+
import pytest
3+
from graphene.test import Client
4+
from main.schema import schema
25

3-
# Create your tests here.
6+
@pytest.mark.django_db
7+
def test_municipalities_exists():
8+
client = Client(schema)
9+
result = client.execute('''
10+
query {
11+
municipalities {
12+
edges {
13+
node {
14+
id
15+
name
16+
bfsNumber
17+
}
18+
}
19+
}
20+
}''',
21+
context={})
22+
result = json.loads(json.dumps(result)) # remove OrderedDics, default in python 3.7+
23+
assert result == {
24+
"data": {
25+
"municipalities": {
26+
"edges": [
27+
{
28+
"node": {
29+
"id": "TXVuaWNpcGFsaXR5Tm9kZTo2MjUy",
30+
"name": "Anniviers",
31+
"bfsNumber": 6252
32+
}
33+
},
34+
{
35+
"node": {
36+
"id": "TXVuaWNpcGFsaXR5Tm9kZTo2MDMx",
37+
"name": "Bagnes",
38+
"bfsNumber": 6031
39+
}
40+
},
41+
{
42+
"node": {
43+
"id": "TXVuaWNpcGFsaXR5Tm9kZTozNzky",
44+
"name": "Bregaglia",
45+
"bfsNumber": 3792
46+
}
47+
},
48+
{
49+
"node": {
50+
"id": "TXVuaWNpcGFsaXR5Tm9kZTozODUx",
51+
"name": "Davos",
52+
"bfsNumber": 3851
53+
}
54+
},
55+
{
56+
"node": {
57+
"id": "TXVuaWNpcGFsaXR5Tm9kZToxNjMx",
58+
"name": "Glarus Süd",
59+
"bfsNumber": 1631
60+
}
61+
},
62+
{
63+
"node": {
64+
"id": "TXVuaWNpcGFsaXR5Tm9kZTo3ODQ=",
65+
"name": "Innertkirchen",
66+
"bfsNumber": 784
67+
}
68+
},
69+
{
70+
"node": {
71+
"id": "TXVuaWNpcGFsaXR5Tm9kZTozNzYy",
72+
"name": "Scuol",
73+
"bfsNumber": 3762
74+
}
75+
},
76+
{
77+
"node": {
78+
"id": "TXVuaWNpcGFsaXR5Tm9kZTozNTQz",
79+
"name": "Surses",
80+
"bfsNumber": 3543
81+
}
82+
},
83+
{
84+
"node": {
85+
"id": "TXVuaWNpcGFsaXR5Tm9kZTo2MzAw",
86+
"name": "Zermatt",
87+
"bfsNumber": 6300
88+
}
89+
},
90+
{
91+
"node": {
92+
"id": "TXVuaWNpcGFsaXR5Tm9kZTozNzQ2",
93+
"name": "Zernez",
94+
"bfsNumber": 3746
95+
}
96+
}
97+
]
98+
}
99+
}
100+
}
101+
102+
103+
@pytest.mark.django_db
104+
def test_snapshots_exists():
105+
client = Client(schema)
106+
result = client.execute('''
107+
query {
108+
snapshots(isShowcase: true) {
109+
edges {
110+
node {
111+
id
112+
pk
113+
title
114+
topic
115+
screenshot
116+
}
117+
}
118+
}
119+
}''',
120+
context={})
121+
result = json.loads(
122+
json.dumps(result)) # remove OrderedDics, default in python 3.7+
123+
assert result == {
124+
'data': {
125+
'snapshots': {
126+
'edges': [{
127+
'node': {
128+
'id': 'U25hcHNob3ROb2RlOlI0UlBHQw==',
129+
'pk': 'R4RPGC',
130+
'title': 'test snapshot',
131+
'topic': 'test topic',
132+
'screenshot': ''
133+
}
134+
}]
135+
}
136+
}
137+
}

django/main/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,3 +138,4 @@
138138
}
139139
}
140140
THUMBNAIL_BACKEND = 'main.utils.PermalinkThumbnailBackend'
141+
SAVE_SCREENSHOT_ENABLED = True

0 commit comments

Comments
 (0)