diff options
-rw-r--r-- | chimere/tests.py | 33 | ||||
-rw-r--r-- | requirements.txt | 2 |
2 files changed, 28 insertions, 7 deletions
diff --git a/chimere/tests.py b/chimere/tests.py index 548bc84..8339e41 100644 --- a/chimere/tests.py +++ b/chimere/tests.py @@ -52,7 +52,12 @@ def areas_setup(): 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] + area_4 = Area.objects.create( + name='area 4', urn='area-4', order=4, available=True, + upper_left_corner='SRID=4326;POINT(-4.907753 48.507656)', + lower_right_corner='SRID=4326;POINT(-4.049447 48.279688)', + ) + return [area_1, area_2, area_3, area_4] def properties_setup(): @@ -112,11 +117,13 @@ def marker_setup(sub_categories=[]): sub_categories = subcategory_setup() current_date = datetime.datetime.now() markers = [] + # in area 1 and 4 marker_1 = Marker.objects.create(name="Marker 1", status='A', point='SRID=4326;POINT(-4.5 48.4)', available_date=current_date) marker_1.categories.add(sub_categories[0]) markers.append(marker_1) + # outside all areas marker_2 = Marker.objects.create(name="Marker 2", status='A', point='SRID=4326;POINT(-3.5 48.4)', is_front_page=True, @@ -124,6 +131,7 @@ def marker_setup(sub_categories=[]): start_date=current_date) marker_2.categories.add(sub_categories[1]) markers.append(marker_2) + # in area 1 and 4 marker_3 = Marker.objects.create( name="Marker 3", status='A', point='SRID=4326;POINT(-4.5 48.45)', is_front_page=True, @@ -454,6 +462,7 @@ class AdministratorsTest(TestCase): '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 @@ -461,10 +470,22 @@ class AdministratorsTest(TestCase): SubCategoryUserLimit.objects.create( subcategory=self.subcategories[0], user=self.moderation_user2) + + self.moderation_user3 = User.objects.create_user( + 'mod_3', 'mod3@test.com', 'pass') + self.moderation_user3.is_staff = True + self.moderation_user3.save() + g = Group.objects.filter( + permissions__codename="change_area_" + self.areas[3].urn).all()[0] + g.user_set.add(self.moderation_user3) + for g in Group.objects.all(): g.user_set.add(self.moderation_user) g.user_set.add(self.moderation_user2) + self.areas[3].subcategories.add(self.subcategories[4]) + self.markers[2].categories.add(self.subcategories[4]) + class AdminTest(AdministratorsTest): def test_actions(self): @@ -516,7 +537,7 @@ class AdminTest(AdministratorsTest): class NotifyTest(AdministratorsTest): def test_notify_email(self): - # OK for all: two moderators and superuser + # OK for all: two moderators and superuser but not mod3 m1 = self.markers[0] notifySubmission('dont-care-about-uri-for-tests', m1) out = mail.outbox.pop() @@ -524,19 +545,19 @@ class NotifyTest(AdministratorsTest): sorted([self.adminuser.email, self.moderation_user.email, self.moderation_user2.email])) - # not in the area for both moderators + # not in the area for all three moderators m2 = self.markers[1] notifySubmission('dont-care-about-uri-for-tests', m2) out = mail.outbox.pop() self.assertEqual(out.to, [self.adminuser.email]) - # not a category followed by moderator2 + # not a category followed by moderator2 but in the area of moderator3 m3 = self.markers[2] notifySubmission('dont-care-about-uri-for-tests', m3) out = mail.outbox.pop() self.assertEqual(sorted(out.to), sorted([self.adminuser.email, - self.moderation_user.email])) - self.assertEqual(len(out.to), 2) + self.moderation_user.email, + self.moderation_user3.email])) class MarkerFormTest(TestCase): diff --git a/requirements.txt b/requirements.txt index d888354..97103b6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -7,7 +7,7 @@ feedparser==5.2.1 django-tinymce4-lite==1.7.1 icalendar==3.8 chardet==2.3 -py3exiv2==0.2.1 +py3exiv2>=0.2.1,<=0.4.0 gdal>=2.1.0,<2.1.99 osmapi==0.6.2 PyTidyLib==0.3.1 |