Ejemplo n.º 1
0
    def test_is_request_to_misago(self):
        """
        is_request_to_misago correctly detects requests directed at Misago
        """
        VALID_PATHS = (
            '/',
            '/threads/',
        )
        INVALID_PATHS = (
            '',
            'somewhere/',
        )

        misago_prefix = reverse('misago:index')

        for path in VALID_PATHS:
            request = RequestFactory().get('/')
            request.path = path
            self.assertTrue(
                is_request_to_misago(request),
                '"%s" is not overlapped by "%s"' % (path, misago_prefix))

        for path in INVALID_PATHS:
            request = RequestFactory().get('/')
            request.path = path
            self.assertFalse(
                is_request_to_misago(request),
                '"%s" is overlapped by "%s"' % (path, misago_prefix))
Ejemplo n.º 2
0
    def test_response_change_change_history_setting_off(self):
        """
        Test the response_change method that it works with a _change_history
        in the POST and settings.SIMPLE_HISTORY_EDIT set to False
        """
        request = RequestFactory().post("/")
        request.POST = {"_change_history": True}
        request.session = "session"
        request._messages = FallbackStorage(request)
        request.path = "/awesome/url/"
        request.user = self.user

        poll = Poll.objects.create(question="why?", pub_date=today)
        poll.question = "how?"
        poll.save()

        admin_site = AdminSite()
        admin = SimpleHistoryAdmin(Poll, admin_site)

        response = admin.response_change(request, poll)

        with patch("simple_history.admin.admin.ModelAdmin.response_change"
                   ) as m_admin:
            m_admin.return_value = "it was called"
            response = admin.response_change(request, poll)

        self.assertEqual(response, "it was called")
Ejemplo n.º 3
0
    def test_response_change_change_history_setting_off(self):
        """
        Test the response_change method that it works with a _change_history
        in the POST and settings.SIMPLE_HISTORY_EDIT set to False
        """
        request = RequestFactory().post('/')
        request.POST = {'_change_history': True}
        request.session = 'session'
        request._messages = FallbackStorage(request)
        request.path = '/awesome/url/'
        request.user = self.user

        poll = Poll.objects.create(question="why?", pub_date=today)
        poll.question = "how?"
        poll.save()

        admin_site = AdminSite()
        admin = SimpleHistoryAdmin(Poll, admin_site)

        response = admin.response_change(request, poll)

        with patch(
            'simple_history.admin.admin.ModelAdmin.response_change'
        ) as m_admin:
            m_admin.return_value = 'it was called'
            response = admin.response_change(request, poll)

        self.assertEqual(response, 'it was called')
Ejemplo n.º 4
0
def create_mock_request():
    """
    Creates and returns a mock request object for testing.
    """
    request = RequestFactory()
    request.COOKIES = {}
    request.META = {}
    request.path = '/'
    return request
Ejemplo n.º 5
0
def create_mock_request():
    """
    Creates and returns a mock request object for testing.
    """
    request = RequestFactory()
    request.COOKIES = {}
    request.META = {}
    request.path = '/'
    return request
Ejemplo n.º 6
0
    def test_cms_plugins_lti_consumer_context_and_html(self):
        """
        Instanciating this plugin with an instance should render the template.
        """
        placeholder = Placeholder.objects.create(slot="test")

        url = "http://localhost:8060/lti/videos/"
        resizing = random.choice([True, False])
        edit = random.choice([True, False])
        lti_providers = {
            "lti_provider_test": {
                "base_url": "http://localhost:8060/lti/videos/",
                "is_base_url_regex": False,
                "automatic_resizing": resizing,
                "inline_ratio": 0.3312,
                "oauth_consumer_key": "TestOauthConsumerKey",
                "shared_secret": "TestSharedSecret",
            }
        }

        request = RequestFactory()
        request.user = AnonymousUser()
        request.session = {}
        request.path = "/"
        request.toolbar = CMSToolbar(request)
        request.toolbar.edit_mode_active = edit
        global_context = {"request": request}

        model_instance = add_plugin(
            placeholder,
            LTIConsumerPlugin,
            "en",
            url=url,
            lti_provider_id="lti_provider_test",
        )
        plugin_instance = model_instance.get_plugin_class_instance()

        # Check context
        with override_settings(RICHIE_LTI_PROVIDERS=lti_providers):
            context = plugin_instance.render(global_context, model_instance,
                                             None)

        self.assertEqual(context["instance"], model_instance)
        renderer = ContentRenderer(request=request)
        with override_settings(RICHIE_LTI_PROVIDERS=lti_providers):
            html = renderer.render_plugin(model_instance, global_context)

        self.assertIn(str(model_instance.pk), html)
        self.assertIn('style="padding-bottom: 33.12%"', html)
