summaryrefslogtreecommitdiff
path: root/chimere/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/tests.py')
-rw-r--r--chimere/tests.py132
1 files changed, 25 insertions, 107 deletions
diff --git a/chimere/tests.py b/chimere/tests.py
index 0e500f1..6c39cba 100644
--- a/chimere/tests.py
+++ b/chimere/tests.py
@@ -9,7 +9,7 @@ test_path = os.path.abspath(__file__)
test_dir_path = os.path.dirname(test_path) + os.sep
from django.conf import settings
-from django.contrib.auth.models import User, Group
+from django.contrib.auth.models import User
from django.contrib.gis.geos import GEOSGeometry
from django.contrib.messages.storage.fallback import FallbackStorage
from django.core.files import File
@@ -19,12 +19,27 @@ from django.test import TestCase
from django.test.client import Client
from chimere.admin import managed_modified, MarkerAdmin
-from chimere.models import Icon, Importer, Category, SubCategory, Marker,\
- Route, News, Map, MapUsers, MapGroups, PropertyModel
-from chimere.forms import MarkerForm, MapAdminForm
+from chimere.models import Area, Icon, Importer, Category, SubCategory, Marker,\
+ Route, News
+from chimere.forms import MarkerForm, AreaAdminForm
from chimere.templatetags.chimere_tags import display_news
from chimere.utils import ShapefileManager
+def areas_setup():
+ area_1 = Area.objects.create(name='area 1', urn='area-1', order=1,
+ available=True,
+ upper_left_corner='SRID=4326;POINT(-4.907753 48.507656)',
+ lower_right_corner='SRID=4326;POINT(-4.049447 48.279688)')
+ area_2 = Area.objects.create(name='area 2', urn='area-2', order=2,
+ available=True,
+ upper_left_corner='SRID=4326;POINT(-3 47.5)',
+ lower_right_corner='SRID=4326;POINT(-2.5 47)')
+ area_3 = Area.objects.create(name='area 3', urn='area-3', order=3,
+ available=True,
+ upper_left_corner='SRID=4326;POINT(-1.5 1.5)',
+ lower_right_corner='SRID=4326;POINT(1.5 -1.5)')
+ return [area_1, area_2, area_3]
+
def subcategory_setup():
category = Category.objects.create(name='Main category',
available=True,
@@ -115,48 +130,6 @@ def route_setup(sub_categories=[]):
routes.append(route_2)
return routes
-def map_setup():
- maps = []
- maps.append(Map.objects.create(name='Map 1', available=True, order=1,
- upper_left_corner='SRID=4326;POINT(-4.907753 48.507656)',
- lower_right_corner='SRID=4326;POINT(-4.049447 48.279688)',
- urn='map-1', default=False, public_read=True,
- public_propose=True, public_write=False))
- maps.append(Map.objects.create(name='Map 2', available=True, order=2,
- upper_left_corner='SRID=4326;POINT(-3 47.5)',
- lower_right_corner='SRID=4326;POINT(-2.5 47)',
- urn='map-2', default=False, public_read=True,
- public_propose=False, public_write=False))
- maps.append(Map.objects.create(name='Map 3', available=True, order=3,
- upper_left_corner='SRID=4326;POINT(-1.5 1.5)',
- lower_right_corner='SRID=4326;POINT(1.5 -1.5)',
- urn='map-3', default=False, public_read=False,
- public_propose=False, public_write=False))
- return maps
-
-def propertymodel_setup():
- pms = []
- pms.append(PropertyModel.objects.create(name='Address', order=10, available=False,
- mandatory=False, slug='address', type='T'))
- pms.append(PropertyModel.objects.create(name='City', order=20, available=False,
- mandatory=False, slug='town', type='T'))
- return pms
-
-def users_setup():
- adminuser = User.objects.create_superuser('admin',
- 'admin@test.com',
- 'pass')
- users = [adminuser]
- users.append(User.objects.create_user('user1', 'user1@test.com',
- 'pass'))
- users.append(User.objects.create_user('user2', 'user2@test.com',
- 'pass'))
- groups = [Group.objects.create(name='groupname')]
- users[2].groups.add(groups[0])
- return users, groups
-
-areas_setup = users_setup
-
class ImporterTest:
def test_get(self):
nb_by_cat = {}
@@ -327,21 +300,6 @@ class GeoRSSImporterTest(TestCase, ImporterTest):
self.marker_importers = [(importer1, 1), (importer2, 32)]
-class CSVImporterTest(TestCase, ImporterTest):
- def setUp(self):
- subcategories = subcategory_setup()
- pm = propertymodel_setup()
- importer1 = Importer.objects.create(importer_type='CSV',
- source=test_dir_path+'tests/test.csv')
- importer1.categories.add(subcategories[0])
- self.old_settings = settings.CHIMERE_NOMINATIM_FIELDS
- settings.CHIMERE_NOMINATIM_FIELDS = {'street':'address',
- 'city':'town', 'country':u'Great Britain'}
- self.marker_importers = [(importer1, 2)]
-
- def tearDown(self):
- settings.CHIMERE_NOMINATIM_FIELDS = self.old_settings
-
class HtmlXsltImporterTest(TestCase, ImporterTest):
def setUp(self):
subcategories = subcategory_setup()
@@ -442,7 +400,7 @@ class MarkerFormTest(TestCase):
form = MarkerForm(data)
self.assertEqual(form.is_valid(), False)
-class MapTest(TestCase):
+class AreaTest(TestCase):
def setUp(self):
self.areas = areas_setup()
@@ -453,7 +411,7 @@ class MapTest(TestCase):
response = self.client.get('/%s/' % area_1.urn)
self.assertRedirects(response, '/')
-class MapAdminFormTest(TestCase):
+class AreaAdminFormTest(TestCase):
def setUp(self):
self.areas = areas_setup()
@@ -463,7 +421,7 @@ class MapAdminFormTest(TestCase):
area_1.save()
area_2.default = True
area_2.save()
- area_1 = Map.objects.get(urn=area_1.urn)
+ area_1 = Area.objects.get(urn=area_1.urn)
self.assertEqual(area_1.default, False)
def test_area_creation(self):
@@ -478,12 +436,12 @@ class MapAdminFormTest(TestCase):
# order already given
data = base_data.copy()
data['order'] = self.areas[0].order
- form = MapAdminForm(data)
+ form = AreaAdminForm(data)
self.assertEqual(form.is_valid(), False)
# update an already existing area
data = base_data.copy()
data['order'] = self.areas[0].order
- form = MapAdminForm(data, instance=self.areas[0])
+ form = AreaAdminForm(data, instance=self.areas[0])
self.assertEqual(form.is_valid(), True)
# empty area
data = base_data.copy()
@@ -491,7 +449,7 @@ class MapAdminFormTest(TestCase):
'upper_left_lon': 0,
'lower_right_lat': 0,
'lower_right_lon': 0})
- form = MapAdminForm(data)
+ form = AreaAdminForm(data)
self.assertEqual(form.is_valid(), False)
class DynamicCategoryTest(TestCase):
@@ -627,43 +585,3 @@ class RouteTest(TestCase):
route='SRID=4326;LINESTRING (30 10, 10 30, 40 40)',
has_associated_marker=False)
self.assertEqual(Marker.objects.filter(route=route_2).count(), 0)
-
-class PermissionTest(TestCase):
- def setUp(self):
- self.maps = map_setup()
- self.users, self.groups = users_setup()
- MapUsers.objects.create(map=self.maps[2], user=self.users[1], read=True,
- propose=False, write=False)
- MapGroups.objects.create(map=self.maps[2], group=self.groups[0],
- read=True, propose=True, write=True)
-
- def test_rights(self):
- self.client.login(username=self.users[0].username, password='pass')
- for urn, can_view, can_propose in [('map-1', True, True),
- ('map-2', True, False),
- ('map-3', False, False)]:
- self.check_right(urn, can_view, can_propose, self.users[0].username)
- self.client.login(username=self.users[1].username, password='pass')
- for urn, can_view, can_propose in [('map-1', True, True),
- ('map-2', True, False),
- ('map-3', True, False)]:
- self.check_right(urn, can_view, can_propose, self.users[1].username)
- self.client.login(username=self.users[2].username, password='pass')
- for urn, can_view, can_propose in [('map-1', True, True),
- ('map-2', True, False),
- ('map-3', True, True)]:
- self.check_right(urn, can_view, can_propose, self.users[2].username)
-
- def check_right(self, urn, can_view, can_propose, username):
- url = reverse('chimere:index', args=[urn])
- response = self.client.get(url)
- status_code = 200 if can_view else 302
- self.assertEqual(status_code, response.status_code,
- msg='index for %s, %s: %s got where %s is attended' % (
- username, urn, response.status_code, status_code))
- url = reverse('chimere:edit', args=[urn+'/'])
- status_code = 200 if can_propose else 302
- response = self.client.get(url)
- self.assertEqual(status_code, response.status_code,
- msg='edit for %s, %s: %s got where %s is attended' % (
- username, urn, response.status_code, status_code))