diff --git a/django_lostplaces/lostplaces/tests/views/test_place_views.py b/django_lostplaces/lostplaces/tests/views/test_place_views.py index 8bebd2d..6e1c991 100644 --- a/django_lostplaces/lostplaces/tests/views/test_place_views.py +++ b/django_lostplaces/lostplaces/tests/views/test_place_views.py @@ -37,9 +37,36 @@ class TestPlaceListView(GlobalTemplateTestCaseMixin, ViewTestCase): def setUpTestData(cls): user = User.objects.create_user( username='testpeter', + password='Develop123', + ) + user.explorer.level = 3 + user.explorer.save() + + # default level should be 1, not setting required + other_user = User.objects.create_user( + username='blubberbernd', password='Develop123' ) + superuser = User.objects.create_user( + username='toor', + password='Develop123' + ) + + superuser.is_superuser = True + superuser.save() + + Place.objects.create( + name='Im a own place', + submitted_when=timezone.now(), + submitted_by=other_user.explorer, + location='Test %d town' % 5, + latitude=50.5 + 5/10, + longitude=7.0 - 5/10, + description='This is just a test, do not worry %d' % 5, + level=3 + ) + for i in range(12): place = Place.objects.create( name='Im a place %d' % i, @@ -48,7 +75,8 @@ class TestPlaceListView(GlobalTemplateTestCaseMixin, ViewTestCase): location='Test %d town' % i, latitude=50.5 + i/10, longitude=7.0 - i/10, - description='This is just a test, do not worry %d' % i + description='This is just a test, do not worry %d' % i, + level=3 ) place.tags.add('I a tag', 'testlocation') place.save() @@ -90,6 +118,33 @@ class TestPlaceListView(GlobalTemplateTestCaseMixin, ViewTestCase): ), msg='Expecting the place list to be paginated like [first] [previous] [item] at least 2 times [next] [last]' ) + + def test_not_eligible_to_see_because_of_low_level(self): + self.client.login(username='blubberbernd', password='Develop123') + response = self.client.get(reverse('place_list')) + + self.assertFalse( + 'Im a place' in response.content.decode(), + msg='Expecting the user to not see any places' + ) + + def test_not_eligible_to_see_because_of_low_level_superuser(self): + self.client.login(username='toor', password='Develop123') + response = self.client.get(reverse('place_list')) + + self.assertTrue( + 'Im a place' in response.content.decode(), + msg='Expecting the superuser to see all places' + ) + + def test_not_eligible_to_see_because_of_low_level_own_place(self): + self.client.login(username='blubberbernd', password='Develop123') + response = self.client.get(reverse('place_list')) + + self.assertTrue( + 'Im a own place' in response.content.decode(), + msg='Expecting the user to see it\'s own places' + ) class TestPlaceCreateView(ViewTestCase): view = PlaceCreateView