Skip to content

Commit aac518b

Browse files
authored
Merge pull request #15 from qgis/fix_unit_tests
Fix unit tests
2 parents 8f084b0 + c0977b3 commit aac518b

File tree

14 files changed

+140
-215
lines changed

14 files changed

+140
-215
lines changed

.github/dependabot.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
version: 2
2+
updates:
3+
# Enable version updates for GitHub Actions
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "quarterly"

django_project/base/tests/model_factories.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,22 @@ class ProjectF(factory.django.DjangoModelFactory):
1111
class Meta:
1212
model = Project
1313

14-
name = factory.Sequence(lambda n: 'Test Project %s' % n)
14+
name = 'qgis'
1515
description = u'This is only for testing'
1616
owner = factory.SubFactory(UserF)
1717
project_representative = factory.SubFactory(UserF)
1818
approved = True
1919
private = False
2020
gitter_room = u'test/test'
2121

22+
@classmethod
23+
def create(cls, **kwargs):
24+
name = kwargs.get('name', 'qgis')
25+
existing_project = Project.objects.filter(name=name).first()
26+
if existing_project:
27+
return existing_project
28+
return super().create(**kwargs)
29+
2230

2331
class OrganisationF(factory.django.DjangoModelFactory):
2432
"""

django_project/changes/forms.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ def save(self, commit=True):
237237

238238

239239
class SponsorForm(forms.ModelForm):
240-
logo = forms.ImageField(widget=FileUploadInput)
240+
logo = SVGAndImageFormField(widget=FileUploadInput)
241241
agreement = forms.FileField(widget=FileUploadInput, required=False)
242242
# noinspection PyClassicStyleClass
243243

@@ -256,9 +256,6 @@ class Meta:
256256
'invoice_number',
257257
'project',
258258
)
259-
field_classes = {
260-
'logo': SVGAndImageFormField
261-
}
262259

263260
def __init__(self, *args, **kwargs):
264261
self.user = kwargs.pop('user')

django_project/changes/templates/sponsor/delete.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ <h1>Sustaining Member Deleted</h1>
2525
<span class="glyphicon glyphicon-minus"></span>
2626
</a>
2727
<a class="btn btn-default btn-sm tooltip-toggle"
28-
href='{% url "sponsor-list" sponsor.project.slug %}'
28+
href='{% url "sponsor-list" %}'
2929
data-title="Cancel">
3030
<span class="glyphicon glyphicon-arrow-left"></span>
3131
</a>

django_project/changes/tests/test_fix_url_image_entry.py

Lines changed: 0 additions & 29 deletions
This file was deleted.

django_project/changes/tests/test_forms.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ def test_upload_svg_file(self):
5454
user=self.user,
5555
project=self.project
5656
)
57+
if not form.is_valid():
58+
print(form.errors)
5759
self.assertTrue(form.is_valid())
5860

5961
def test_upload_webp_file(self):

django_project/changes/tests/test_models.py

Lines changed: 53 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
SponsorF,
1111
SponsorshipPeriodF)
1212

13+
from base.tests.model_factories import ProjectF
14+
1315

1416
class TestSponsorCRUD(TestCase):
1517
"""
@@ -20,13 +22,15 @@ def setUp(self):
2022
"""
2123
Sets up before each test
2224
"""
23-
pass
25+
self.project = ProjectF.create()
2426

2527
def test_Sponsor_create(self):
2628
"""
2729
Tests Sponsor model creation
2830
"""
29-
model = SponsorF.create()
31+
model = SponsorF.create(
32+
project=self.project,
33+
)
3034

3135
# check if PK exists
3236
self.assertTrue(model.pk is not None)
@@ -39,7 +43,8 @@ def test_Sponsor_read(self):
3943
Tests Sponsor model read
4044
"""
4145
model = SponsorF.create(
42-
name=u'Custom Sponsor'
46+
name=u'Custom Sponsor',
47+
project=self.project,
4348
)
4449

4550
self.assertTrue(model.name == 'Custom Sponsor')
@@ -48,7 +53,9 @@ def test_Sponsor_update(self):
4853
"""
4954
Tests Sponsor model update
5055
"""
51-
model = SponsorF.create()
56+
model = SponsorF.create(
57+
project=self.project,
58+
)
5259
new_model_data = {
5360
'name': u'New Sponsor Name',
5461
'sponsor_url': u'New Sponsor URL',
@@ -66,7 +73,9 @@ def test_Sponsor_delete(self):
6673
"""
6774
Tests Sponsor model delete
6875
"""
69-
model = SponsorF.create()
76+
model = SponsorF.create(
77+
project=self.project,
78+
)
7079

7180
model.delete()
7281

@@ -83,13 +92,15 @@ def setUp(self):
8392
"""
8493
Sets up before each test
8594
"""
86-
pass
95+
self.project = ProjectF.create()
8796

8897
def test_SponsorshipLevel_create(self):
8998
"""
9099
Tests Sponsorship Level model creation
91100
"""
92-
model = SponsorshipLevelF.create()
101+
model = SponsorshipLevelF.create(
102+
project=self.project,
103+
)
93104

94105
# check if PK exists
95106
self.assertTrue(model.pk is not None)
@@ -102,6 +113,7 @@ def test_SponsorshipLevel_read(self):
102113
Tests Sponsorship Level model read
103114
"""
104115
model = SponsorshipLevelF.create(
116+
project=self.project,
105117
name=u'Custom SponsorshipLevel'
106118
)
107119

