コード例 #1
0
    def test_render_all_reject_requirements(self):
        """Testing MyAccountView renders all forms when a user has rejected all
        consent decisions
        """
        settings = {
            'privacy_enable_user_consent': True,
        }
        user = User.objects.get(username='******')
        get_consent_tracker().record_consent_data_list(user, [
            requirement.build_consent_data(granted=False)
            for requirement in get_consent_requirements_registry()
        ])

        request = RequestFactory().get('/account/preferences')
        request.user = User.objects.get(username='******')
        view = MyAccountView()

        self.client.login(username='******', password='******')

        with self.siteconfig_settings(settings):
            rsp = self.client.get('/account/preferences/')

            self.assertEqual(rsp.status_code, 200)
            context = rsp.context

            self.assertEqual(context['render_sidebar'], True)
            self.assertEqual(
                {type(page)
                 for page in context['pages']}, {
                     account_page
                     for account_page in AccountPage.registry
                     if account_page(view, request, request.user).is_visible()
                 })
コード例 #2
0
ファイル: test_consent_views.py プロジェクト: chipx86/djblets
    def test_mixin_reject_policy(self):
        """Testing CheckPendingConsentMixin when the user has rejected the
        policy requirement
        """
        policy_requirement = PolicyConsentRequirement(
            'https://example.com/',
            'https://example.com/',
            reject_instructions='Obey.')

        self.registry.register(policy_requirement)

        request = self.request_factory.get('/')
        request.user = User.objects.create_user(username='******',
                                                email='*****@*****.**')

        get_consent_tracker().record_consent_data_list(
            request.user,
            [
                ConsentData(BenevolentConsentRequirement.requirement_id,
                            granted=True),
                ConsentData(NefariousConsentRequirement.requirement_id,
                            granted=False),
                policy_requirement.build_consent_data(granted=False),
            ])

        rsp = MixinView.as_view()(request)

        self.assertIsInstance(rsp, HttpResponseRedirect)
        self.assertEqual(rsp.url, '/consent')
コード例 #3
0
    def test_for_user_with_consent_checks_and_consent_granted(self):
        """Testing AvatarServiceRegistry.for_user with consent checks enabled
        and consent granted
        """
        class DummyAvatarServiceRegistry(AvatarServiceRegistry):
            settings_manager_class = DummySettingsManager(
                GravatarService.avatar_service_id, {})
            default_avatar_service_classes = [
                GravatarService,
                DummyAvatarService,
            ]

        registry = DummyAvatarServiceRegistry()
        registry.enable_service(GravatarService, save=False)
        registry.enable_service(DummyAvatarService, save=False)
        registry.set_default_service(DummyAvatarService, save=False)

        user = User.objects.create(username='******')

        settings = {
            AvatarServiceRegistry.ENABLE_CONSENT_CHECKS: True,
        }

        get_consent_tracker().record_consent_data(
            user,
            ConsentData(requirement_id=GravatarService.consent_requirement_id,
                        granted=True))

        with self.siteconfig_settings(settings):
            self.assertIsInstance(registry.for_user(user), GravatarService)
コード例 #4
0
    def test_render_only_privacy_form_if_reject_policy_reject_others(self):
        """Testing MyAccountView only renders privacy policy when a user has
        rejected the privacy policy/terms of service and rejected all other
        requirements
        """
        settings = {
            'privacy_enable_user_consent': True,
            'privacy_policy_url': 'https://example.com',
            'terms_of_service_url': 'https://example.com',
        }

        user = User.objects.get(username='******')

        # Accept all consent requirements *except* the policy.
        get_consent_tracker().record_consent_data_list(user, [
            requirement.build_consent_data(granted=False)
            for requirement in get_consent_requirements_registry()
        ])

        self.client.login(username='******', password='******')

        with self.siteconfig_settings(settings):
            rsp = self.client.get('/account/preferences/')

        self.assertEqual(rsp.status_code, 200)
        context = rsp.context

        self.assertEqual(context['render_sidebar'], False)
        self.assertEqual(len(context['forms']), 1)
        self.assertIsInstance(context['forms'][0], PrivacyForm)
