Example #1
0
 def test_return_all_organisations_for_superusers_and_staff_users(self):
     # Setup
     org_1 = OrganisationFactory.create()
     org_2 = OrganisationFactory.create()
     user_1 = UserFactory.create(is_superuser=True)
     user_2 = UserFactory.create(is_staff=True)
     # Run & check
     self.assertEqual(list(get_managed_organisations(user_1)), [org_1, org_2, ])
     self.assertEqual(list(get_managed_organisations(user_2)), [org_1, org_2, ])
Example #2
0
    def setUp(self):
        super(ViewsTestCase, self).setUp()
        self.user_granted = UserFactory.create(username="******")
        self.user_granted.set_password("user")
        self.user_granted.save()

        self.user_non_granted = UserFactory.create(username="******")
        self.user_non_granted.set_password("user")
        self.user_non_granted.save()
Example #3
0
    def setUp(self):
        super(ViewsTestCase, self).setUp()
        self.user_granted = UserFactory.create(username="******")
        self.user_granted.set_password("user")
        self.user_granted.save()

        self.user_non_granted = UserFactory.create(username="******")
        self.user_non_granted.set_password("user")
        self.user_non_granted.save()
Example #4
0
 def test_cannot_allow_users_to_use_the_email_associated_with_another_user(self):
     # Setup
     u1 = UserFactory.create(username='******', email='*****@*****.**')
     u2 = UserFactory.create(username='******', email='*****@*****.**')
     form_data = {
         'username': '******',
         'email': u2.email,
     }
     # Run
     form = UserParametersForm(form_data, instance=u1)
     # Check
     assert not form.is_valid()
Example #5
0
 def test_return_all_organisations_for_superusers_and_staff_users(self):
     # Setup
     org_1 = OrganisationFactory.create()
     org_2 = OrganisationFactory.create()
     user_1 = UserFactory.create(is_superuser=True)
     user_2 = UserFactory.create(is_staff=True)
     # Run & check
     self.assertEqual(list(get_managed_organisations(user_1)), [
         org_1,
         org_2,
     ])
     self.assertEqual(list(get_managed_organisations(user_2)), [
         org_1,
         org_2,
     ])
Example #6
0
 def test_can_return_only_organisations_that_have_the_considered_users_in_their_members(self):
     # Setup
     org_1 = OrganisationFactory.create()
     org_2 = OrganisationFactory.create()
     org_3 = OrganisationFactory.create()
     user = UserFactory.create()
     org_1.members.add(user)
     subscription_1 = JournalAccessSubscriptionFactory.create(organisation=org_1)
     subscription_2 = JournalAccessSubscriptionFactory.create(organisation=org_2)
     subscription_3 = JournalAccessSubscriptionFactory.create(organisation=org_3)
     now_dt = dt.datetime.now()
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_1,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_2,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_3,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     # Run & check
     self.assertEqual(list(get_managed_organisations(user)), [org_1, ])
Example #7
0
    def test_can_return_all_the_journals_if_the_user_is_a_member_of_a_production_team(
            self):
        # Setup
        class MyView(JournalScopeMixin, TemplateView):
            allow_production_team_access = True
            template_name = 'dummy.html'

        user = UserFactory.create()
        group = GroupFactory.create(name='Production team')
        ProductionTeamFactory.create(group=group, identifier='main')
        user.groups.add(group)

        journal = JournalFactory.create(collection=self.collection)
        url = reverse('userspace:journal:information:update',
                      kwargs={'journal_pk': journal.pk})
        request = self.get_request(url)
        request.user = user
        my_view = MyView()
        my_view.request = request

        # Run & check
        journals = my_view.get_user_journals()
        assert journals
        assert list(journals) == list(
            Journal.objects.filter(collection__code='erudit'))
Example #8
0
 def test_can_return_only_organisations_that_have_the_considered_users_in_their_members(
         self):
     # Setup
     org_1 = OrganisationFactory.create()
     org_2 = OrganisationFactory.create()
     org_3 = OrganisationFactory.create()
     user = UserFactory.create()
     org_1.members.add(user)
     subscription_1 = JournalAccessSubscriptionFactory.create(
         organisation=org_1)
     subscription_2 = JournalAccessSubscriptionFactory.create(
         organisation=org_2)
     subscription_3 = JournalAccessSubscriptionFactory.create(
         organisation=org_3)
     now_dt = dt.datetime.now()
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_1,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_2,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_3,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     # Run & check
     self.assertEqual(list(get_managed_organisations(user)), [
         org_1,
     ])
Example #9
0
 def test_can_return_only_organisations_that_are_associated_with_a_valid_subscription(
         self):
     # Setup
     org_1 = OrganisationFactory.create()
     org_2 = OrganisationFactory.create()
     org_3 = OrganisationFactory.create()
     user = UserFactory.create()
     org_1.members.add(user)
     org_2.members.add(user)
     org_3.members.add(user)
     subscription_1 = JournalAccessSubscriptionFactory.create(
         organisation=org_1)
     subscription_2 = JournalAccessSubscriptionFactory.create(
         organisation=org_2)
     JournalAccessSubscriptionFactory.create(organisation=org_3)
     now_dt = dt.datetime.now()
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_1,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_2,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt - dt.timedelta(days=8))
     # Run & check
     self.assertEqual(list(get_managed_organisations(user)), [
         org_1,
     ])