Ejemplo n.º 7
0
    def test_is_request_to_misago(self):
        """
        is_request_to_misago correctly detects requests directed at Kaopu
        """
        VALID_PATHS = ("/", "/threads/")
        INVALID_PATHS = ("", "somewhere/")

        misago_prefix = reverse("misago:index")

        for path in VALID_PATHS:
            request = RequestFactory().get("/")
            request.path = path
            self.assertTrue(
                is_request_to_misago(request),
                '"%s" is not overlapped by "%s"' % (path, misago_prefix),
            )

        for path in INVALID_PATHS:
            request = RequestFactory().get("/")
            request.path = path
            self.assertFalse(
                is_request_to_misago(request),
                '"%s" is overlapped by "%s"' % (path, misago_prefix),
            )
Ejemplo n.º 8
0
    def test_is_request_to_misago(self):
        """
        is_request_to_misago correctly detects requests directed at Misago
        """
        VALID_PATHS = ("/", "/threads/")
        INVALID_PATHS = ("", "somewhere/")

        misago_prefix = reverse("misago:index")

        for path in VALID_PATHS:
            request = RequestFactory().get("/")
            request.path = path
            self.assertTrue(
                is_request_to_misago(request),
                '"%s" is not overlapped by "%s"' % (path, misago_prefix),
            )

        for path in INVALID_PATHS:
            request = RequestFactory().get("/")
            request.path = path
            self.assertFalse(
                is_request_to_misago(request),
                '"%s" is overlapped by "%s"' % (path, misago_prefix),
            )
Ejemplo n.º 9
0
    def test_response_change(self):
        """
        Test the response_change method that it works with a _change_history
        in the POST and settings.SIMPLE_HISTORY_EDIT set to True
        """
        request = RequestFactory().post("/")
        request.POST = {"_change_history": True}
        request.session = "session"
        request._messages = FallbackStorage(request)
        request.path = "/awesome/url/"

        poll = Poll.objects.create(question="why?", pub_date=today)
        poll.question = "how?"
        poll.save()

        admin_site = AdminSite()
        admin = SimpleHistoryAdmin(Poll, admin_site)

        with patch("simple_history.admin.SIMPLE_HISTORY_EDIT", True):
            response = admin.response_change(request, poll)

        self.assertEqual(response["Location"], "/awesome/url/")
Ejemplo n.º 10
0
    def test_response_change(self):
        """
        Test the response_change method that it works with a _change_history
        in the POST and settings.SIMPLE_HISTORY_EDIT set to True
        """
        request = RequestFactory().post('/')
        request.POST = {'_change_history': True}
        request.session = 'session'
        request._messages = FallbackStorage(request)
        request.path = '/awesome/url/'

        poll = Poll.objects.create(question="why?", pub_date=today)
        poll.question = "how?"
        poll.save()

        admin_site = AdminSite()
        admin = SimpleHistoryAdmin(Poll, admin_site)

        with patch('simple_history.admin.SIMPLE_HISTORY_EDIT', True):
            response = admin.response_change(request, poll)

        self.assertEqual(response['Location'], '/awesome/url/')
Ejemplo n.º 11
0
    def test_lti_consumer_cms_plugins_context_and_html_manual_inline_ratio(self):
        """
        If the LTI configuration is manual, the inline ratio is set to the value of
        the "inline_ratio" field on the plugin instance.
        """
        placeholder = Placeholder.objects.create(slot="test")

        url = "http://localhost:8060/lti/videos/"
        edit = random.choice([True, False])
        lti_providers = {
            "lti_provider_test": {
                "oauth_consumer_key": "TestOauthConsumerKey",
                "shared_secret": "TestSharedSecret",
            }
        }

        request = RequestFactory()
        request.user = AnonymousUser()
        request.session = {}
        request.path = "/"
        request.toolbar = CMSToolbar(request)
        request.toolbar.edit_mode_active = edit
        global_context = {"request": request}

        model_instance = add_plugin(
            placeholder,
            LTIConsumerPlugin,
            "en",
            url=url,
            lti_provider_id=None,
            inline_ratio=0.2217,
        )

        renderer = ContentRenderer(request=request)
        with override_settings(RICHIE_LTI_PROVIDERS=lti_providers):
            html = renderer.render_plugin(model_instance, global_context)

        self.assertIn(str(model_instance.pk), html)
        self.assertIn('style="padding-bottom: 22.17%"', html)