コード例 #5
0
    def test_render_only_privacy_form_if_reject_policy_reject_others(self):
        """Testing MyAccountView only renders privacy policy when a user has
        rejected the privacy policy/terms of service and rejected all other
        requirements
        """
        settings = {
            'privacy_enable_user_consent': True,
            'privacy_policy_url': 'https://example.com',
            'terms_of_service_url': 'https://example.com',
        }

        user = User.objects.get(username='******')

        # Accept all consent requirements *except* the policy.
        get_consent_tracker().record_consent_data_list(
            user,
            [
                requirement.build_consent_data(granted=False)
                for requirement in get_consent_requirements_registry()
            ])

        self.client.login(username='******', password='******')

        with self.siteconfig_settings(settings):
            rsp = self.client.get('/account/preferences/')

        self.assertEqual(rsp.status_code, 200)
        context = rsp.context

        self.assertEqual(context['render_sidebar'], False)
        self.assertEqual(len(context['forms']), 1)
        self.assertIsInstance(context['forms'][0], PrivacyForm)
コード例 #6
0
    def test_init(self):
        """Testing ConsentConfigPageFormMixin.__init__ defines field"""
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement_2.build_consent_data(granted=False))

        form = MyForm(page=self.page,
                      request=self.request,
                      user=self.user)
        self.assertIn('consent', form.fields)

        field = form.fields['consent']
        self.assertEqual(field.initial, [Consent.UNSET, Consent.DENIED])
        self.assertEqual(
            field.consent_requirements,
            [self.consent_requirement_1, self.consent_requirement_2])

        for subfield in field.fields:
            self.assertEqual(subfield.consent_source,
                             'http://testserver/consent/')
            self.assertEqual(
                subfield.extra_consent_data,
                {
                    'test': True,
                })
コード例 #7
0
    def test_mixin_reject_policy(self):
        """Testing CheckPendingConsentMixin when the user has rejected the
        policy requirement
        """
        policy_requirement = PolicyConsentRequirement(
            'https://example.com/',
            'https://example.com/',
            reject_instructions='Obey.')

        self.registry.register(policy_requirement)

        request = self.request_factory.get('/')
        request.user = User.objects.create_user(username='******',
                                                email='*****@*****.**')

        get_consent_tracker().record_consent_data_list(request.user, [
            ConsentData(BenevolentConsentRequirement.requirement_id,
                        granted=True),
            ConsentData(NefariousConsentRequirement.requirement_id,
                        granted=False),
            policy_requirement.build_consent_data(granted=False),
        ])

        rsp = MixinView.as_view()(request)

        self.assertIsInstance(rsp, HttpResponseRedirect)
        self.assertEqual(rsp.url, '/consent')
コード例 #8
0
ファイル: tests.py プロジェクト: chipx86/djblets
    def test_for_user_with_consent_checks_and_consent_denied(self):
        """Testing AvatarServiceRegistry.for_user with consent checks enabled
        and consent denied
        """
        class DummyAvatarServiceRegistry(AvatarServiceRegistry):
            settings_manager_class = DummySettingsManager(
                GravatarService.avatar_service_id, {})
            default_avatar_service_classes = [
                GravatarService,
                DummyAvatarService,
            ]

        registry = DummyAvatarServiceRegistry()
        registry.enable_service(GravatarService, save=False)
        registry.enable_service(DummyAvatarService, save=False)
        registry.set_default_service(DummyAvatarService, save=False)

        user = User.objects.create(username='******')

        settings = {
            AvatarServiceRegistry.ENABLE_CONSENT_CHECKS: True,
        }

        get_consent_tracker().record_consent_data(
            user,
            ConsentData(requirement_id=GravatarService.consent_requirement_id,
                        granted=False))

        with self.siteconfig_settings(settings):
            self.assertIsInstance(registry.for_user(user), DummyAvatarService)
コード例 #9
0
    def test_set_initial_from_user(self):
        """Testing ConsentRequirementField.set_initial_from_user"""
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement.build_consent_data(granted=False))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, Consent.DENIED)
コード例 #10
0
    def test_set_initial_from_user(self):
        """Testing MultiConsentRequirementsField.set_initial_from_user"""
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement_2.build_consent_data(granted=True))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, [Consent.UNSET, Consent.GRANTED])
コード例 #11
0
    def test_set_initial_from_user(self):
        """Testing MultiConsentRequirementsField.set_initial_from_user"""
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement_2.build_consent_data(granted=True))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, [Consent.UNSET, Consent.GRANTED])
コード例 #12
0
    def test_set_initial_from_user(self):
        """Testing ConsentRequirementField.set_initial_from_user"""
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement.build_consent_data(granted=False))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, Consent.DENIED)
コード例 #13
0
    def test_init_with_user_and_existing_consent(self):
        """Testing ConsentRequirementField.__init__ with user and existing
        consent data
        """
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement.build_consent_data(granted=True))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, Consent.GRANTED)
コード例 #14
0
    def test_init_with_user_and_existing_consent(self):
        """Testing ConsentRequirementField.__init__ with user and existing
        consent data
        """
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement.build_consent_data(granted=True))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, Consent.GRANTED)
コード例 #15
0
    def save_consent(self, user):
        """Save the consent information recorded in the form.

        Args:
            user (django.contrib.auth.models.User):
                The user who made the consent decisions.
        """
        assert self.is_valid()
        assert user
        assert user.is_authenticated()

        get_consent_tracker().record_consent_data_list(
            user, self.cleaned_data[self.consent_field_name])
