diff options
Diffstat (limited to 'chimere/tests.py')
-rw-r--r-- | chimere/tests.py | 132 |
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)) |