diff options
Diffstat (limited to 'chimere/tests.py')
-rw-r--r-- | chimere/tests.py | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/chimere/tests.py b/chimere/tests.py index 369fe6b..1c950fc 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -8,7 +8,7 @@ import simplejson as json test_path = os.path.abspath(__file__) test_dir_path = os.path.dirname(test_path) + os.sep -from django.contrib.auth.models import User +from django.contrib.auth.models import User, Group from django.contrib.gis.geos import GEOSGeometry from django.core.files import File from django.core.urlresolvers import reverse @@ -16,7 +16,7 @@ from django.template import Context from django.test import TestCase from chimere.models import Area, Icon, Importer, Category, SubCategory, \ - Marker, Route, News + Marker, Route, News, SubCategoryUserLimit from chimere.forms import MarkerForm, AreaAdminForm from chimere.templatetags.chimere_tags import display_news from chimere.utils import ShapefileManager @@ -370,12 +370,27 @@ class FeedsTest(TestCase): class AdminTest(TestCase): def setUp(self): self.areas = areas_setup() - self.markers = marker_setup() + self.subcategories = subcategory_setup() + self.markers = marker_setup(self.subcategories) self.adminuser = User.objects.create_superuser( 'admin', 'admin@test.com', 'pass') - self.client.login(username='admin', password='pass') + self.moderation_user = User.objects.create_user( + 'mod_1', 'mod1@test.com', 'pass') + self.moderation_user.is_staff = True + self.moderation_user.save() + self.moderation_user2 = User.objects.create_user( + 'mod_2', 'mod2@test.com', 'pass') + self.moderation_user2.is_staff = True + self.moderation_user2.save() + SubCategoryUserLimit.objects.create( + subcategory=self.subcategories[0], + user=self.moderation_user2) + for g in Group.objects.all(): + g.user_set.add(self.moderation_user) + g.user_set.add(self.moderation_user2) def test_actions(self): + self.client.login(username='admin', password='pass') q_markers = Marker.objects.filter(pk__in=[m.pk for m in self.markers]) # disable self.client.post( @@ -394,6 +409,23 @@ class AdminTest(TestCase): self.assertEqual(q_markers.count(), q_markers.filter(status='A').count()) + def test_moderation_action_filter(self): + m_ok = self.markers[0] + m_nok = self.markers[2] + self.client.login(username='mod_1', password='pass') + response = self.client.get('/admin/chimere/marker/{}/'.format(m_ok.pk)) + self.assertEqual(200, response.status_code) + response = self.client.get( + '/admin/chimere/marker/{}/'.format(m_nok.pk)) + self.assertEqual(200, response.status_code) + self.client.logout() + self.client.login(username='mod_2', password='pass') + response = self.client.get('/admin/chimere/marker/{}/'.format(m_ok.pk)) + self.assertEqual(200, response.status_code) + response = self.client.get( + '/admin/chimere/marker/{}/'.format(m_nok.pk)) + self.assertEqual(404, response.status_code) + class MarkerFormTest(TestCase): def setUp(self): |