コード例 #16
0
ファイル: forms.py プロジェクト: chipx86/djblets
    def save_consent(self, user):
        """Save the consent information recorded in the form.

        Args:
            user (django.contrib.auth.models.User):
                The user who made the consent decisions.
        """
        assert self.is_valid()
        assert user
        assert user.is_authenticated()

        get_consent_tracker().record_consent_data_list(
            user,
            self.cleaned_data[self.consent_field_name])
コード例 #17
0
ファイル: privacy.py プロジェクト: chipx86/reviewboard
def is_consent_missing(user):
    """Return whether the user is missing any consent requirements.

    Args:
        user (django.contrib.auth.models.User):
            The user in question.

    Returns:
        bool:
        Whether or not the user is missing any consent requirements.
    """
    siteconfig = SiteConfiguration.objects.get_current()

    if not siteconfig.get('privacy_enable_user_consent'):
        return False

    consent_tracker = get_consent_tracker()
    pending_consent = consent_tracker.get_pending_consent_requirements(
        user)

    needs_accept_policies = (
        (siteconfig.get('privacy_policy_url') or
         siteconfig.get('terms_of_service_url')) and
        (consent_tracker.get_consent(
            user,
            PolicyConsentRequirement.requirement_id) !=
         Consent.GRANTED)
    )

    return needs_accept_policies or pending_consent
コード例 #18
0
ファイル: views.py プロジェクト: chipx86/djblets
    def decorated(request, *args, **kwargs):
        user = request.user

        if user.is_authenticated():
            pending_requirements = \
                get_consent_tracker().get_pending_consent_requirements(user)
            policy_requirement = \
                get_consent_requirements_registry().get_consent_requirement(
                    PolicyConsentRequirement.requirement_id)

            if (pending_requirements or
                (policy_requirement is not None and
                 (policy_requirement.get_consent(user) !=
                  Consent.GRANTED))):
                redirect_url = getattr(settings, _CONSENT_REDIRECT_SETTING,
                                       None)

                if redirect_url is None:
                    raise ImproperlyConfigured(
                        'settings.%s must be set.' % _CONSENT_REDIRECT_SETTING
                    )

                if callable(redirect_url):
                    redirect_url = redirect_url(request)

                return HttpResponseRedirect(redirect_url)

        return view(request, *args, **kwargs)
コード例 #19
0
def is_consent_missing(user):
    """Return whether the user is missing any consent requirements.

    Args:
        user (django.contrib.auth.models.User):
            The user in question.

    Returns:
        bool:
        Whether or not the user is missing any consent requirements.
    """
    siteconfig = SiteConfiguration.objects.get_current()

    if not siteconfig.get('privacy_enable_user_consent'):
        return False

    consent_tracker = get_consent_tracker()
    pending_consent = consent_tracker.get_pending_consent_requirements(
        user)

    needs_accept_policies = (
        (siteconfig.get('privacy_policy_url') or
         siteconfig.get('terms_of_service_url')) and
        (consent_tracker.get_consent(
            user,
            PolicyConsentRequirement.requirement_id) !=
         Consent.GRANTED)
    )

    return needs_accept_policies or pending_consent
コード例 #20
0
    def decorated(request, *args, **kwargs):
        user = request.user

        if user.is_authenticated():
            pending_requirements = \
                get_consent_tracker().get_pending_consent_requirements(user)
            policy_requirement = \
                get_consent_requirements_registry().get_consent_requirement(
                    PolicyConsentRequirement.requirement_id)

            if (pending_requirements or
                (policy_requirement is not None and
                 (policy_requirement.get_consent(user) != Consent.GRANTED))):
                redirect_url = getattr(settings, _CONSENT_REDIRECT_SETTING,
                                       None)

                if redirect_url is None:
                    raise ImproperlyConfigured('settings.%s must be set.' %
                                               _CONSENT_REDIRECT_SETTING)

                if callable(redirect_url):
                    redirect_url = redirect_url(request)

                return HttpResponseRedirect(redirect_url)

        return view(request, *args, **kwargs)
