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))
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")
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')
def create_mock_request(): """ Creates and returns a mock request object for testing. """ request = RequestFactory() request.COOKIES = {} request.META = {} request.path = '/' return request
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)
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), )
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), )
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/")
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/')
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)