@@ -111,7 +123,9 @@ def test_SponsorshipLevel_update(self):
111123
"""
112124
Tests Sponsorship Level model update
113125
"""
114-
model = SponsorshipLevelF.create()
126+
model = SponsorshipLevelF.create(
127+
project=self.project,
128+
)
115129
new_model_data = {
116130
'name': u'New Sponsorship Level Name',
117131
'currency': u'IDR',
@@ -131,7 +145,9 @@ def test_SponsorshipLevel_delete(self):
131145
"""
132146
Tests SponsorshipLevel model delete
133147
"""
134-
model = SponsorshipLevelF.create()
148+
model = SponsorshipLevelF.create(
149+
project=self.project,
150+
)
135151

136152
model.delete()
137153

@@ -148,13 +164,26 @@ def setUp(self):
148164
"""
149165
Sets up before each test
150166
"""
151-
pass
167+
self.project = ProjectF.create()
168+
169+
self.sponsorship_level = SponsorshipLevelF.create(
170+
project=self.project,
171+
name='Gold')
172+
173+
# Current sponsor
174+
self.current_sponsor = SponsorF.create(
175+
project=self.project,
176+
name='Current Sponsor')
152177

153178
def test_SponsorshipPeriod_create(self):
154179
"""
155180
Tests Sponsorship Period model creation
156181
"""
157-
model = SponsorshipPeriodF.create()
182+
model = SponsorshipPeriodF.create(
183+
sponsorship_level=self.sponsorship_level,
184+
sponsor=self.current_sponsor,
185+
project=self.project,
186+
)
158187

159188
# check if PK exists
160189
self.assertTrue(model.pk is not None)
@@ -167,6 +196,9 @@ def test_SponsorshipPeriod_read(self):
167196
Tests Sponsorship Period model read
168197
"""
169198
model = SponsorshipPeriodF.create(
199+
sponsorship_level=self.sponsorship_level,
200+
sponsor=self.current_sponsor,
201+
project=self.project,
170202
start_date=datetime(2016, 1, 1)
171203
)
172204

@@ -176,7 +208,11 @@ def test_SponsorshipPeriod_update(self):
176208
"""
177209
Tests Sponsorship Period model update
178210
"""
179-
model = SponsorshipPeriodF.create()
211+
model = SponsorshipPeriodF.create(
212+
sponsorship_level=self.sponsorship_level,
213+
sponsor=self.current_sponsor,
214+
project=self.project,
215+
)
180216
new_model_data = {
181217
'start_date': datetime(2016, 1, 1),
182218
'approved': False,
@@ -193,7 +229,11 @@ def test_SponsorshipPeriod_delete(self):
193229
"""
194230
Tests SponsorshipPeriod model delete
195231
"""
196-
model = SponsorshipPeriodF.create()
232+
model = SponsorshipPeriodF.create(
233+
sponsorship_level=self.sponsorship_level,
234+
sponsor=self.current_sponsor,
235+
project=self.project,
236+
)
197237

198238
model.delete()
199239

django_project/changes/tests/test_sponsor_feeds.py

Lines changed: 11 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ def setUp(self):
3939
})
4040
self.user.set_password('password')
4141
self.user.save()
42-
self.project = ProjectF.create(
43-
name='testproject')
42+
self.project = ProjectF.create()
4443

4544
self.sponsorship_level = SponsorshipLevelF.create(
4645
project=self.project,
@@ -105,9 +104,7 @@ def tearDown(self):
105104

106105
@override_settings(VALID_DOMAIN=['testserver', ])
107106
def test_current_sponsor_rss_feed_view(self):
108-
response = self.client.get(reverse('sponsor-rss-feed', kwargs={
109-
'project_slug': self.project.slug
110-
}))
107+
response = self.client.get(reverse('sponsor-rss-feed'))
111108
response_content_str = str(response.content)
112109
self.assertEqual(response.status_code, 200)
113110
self.assertEqual(self.current_sponsor.name in response_content_str,
@@ -118,9 +115,7 @@ def test_current_sponsor_rss_feed_view(self):
118115

119116
@override_settings(VALID_DOMAIN=['testserver', ])
120117
def test_past_sponsor_rss_feed_view_without_years_limit(self):
121-
response = self.client.get(reverse('past-sponsor-rss-feed', kwargs={
122-
'project_slug': self.project.slug
123-
}))
118+
response = self.client.get(reverse('past-sponsor-rss-feed'))
124119
self.assertEqual(response.status_code, 200)
125120
response_content_str = str(response.content)
126121
self.assertEqual(self.current_sponsor.name in response_content_str,
@@ -131,9 +126,7 @@ def test_past_sponsor_rss_feed_view_without_years_limit(self):
131126

132127
@override_settings(VALID_DOMAIN=['testserver', ])
133128
def test_past_sponsor_rss_feed_view_with_years_limit(self):
134-
url_with_limit = reverse('past-sponsor-rss-feed', kwargs={
135-
'project_slug': self.project.slug
136-
})
129+
url_with_limit = reverse('past-sponsor-rss-feed')
137130
url_with_limit += '?' + urllib.parse.urlencode(
138131
{'years_limit': 2})
139132
response = self.client.get(url_with_limit)
@@ -152,9 +145,7 @@ def test_past_sponsor_rss_feed_view_with_invalid_years_limit(self):
152145
153146
It will return all past sponsors.
154147
"""
155-
url_with_limit = reverse('past-sponsor-rss-feed', kwargs={
156-
'project_slug': self.project.slug
157-
})
148+
url_with_limit = reverse('past-sponsor-rss-feed')
158149
url_with_limit += '?' + urllib.parse.urlencode(
159150
{'years_limit': 'a'})
160151
response = self.client.get(url_with_limit)
@@ -168,9 +159,7 @@ def test_past_sponsor_rss_feed_view_with_invalid_years_limit(self):
168159
self.one_decade_ago_sponsor.name in response_content_str,
169160
True)
170161