コード例 #21
0
ファイル: test_consent_views.py プロジェクト: chipx86/djblets
    def test_mixin_some_met(self):
        """Testing CheckPendingConsentMixin when a user has some pending
        consent decisions
        """
        request = self.request_factory.get('/')
        request.user = User.objects.create_user(
            username='******', email='*****@*****.**')

        get_consent_tracker().record_consent_data(
            request.user,
            ConsentData(BenevolentConsentRequirement.requirement_id,
                        granted=True))

        rsp = MixinView.as_view()(request)

        self.assertIsInstance(rsp, HttpResponseRedirect)
        self.assertEqual(rsp.url, '/consent')
コード例 #22
0
    def test_mixin_some_met(self):
        """Testing CheckPendingConsentMixin when a user has some pending
        consent decisions
        """
        request = self.request_factory.get('/')
        request.user = User.objects.create_user(username='******',
                                                email='*****@*****.**')

        get_consent_tracker().record_consent_data(
            request.user,
            ConsentData(BenevolentConsentRequirement.requirement_id,
                        granted=True))

        rsp = MixinView.as_view()(request)

        self.assertIsInstance(rsp, HttpResponseRedirect)
        self.assertEqual(rsp.url, '/consent')
コード例 #23
0
    def for_user(self, user, service_id=None, allow_consent_checks=True):
        """Return the requested avatar service for the given user.

        The following options will be tried:

        * The requested avatar service (if it is enabled)
        * The user's chosen avatar service (if it is enabled)
        * The default avatar service (which may be ``None``)

        Args:
            user (django.contrib.auth.models.User):
                The user to retrieve the avatar service for.

            service_id (unicode, optional):
                The unique identifier of the service that is to be retrieved.
                If this is ``None``, the default service will be used.

            allow_consent_checks (bool, optional):
                Whether to allow consent checks to take place, if required
                by the application settings and avatar backends. This should
                only be disabled if presenting configuration options or
                similar.

        Returns:
            djblets.avatars.services.base.AvatarService:
            An avatar service, or ``None`` if one could not be found.
        """
        settings_manager = self.settings_manager_class(user)
        user_service_id = settings_manager.avatar_service_id
        siteconfig = SiteConfiguration.objects.get_current()
        services = []

        for sid in (service_id, user_service_id):
            if sid is None or not self.has_service(sid):
                continue

            if self.is_enabled(self.get('avatar_service_id', sid)):
                services.append(self.get_avatar_service(sid))

        services.append(self.default_service)

        if (allow_consent_checks and siteconfig.get(
                AvatarServiceRegistry.ENABLE_CONSENT_CHECKS)):
            # Filter out any services requiring consent that the user has not
            # consented to.
            consent_tracker = get_consent_tracker()

            services = [
                service for service in services
                if (not service.consent_requirement_id or consent_tracker.
                    get_consent(user, service.consent_requirement_id) ==
                    Consent.GRANTED)
            ]

        if services:
            return services[0]

        return None
コード例 #24
0
    def test_get_consent(self):
        """Testing BaseConsentRequirement.get_consent"""
        requirement = MyConsentRequirement()
        timestamp = datetime(2018, 1, 2, 13, 14, 15, tzinfo=timezone.utc)
        user = User.objects.create(username='******')

        consent_data = ConsentData(
            requirement_id='my-requirement',
            granted=True,
            timestamp=timestamp,
            source='http://example.com/account/profile/#consent',
            extra_data={
                'test': True,
            })

        get_consent_tracker().record_consent_data(user, consent_data)

        self.assertEqual(requirement.get_consent(user), Consent.GRANTED)
コード例 #25
0
    def test_get_consent(self):
        """Testing BaseConsentRequirement.get_consent"""
        requirement = MyConsentRequirement()
        timestamp = datetime(2018, 1, 2, 13, 14, 15, tzinfo=timezone.utc)
        user = User.objects.create(username='******')

        consent_data = ConsentData(
            requirement_id='my-requirement',
            granted=True,
            timestamp=timestamp,
            source='http://example.com/account/profile/#consent',
            extra_data={
                'test': True,
            })

        get_consent_tracker().record_consent_data(user, consent_data)

        self.assertEqual(requirement.get_consent(user), Consent.GRANTED)