Example #10
0
    def test_returns_a_403_error_if_no_journal_can_be_associated_with_the_current_user(self):
        # Setup
        class MyView(JournalScopeMixin, TemplateView):
            template_name = "dummy.html"

        user = UserFactory.create()
        journal = JournalFactory.create(collection=self.collection)
        url = reverse("userspace:journal:information:update", kwargs={"journal_pk": journal.pk})
        request = self.get_request(url)
        request.user = user
        my_view = MyView.as_view()

        # Run & check
        with self.assertRaises(PermissionDenied):
            my_view(request, journal_pk=self.journal.pk)
Example #11
0
    def test_returns_a_403_error_if_no_organisation_can_be_associated_with_the_current_user(self):
        # Setup
        class MyView(OrganisationScopeMixin, TemplateView):
            template_name = 'dummy.html'

        user = UserFactory.create()
        url = reverse(
            'userspace:library:home', kwargs={'organisation_pk': self.organisation.pk})
        request = self.get_request(url)
        request.user = user
        my_view = MyView.as_view()

        # Run & check
        with self.assertRaises(PermissionDenied):
            my_view(request, organisation_pk=self.organisation.pk)
Example #12
0
    def test_returns_a_403_error_if_no_journal_can_be_associated_with_the_current_user(
            self):
        # Setup
        class MyView(JournalScopeMixin, TemplateView):
            template_name = 'dummy.html'

        user = UserFactory.create()
        journal = JournalFactory.create(collection=self.collection)
        url = reverse('userspace:journal:information:update',
                      kwargs={'journal_pk': journal.pk})
        request = self.get_request(url)
        request.user = user
        my_view = MyView.as_view()

        # Run & check
        with self.assertRaises(PermissionDenied):
            my_view(request, journal_pk=self.journal.pk)
Example #13
0
    def test_can_return_all_the_journals_if_the_user_is_a_member_of_a_production_team(self):
        # Setup
        class MyView(JournalScopeMixin, TemplateView):
            allow_production_team_access = True
            template_name = "dummy.html"

        user = UserFactory.create()
        group = GroupFactory.create(name="Production team")
        ProductionTeamFactory.create(group=group, identifier="main")
        user.groups.add(group)

        journal = JournalFactory.create(collection=self.collection)
        url = reverse("userspace:journal:information:update", kwargs={"journal_pk": journal.pk})
        request = self.get_request(url)
        request.user = user
        my_view = MyView()
        my_view.request = request

        # Run & check
        journals = my_view.get_user_journals()
        assert journals
        assert list(journals) == list(Journal.objects.filter(collection__code="erudit"))
Example #14
0
    def setup(self):
        self.client = Client()

        self.user = UserFactory.create(username='******')
        self.user.set_password('notsecret')
        self.user.save()

        self.organisation = OrganisationFactory.create()
        self.organisation.members.add(self.user)
        self.subscription = JournalAccessSubscriptionFactory.create(organisation=self.organisation)
        now_dt = dt.datetime.now()
        JournalAccessSubscriptionPeriodFactory.create(
            subscription=self.subscription,
            start=now_dt - dt.timedelta(days=10),
            end=now_dt + dt.timedelta(days=8))

        # Set up some images used for doing image tests
        images_dict = {}

        # Fetch an image aimed to be resized
        f = open(settings.MEDIA_ROOT + "/200x200.png", "rb")
        images_dict['200x200'] = File(f)

        self.images_dict = images_dict

        yield

        # teardown
        # --

        for img in self.images_dict.values():
            img.close()

        try:
            self.organisation.badge.delete()
        except:
            pass
        self.organisation.delete()
Example #15
0
 def test_can_return_only_organisations_that_are_associated_with_a_valid_subscription(self):
     # Setup
     org_1 = OrganisationFactory.create()
     org_2 = OrganisationFactory.create()
     org_3 = OrganisationFactory.create()
     user = UserFactory.create()
     org_1.members.add(user)
     org_2.members.add(user)
     org_3.members.add(user)
     subscription_1 = JournalAccessSubscriptionFactory.create(organisation=org_1)
     subscription_2 = JournalAccessSubscriptionFactory.create(organisation=org_2)
     JournalAccessSubscriptionFactory.create(organisation=org_3)
     now_dt = dt.datetime.now()
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_1,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt + dt.timedelta(days=8))
     JournalAccessSubscriptionPeriodFactory.create(
         subscription=subscription_2,
         start=now_dt - dt.timedelta(days=10),
         end=now_dt - dt.timedelta(days=8))
     # Run & check
     self.assertEqual(list(get_managed_organisations(user)), [org_1, ])
Example #16
0
 def setup(self):
     self.client = Client()
     self.user = UserFactory.create(username='******')
     self.user.set_password('notsecret')
     self.user.save()
Example #17
0
 def setup(self):
     self.client = Client()
     self.user = UserFactory.create(username='******')
     self.user.set_password('notsecret')
     self.user.save()