171-
url_with_limit = reverse('past-sponsor-rss-feed', kwargs={
172-
'project_slug': self.project.slug
173-
})
162+
url_with_limit = reverse('past-sponsor-rss-feed')
174163
url_with_limit += '?' + urllib.parse.urlencode({'years_limit': -1})
175164
response = self.client.get(url_with_limit)
176165
response_content_str = str(response.content)
@@ -183,9 +172,7 @@ def test_past_sponsor_rss_feed_view_with_invalid_years_limit(self):
183172

184173
@override_settings(VALID_DOMAIN=['testserver', ])
185174
def test_current_sponsor_json_feed_view(self):
186-
response = self.client.get(reverse('sponsor-json-feed', kwargs={
187-
'project_slug': self.project.slug
188-
}))
175+
response = self.client.get(reverse('sponsor-json-feed'))
189176
self.assertEqual(response.status_code, 200)
190177
self.assertEqual(self.current_sponsor.name in str(response.content),
191178
True)
@@ -197,9 +184,7 @@ def test_current_sponsor_json_feed_view(self):
197184

198185
@override_settings(VALID_DOMAIN=['testserver', ])
199186
def test_past_sponsor_json_feed_view_without_years_limit(self):
200-
response = self.client.get(reverse('past-sponsor-json-feed', kwargs={
201-
'project_slug': self.project.slug
202-
}))
187+
response = self.client.get(reverse('past-sponsor-json-feed'))
203188
self.assertEqual(response.status_code, 200)
204189
response_content_str = str(response.content)
205190
self.assertEqual(
@@ -210,9 +195,7 @@ def test_past_sponsor_json_feed_view_without_years_limit(self):
210195

211196
@override_settings(VALID_DOMAIN=['testserver', ])
212197
def test_past_sponsor_json_feed_view_with_years_limit(self):
213-
url_with_limit = reverse('past-sponsor-json-feed', kwargs={
214-
'project_slug': self.project.slug
215-
})
198+
url_with_limit = reverse('past-sponsor-json-feed')
216199
url_with_limit += '?' + urllib.parse.urlencode(
217200
{'years_limit': 2})
218201
response = self.client.get(url_with_limit)
@@ -230,9 +213,7 @@ def test_past_sponsor_json_feed_view_with_invalid_years_limit(self):
230213
231214
It will return all past sponsors.
232215
"""
233-
url_with_limit = reverse('past-sponsor-json-feed', kwargs={
234-
'project_slug': self.project.slug
235-
})
216+
url_with_limit = reverse('past-sponsor-json-feed')
236217
url_with_limit += '?' + urllib.parse.urlencode(
237218
{'years_limit': 'a'})
238219
response = self.client.get(url_with_limit)
@@ -244,9 +225,7 @@ def test_past_sponsor_json_feed_view_with_invalid_years_limit(self):
244225
self.assertEqual(
245226
self.one_decade_ago_sponsor.name in response_content_str, True)
246227

247-
url_with_limit = reverse('past-sponsor-json-feed', kwargs={
248-
'project_slug': self.project.slug
249-
})
228+
url_with_limit = reverse('past-sponsor-json-feed')
250229
url_with_limit += '?' + urllib.parse.urlencode({'years_limit': -1})
251230
response = self.client.get(url_with_limit)
252231
response_content_str = str(response.content)

0 commit comments

Comments
 (0)