コード例 #26
0
    def test_mixin_all_met(self):
        """Testing CheckPendingConsentMixin when a user has no pending consent
        decisions
        """
        request = self.request_factory.get('/')
        request.user = User.objects.create_user(username='******',
                                                email='*****@*****.**')

        get_consent_tracker().record_consent_data_list(request.user, [
            ConsentData(BenevolentConsentRequirement.requirement_id,
                        granted=True),
            ConsentData(NefariousConsentRequirement.requirement_id,
                        granted=False),
        ])

        rsp = MixinView.as_view()(request)

        self.assertNotIsInstance(rsp, HttpResponseRedirect)
        self.assertIsInstance(rsp, HttpResponse)
        self.assertEqual(rsp.content, b'ok')
コード例 #27
0
    def test_init(self):
        """Testing ConsentConfigPageFormMixin.__init__ defines field"""
        get_consent_tracker().record_consent_data(
            self.user,
            self.consent_requirement_2.build_consent_data(granted=False))

        form = MyForm(page=self.page, request=self.request, user=self.user)
        self.assertIn('consent', form.fields)

        field = form.fields['consent']
        self.assertEqual(field.initial, [Consent.UNSET, Consent.DENIED])
        self.assertEqual(
            field.consent_requirements,
            [self.consent_requirement_1, self.consent_requirement_2])

        for subfield in field.fields:
            self.assertEqual(subfield.consent_source,
                             'http://testserver/consent/')
            self.assertEqual(subfield.extra_consent_data, {
                'test': True,
            })
コード例 #28
0
    def test_render_all_accept_requirements(self):
        """Testing MyAccountView renders all forms when a user has accepted all
        requirements
        """
        settings = {
            'privacy_enable_user_consent': True,
        }
        user = User.objects.get(username='******')
        get_consent_tracker().record_consent_data_list(
            user,
            [
                requirement.build_consent_data(granted=True)
                for requirement in get_consent_requirements_registry()
            ])

        request = RequestFactory().get('/account/preferences')
        request.user = User.objects.get(username='******')
        view = MyAccountView()

        self.client.login(username='******', password='******')

        with self.siteconfig_settings(settings):
            rsp = self.client.get('/account/preferences/')

            self.assertEqual(rsp.status_code, 200)
            context = rsp.context

            self.assertEqual(context['render_sidebar'], True)
            self.assertEqual(
                {
                    type(page)
                    for page in context['pages']
                    if page.is_visible()
                },
                {
                    account_page
                    for account_page in AccountPage.registry
                    if account_page(view, request, request.user).is_visible()
                })
コード例 #29
0
ファイル: test_consent_views.py プロジェクト: chipx86/djblets
    def test_mixin_all_met(self):
        """Testing CheckPendingConsentMixin when a user has no pending consent
        decisions
        """
        request = self.request_factory.get('/')
        request.user = User.objects.create_user(username='******',
                                                email='*****@*****.**')

        get_consent_tracker().record_consent_data_list(
            request.user,
            [
                ConsentData(BenevolentConsentRequirement.requirement_id,
                            granted=True),
                ConsentData(NefariousConsentRequirement.requirement_id,
                            granted=False),
            ])

        rsp = MixinView.as_view()(request)

        self.assertNotIsInstance(rsp, HttpResponseRedirect)
        self.assertIsInstance(rsp, HttpResponse)
        self.assertEqual(rsp.content, b'ok')
コード例 #30
0
    def test_init_with_user_and_existing_consent(self):
        """Testing MultiConsentRequirementsField.__init__ with user and
        existing consent data
        """
        tracker = get_consent_tracker()

        tracker.record_consent_data(
            self.user,
            self.consent_requirement_1.build_consent_data(granted=True))
        tracker.record_consent_data(
            self.user,
            self.consent_requirement_2.build_consent_data(granted=False))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, [Consent.GRANTED, Consent.DENIED])
コード例 #31
0
    def test_with_consent_required_and_consent_pending(self):
        """Testing @valid_prefs_required with privacy_enable_user_consent=True
        and pending consent
        """
        Profile.objects.create(user=self.user)

        consent_tracker = get_consent_tracker()
        all_consent = consent_tracker.get_all_consent(self.user)
        self.assertEqual(all_consent, {})

        with self.siteconfig_settings({'privacy_enable_user_consent': True}):
            response = self._view_func(self.request)

        self.assertIs(type(response), HttpResponseRedirect)
        self.assertEqual(response.url, '/account/preferences/?next=/')
