Testing PlaceAssetCreateView

This commit is contained in:
reverend 2021-05-16 13:03:41 +02:00
parent 0a5d22d4d9
commit 5b9672e21e
3 changed files with 60 additions and 5 deletions

View File

@ -98,6 +98,9 @@ class PlaceAsset(Submittable):
null=True null=True
) )
class DummyAsset(PlaceAsset):
name = models.CharField(max_length=50)
class PlaceImage(PlaceAsset): class PlaceImage(PlaceAsset):
""" """
PlaceImage defines an image file object that points to a file in uploads/. PlaceImage defines an image file object that points to a file in uploads/.

View File

@ -0,0 +1,4 @@
<form method={{form.method}}>
{{form}}
<input type="submit"/>
</form>

View File

@ -3,14 +3,19 @@
from django.test import TestCase, RequestFactory, Client from django.test import TestCase, RequestFactory, Client
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.db import models
from django.contrib.auth.models import User, AnonymousUser from django.contrib.auth.models import User, AnonymousUser
from django.contrib.messages.storage.fallback import FallbackStorage from django.contrib.messages.storage.fallback import FallbackStorage
from django.utils import timezone from django.utils import timezone
from django.shortcuts import render from django.shortcuts import render
from lostplaces.models import Place from lostplaces.models import Place
from lostplaces.views import IsAuthenticatedMixin from lostplaces.views import (
IsAuthenticatedMixin,
PlaceAssetCreateView
)
from lostplaces.tests.views import ViewTestCase from lostplaces.tests.views import ViewTestCase
from lostplaces.models import DummyAsset
class TestIsAuthenticated(ViewTestCase): class TestIsAuthenticated(ViewTestCase):
view = IsAuthenticatedMixin view = IsAuthenticatedMixin
@ -22,9 +27,6 @@ class TestIsAuthenticated(ViewTestCase):
password='Develop123' password='Develop123'
) )
def setUp(self):
self.client = Client()
def test_logged_in(self): def test_logged_in(self):
request = RequestFactory().get('/') request = RequestFactory().get('/')
request.user = User.objects.get(id=1) request.user = User.objects.get(id=1)
@ -43,7 +45,6 @@ class TestIsAuthenticated(ViewTestCase):
response = IsAuthenticatedMixin.as_view()(request) response = IsAuthenticatedMixin.as_view()(request)
self.assertHttpRedirect(response, '?'.join([str(reverse_lazy('login')), 'next=/'])) self.assertHttpRedirect(response, '?'.join([str(reverse_lazy('login')), 'next=/']))
response = self.client.get(response['Location'])
self.assertTrue(len(messages) > 0) self.assertTrue(len(messages) > 0)
class TestIsPlaceSubmitterMixin(TestCase): class TestIsPlaceSubmitterMixin(TestCase):
@ -89,3 +90,50 @@ class TestIsPlaceSubmitterMixin(TestCase):
self.assertTrue(response.context['messages']) self.assertTrue(response.context['messages'])
self.assertTrue(len(response.context['messages']) > 0) self.assertTrue(len(response.context['messages']) > 0)
class TestPlaceAssetCreateView(ViewTestCase):
view = PlaceAssetCreateView
class DummyAssetCreateView(PlaceAssetCreateView):
model = DummyAsset
fields = ['name']
template_name = 'flat_form.html'
@classmethod
def setUpTestData(cls):
user = User.objects.create_user(
username='testpeter',
password='Develop123'
)
place = Place.objects.create(
name='Im a place',
submitted_when=timezone.now(),
submitted_by=user.explorer,
location='Testtown',
latitude=50.5,
longitude=7.0,
description='This is just a test, do not worry'
)
def test_create_asset(self):
request = RequestFactory().post(
'/',
{
'name': 'im a place'
}
)
request.user = User.objects.get(id=1)
response = TestPlaceAssetCreateView.DummyAssetCreateView.as_view()(request, place_id=1)
self.assertTrue(
DummyAsset.objects.all().count() >= 1,
msg='Expecting a dummy place asset to be created by the view'
)
self.assertEqual(
DummyAsset.objects.get(id=1).name,
'im a place',
msg='Expecting the dummy place asset to have the correct data'
)