コード例 #32
0
    def test_init_with_user_and_existing_consent(self):
        """Testing MultiConsentRequirementsField.__init__ with user and
        existing consent data
        """
        tracker = get_consent_tracker()

        tracker.record_consent_data(
            self.user,
            self.consent_requirement_1.build_consent_data(granted=True))
        tracker.record_consent_data(
            self.user,
            self.consent_requirement_2.build_consent_data(granted=False))

        self.field.set_initial_from_user(self.user)
        self.assertEqual(self.field.initial, [Consent.GRANTED, Consent.DENIED])
コード例 #33
0
    def test_with_consent_required_and_consent_pending(self):
        """Testing @valid_prefs_required with privacy_enable_user_consent=True
        and pending consent
        """
        Profile.objects.create(user=self.user)

        consent_tracker = get_consent_tracker()
        all_consent = consent_tracker.get_all_consent(self.user)
        self.assertEqual(all_consent, {})

        with self.siteconfig_settings({'privacy_enable_user_consent': True}):
            response = self._view_func(self.request)

        self.assertIs(type(response), HttpResponseRedirect)
        self.assertEqual(response.url, '/account/preferences/?next=/')
コード例 #34
0
ファイル: mixins.py プロジェクト: chipx86/reviewboard
    def accept_policies(self, user):
        """Accept the linked policies for the given user.

        Args:
            user (django.contrib.auth.models.User):
                The user who has accepted the privacy policy and/or terms of
                service.
        """
        if self.policies_enabled:
            consent_registry = get_consent_requirements_registry()
            requirement = consent_registry.get_consent_requirement(
                PolicyConsentRequirement.requirement_id)

            consent_tracker = get_consent_tracker()
            consent_tracker.record_consent_data(
                user, requirement.build_consent_data(granted=True))
コード例 #35
0
ファイル: mixins.py プロジェクト: ParikhKadam/reviewboard
    def accept_policies(self, user):
        """Accept the linked policies for the given user.

        Args:
            user (django.contrib.auth.models.User):
                The user who has accepted the privacy policy and/or terms of
                service.
        """
        if self.policies_enabled:
            consent_registry = get_consent_requirements_registry()
            requirement = consent_registry.get_consent_requirement(
                PolicyConsentRequirement.requirement_id)

            consent_tracker = get_consent_tracker()
            consent_tracker.record_consent_data(
                user, requirement.build_consent_data(granted=True))
コード例 #36
0
    def test_with_consent_required_and_no_consent_pending(self):
        """Testing @valid_prefs_required with privacy_enable_user_consent=True
        and no pending consent
        """
        Profile.objects.create(user=self.user)

        consent_tracker = get_consent_tracker()
        consent_tracker.record_consent_data_list(self.user, [
            consent_requirement.build_consent_data(granted=True)
            for consent_requirement in get_consent_requirements_registry()
        ])

        all_consent = consent_tracker.get_all_consent(self.user)
        self.assertNotEqual(all_consent, {})

        with self.siteconfig_settings({'privacy_enable_user_consent': True}):
            response = self._view_func(self.request)

        self.assertIs(type(response), HttpResponse)
コード例 #37
0
    def test_with_consent_required_and_no_consent_pending(self):
        """Testing @valid_prefs_required with privacy_enable_user_consent=True
        and no pending consent
        """
        Profile.objects.create(user=self.user)

        consent_tracker = get_consent_tracker()
        consent_tracker.record_consent_data_list(
            self.user,
            [
                consent_requirement.build_consent_data(granted=True)
                for consent_requirement in get_consent_requirements_registry()
            ])

        all_consent = consent_tracker.get_all_consent(self.user)
        self.assertNotEqual(all_consent, {})

        with self.siteconfig_settings({'privacy_enable_user_consent': True}):
            response = self._view_func(self.request)

        self.assertIs(type(response), HttpResponse)
コード例 #38
0
 def test_get_consent_tracker_with_custom(self):
     """Testing get_consent_tracker with custom tracker"""
     self.assertIsInstance(get_consent_tracker(), CustomConsentTracker)
コード例 #39
0
 def test_get_consent_tracker_with_default(self):
     """Testing get_consent_tracker with default tracker"""
     self.assertIsInstance(get_consent_tracker(), DatabaseConsentTracker)