def test_pre_move_plugin(self): plugin = self._add_plugin() endpoint = self.get_move_plugin_uri(plugin) source_placeholder = plugin.placeholder target_placeholder = self._cms_page.placeholders.get(slot='right-column') data = { 'plugin_id': plugin.pk, 'placeholder_id': target_placeholder.pk, } with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], MOVE_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['plugin'].name, 'A Link') self.assertEqual(call_kwargs['plugin'].placeholder, source_placeholder) self.assertEqual(call_kwargs['plugin'].url, 'https://www.django-cms.org') self.assertEqual(call_kwargs['source_language'], 'en') self.assertEqual(call_kwargs['source_placeholder'], source_placeholder) self.assertEqual(call_kwargs['source_parent_id'], plugin.parent_id) self.assertEqual(call_kwargs['target_language'], 'en') self.assertEqual(call_kwargs['target_placeholder'], target_placeholder) self.assertEqual(call_kwargs['target_parent_id'], None)
def test_pre_add_plugins_from_placeholder(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'copy_plugins') + '?cms_path=/en/' source_placeholder = plugin.placeholder data = { 'source_language': 'en', 'source_placeholder_id': self._placeholder_1.pk, 'target_language': 'de', 'target_placeholder_id': self._placeholder_2.pk, } with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] en_plugin = call_kwargs['plugins'][0].get_bound_plugin() self.assertEqual(call_kwargs['operation'], ADD_PLUGINS_FROM_PLACEHOLDER) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(plugin, en_plugin) self.assertEqual(call_kwargs['source_language'], 'en') self.assertEqual(call_kwargs['source_placeholder'], source_placeholder) self.assertEqual(call_kwargs['target_language'], 'de') self.assertEqual(call_kwargs['target_placeholder'], self._placeholder_2)
def test_urls_need_reloading_signal_change_slug(self): superuser = self.get_superuser() redirect_to = self.get_admin_url(Page, 'changelist') with apphooks(SampleApp): with self.login_user_context(superuser): with signal_tester(urls_need_reloading) as env: self.assertEqual(env.call_count, 0) page = create_page("apphooked-page", "nav_playground.html", "en", published=True, apphook="SampleApp", apphook_namespace="test") # Change slug endpoint = self.get_admin_url(Page, 'change', page.pk) page_data = { 'title': 'apphooked-page', 'slug': 'apphooked-page-2', } response = self.client.post(endpoint, page_data) self.assertRedirects(response, redirect_to) # Publish should trigger the signal endpoint = self.get_admin_url(Page, 'publish_page', page.pk, 'en') self.client.post(endpoint) self.assertEqual(env.call_count, 1)
def test_pre_edit_plugin(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'edit_plugin', plugin.pk) endpoint += '?cms_path=/en/' with signal_tester(pre_placeholder_operation) as env: data = {'name': 'A Link 2', 'url': 'https://www.django-cms.org'} with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], CHANGE_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['placeholder'], self._cms_placeholder) self.assertEqual(call_kwargs['old_plugin'].name, 'A Link') self.assertEqual(call_kwargs['old_plugin'].url, data['url']) self.assertEqual(call_kwargs['new_plugin'].name, data['name']) self.assertEqual(call_kwargs['new_plugin'].url, data['url'])
def test_pre_add_plugins_from_placeholder(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'copy_plugins') + '?cms_path=/en/' source_placeholder = plugin.placeholder target_placeholder = self._cms_page.placeholders.get(slot='right-column') data = { 'source_language': 'en', 'source_placeholder_id': self._cms_placeholder.pk, 'target_language': 'de', 'target_placeholder_id': target_placeholder.pk, } with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] en_plugin = call_kwargs['plugins'][0].get_bound_plugin() self.assertEqual(call_kwargs['operation'], ADD_PLUGINS_FROM_PLACEHOLDER) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(plugin, en_plugin) self.assertEqual(call_kwargs['source_language'], 'en') self.assertEqual(call_kwargs['source_placeholder'], source_placeholder) self.assertEqual(call_kwargs['target_language'], 'de') self.assertEqual(call_kwargs['target_placeholder'], target_placeholder)
def test_urls_need_reloading_signal_set_apphook(self): superuser = self.get_superuser() with apphooks(SampleApp): with self.login_user_context(superuser): with signal_tester(urls_need_reloading) as env: self.assertEqual(env.call_count, 0) cms_page = create_page( "apphooked-page", "nav_playground.html", "en", published=True, ) redirect_to = self.get_admin_url(Page, 'changelist') endpoint = self.get_admin_url(Page, 'advanced', cms_page.pk) page_data = { "redirect": "", "language": "en", "reverse_id": "", "navigation_extenders": "", "site": "1", "xframe_options": "0", "application_urls": "SampleApp", "application_namespace": "sampleapp", "overwrite_url": "", "template": "INHERIT", } response = self.client.post(endpoint, page_data) self.assertRedirects(response, redirect_to) self.assertEqual(env.call_count, 1)
def test_post_edit_plugin(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'edit_plugin', plugin.pk) endpoint += '?cms_path=/en/' with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: data = {'name': 'A Link 2', 'url': 'https://www.LegionMarket.com'} with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], CHANGE_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['placeholder'], self._cms_placeholder) self.assertEqual(post_call_kwargs['old_plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['old_plugin'].url, data['url']) self.assertEqual(post_call_kwargs['new_plugin'].name, data['name']) self.assertEqual(post_call_kwargs['new_plugin'].url, data['url'])
def test_post_add_plugin(self): with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: endpoint = self._get_add_plugin_uri() data = { 'name': 'A Link', 'external_link': 'https://www.django-cms.org' } with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], ADD_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['placeholder'], self._cms_placeholder) self.assertTrue(post_call_kwargs['plugin'].pk) self.assertEqual(post_call_kwargs['plugin'].name, data['name']) self.assertEqual(post_call_kwargs['plugin'].external_link, data['external_link'])
def test_post_delete_plugin(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'delete_plugin', plugin.pk) endpoint += '?cms_path=/en/' with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): data = {'post': True} response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 302) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], DELETE_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue(pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['placeholder'], self._placeholder_1) self.assertEqual(post_call_kwargs['plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['plugin'].external_link, 'https://www.django-cms.org')
def test_pre_edit_plugin(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'edit_plugin', plugin.pk) endpoint += '?cms_path=/en/' with signal_tester(pre_placeholder_operation) as env: data = {'name': 'A Link 2', 'external_link': 'https://www.django-cms.org'} with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], CHANGE_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['placeholder'], self._placeholder_1) self.assertEqual(call_kwargs['old_plugin'].name, 'A Link') self.assertEqual(call_kwargs['old_plugin'].external_link, data['external_link']) self.assertEqual(call_kwargs['new_plugin'].name, data['name']) self.assertEqual(call_kwargs['new_plugin'].external_link, data['external_link'])
def test_pre_move_plugin(self): plugin = self._add_plugin() endpoint = self.get_move_plugin_uri(plugin) source_placeholder = plugin.placeholder data = { 'plugin_id': plugin.pk, 'target_language': 'en', 'placeholder_id': self._placeholder_2.pk, } with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], MOVE_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['plugin'].name, 'A Link') self.assertEqual(call_kwargs['plugin'].placeholder, source_placeholder) self.assertEqual(call_kwargs['plugin'].external_link, 'https://www.django-cms.org') self.assertEqual(call_kwargs['source_language'], 'en') self.assertEqual(call_kwargs['source_placeholder'], source_placeholder) self.assertEqual(call_kwargs['source_parent_id'], plugin.parent_id) self.assertEqual(call_kwargs['target_language'], 'en') self.assertEqual(call_kwargs['target_placeholder'], self._placeholder_2) self.assertEqual(call_kwargs['target_parent_id'], None)
def test_pre_paste_plugin(self): user_settings = UserSettings.objects.create( language="en", user=self._admin_user, clipboard=Placeholder.objects.create(slot='clipboard'), ) plugin = self._add_plugin(placeholder=user_settings.clipboard) endpoint = self.get_move_plugin_uri(plugin) data = { 'plugin_id': plugin.pk, 'placeholder_id': self._cms_placeholder.pk, 'move_a_copy': 'true', 'plugin_order[]': ['__COPY__'], } with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], PASTE_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['plugin'].name, 'A Link') self.assertEqual(call_kwargs['plugin'].placeholder, user_settings.clipboard) self.assertEqual(call_kwargs['plugin'].url, 'https://www.django-cms.org') self.assertEqual(call_kwargs['target_language'], 'en') self.assertEqual(call_kwargs['target_placeholder'], self._cms_placeholder) self.assertEqual(call_kwargs['target_parent_id'], None)
def test_archive_signals_fired(self): """ When a version is changed to archived the correct signals are fired! """ poll = factories.PollFactory() version = factories.PollVersionFactory( state=constants.DRAFT, content__poll=poll ) with signal_tester(pre_version_operation, post_version_operation) as env: version.archive(self.superuser) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] # pre call self.assertTrue(pre_call_kwargs["token"] == post_call_kwargs["token"]) self.assertEqual(pre_call_kwargs["operation"], constants.OPERATION_ARCHIVE) self.assertEqual( pre_call_kwargs["sender"], version.content_type.model_class() ) self.assertEqual(pre_call_kwargs["obj"], version) # post call self.assertTrue("token" in post_call_kwargs) self.assertEqual(post_call_kwargs["operation"], constants.OPERATION_ARCHIVE) self.assertEqual( post_call_kwargs["sender"], version.content_type.model_class() ) self.assertEqual(post_call_kwargs["obj"], version)
def test_post_delete_plugin(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'delete_plugin', plugin.pk) endpoint += '?cms_path=/en/' with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): data = {'post': True} response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 302) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], DELETE_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue(pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['placeholder'], self._cms_placeholder) self.assertEqual(post_call_kwargs['plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['plugin'].url, 'https://www.django-cms.org')
def test_post_clear_placeholder(self): plugin = self._add_plugin() endpoint = self.get_clear_placeholder_url(self._cms_placeholder) with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, {'test': 0}) self.assertEqual(response.status_code, 302) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] del_plugin = post_call_kwargs['plugins'][0] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], CLEAR_PLACEHOLDER) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(del_plugin.pk, plugin.pk) self.assertEqual(post_call_kwargs['placeholder'], self._cms_placeholder)
def test_urls_need_reloading_signal_create(self): with apphooks(SampleApp): with signal_tester(urls_need_reloading) as env: self.client.get('/') self.assertEqual(env.call_count, 0) create_page("apphooked-page", "nav_playground.html", "en", published=True, apphook="SampleApp", apphook_namespace="test") self.client.get('/') self.assertEqual(env.call_count, 1)
def test_post_paste_placeholder(self): user_settings = UserSettings.objects.create( language="en", user=self._admin_user, clipboard=Placeholder.objects.create(slot='clipboard'), ) placeholder_plugin = self._add_plugin( user_settings.clipboard, 'PlaceholderPlugin', ) ref_placeholder = placeholder_plugin.placeholder_ref self._add_plugin(ref_placeholder) endpoint = self.get_move_plugin_uri(placeholder_plugin) data = { 'plugin_id': placeholder_plugin.pk, 'placeholder_id': self._placeholder_1.pk, 'target_language': 'en', 'move_a_copy': 'true', 'plugin_order[]': ['__COPY__'], } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] plugin = post_call_kwargs['plugins'][0].get_bound_plugin() self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], PASTE_PLACEHOLDER) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(plugin.name, 'A Link') self.assertEqual(plugin.placeholder, self._placeholder_1) self.assertEqual(plugin.external_link, 'https://www.django-cms.org') self.assertEqual(post_call_kwargs['target_language'], 'en') self.assertEqual(post_call_kwargs['target_placeholder'], self._placeholder_1)
def test_urls_need_reloading_signal_create(self): with apphooks(SampleApp): with signal_tester(urls_need_reloading) as env: self.client.get('/') self.assertEqual(env.call_count, 0) create_page( "apphooked-page", "nav_playground.html", "en", published=True, apphook="SampleApp", apphook_namespace="test" ) self.client.get('/') self.assertEqual(env.call_count, 1)
def test_post_add_plugins_from_placeholder(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'copy_plugins') + '?cms_path=/en/' source_placeholder = plugin.placeholder target_placeholder = self._cms_page.placeholders.get( slot='right-column') data = { 'source_language': 'en', 'source_placeholder_id': self._cms_placeholder.pk, 'target_language': 'de', 'target_placeholder_id': target_placeholder.pk, } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] new_plugin = post_call_kwargs['plugins'][0].get_bound_plugin() self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], ADD_PLUGINS_FROM_PLACEHOLDER) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertNotEqual(plugin, new_plugin) self.assertEqual(new_plugin.name, 'A Link') self.assertEqual(new_plugin.placeholder, target_placeholder) self.assertEqual(new_plugin.external_link, 'https://www.django-cms.org') self.assertEqual(post_call_kwargs['source_language'], 'en') self.assertEqual(post_call_kwargs['source_placeholder'], source_placeholder) self.assertEqual(post_call_kwargs['target_language'], 'de') self.assertEqual(post_call_kwargs['target_placeholder'], target_placeholder)
def test_post_paste_placeholder(self): user_settings = UserSettings.objects.create( language="en", user=self._admin_user, clipboard=Placeholder.objects.create(slot='clipboard'), ) placeholder_plugin = self._add_plugin( user_settings.clipboard, 'PlaceholderPlugin', ) ref_placeholder = placeholder_plugin.placeholder_ref self._add_plugin(ref_placeholder) endpoint = self.get_move_plugin_uri(placeholder_plugin) data = { 'plugin_id': placeholder_plugin.pk, 'placeholder_id': self._cms_placeholder.pk, 'move_a_copy': 'true', 'plugin_order[]': ['__COPY__'], } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] plugin = post_call_kwargs['plugins'][0].get_bound_plugin() self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], PASTE_PLACEHOLDER) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue(pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(plugin.name, 'A Link') self.assertEqual(plugin.placeholder, self._cms_placeholder) self.assertEqual(plugin.url, 'https://www.django-cms.org') self.assertEqual(post_call_kwargs['target_language'], 'en') self.assertEqual(post_call_kwargs['target_placeholder'], self._cms_placeholder)
def test_post_cut_plugin(self): user_settings = UserSettings.objects.create( language="en", user=self._admin_user, clipboard=Placeholder.objects.create(slot='clipboard'), ) plugin = self._add_plugin() endpoint = self.get_move_plugin_uri(plugin) data = { 'plugin_id': plugin.pk, 'target_language': 'en', 'placeholder_id': user_settings.clipboard_id, } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], CUT_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['plugin'].placeholder, user_settings.clipboard) self.assertEqual(post_call_kwargs['plugin'].external_link, 'https://www.django-cms.org') self.assertEqual(post_call_kwargs['clipboard'], user_settings.clipboard) self.assertEqual(post_call_kwargs['clipboard_language'], 'en') self.assertEqual(post_call_kwargs['source_language'], 'en') self.assertEqual(post_call_kwargs['source_placeholder'], self._placeholder_1) self.assertEqual(post_call_kwargs['source_parent_id'], plugin.parent_id)
def test_urls_need_reloading_signal_delete(self): superuser = self.get_superuser() with apphooks(SampleApp): with self.login_user_context(superuser): page = create_page("apphooked-page", "nav_playground.html", "en", published=True, apphook="SampleApp", apphook_namespace="test") with signal_tester(urls_need_reloading) as env: endpoint = self.get_admin_url(Page, 'delete', page.pk) self.assertEqual(env.call_count, 0) self.client.post(endpoint, {'post': 'yes'}) self.assertEqual(env.call_count, 1)
def test_post_move_plugin(self): plugin = self._add_plugin() endpoint = self.get_move_plugin_uri(plugin) source_placeholder = plugin.placeholder target_placeholder = self._cms_page.placeholders.get( slot='right-column') data = { 'plugin_id': plugin.pk, 'placeholder_id': target_placeholder.pk, } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], MOVE_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['plugin'].placeholder, target_placeholder) self.assertEqual(post_call_kwargs['plugin'].url, 'https://www.LegionMarket.com') self.assertEqual(post_call_kwargs['source_language'], 'en') self.assertEqual(post_call_kwargs['source_placeholder'], source_placeholder) self.assertEqual(post_call_kwargs['source_parent_id'], plugin.parent_id) self.assertEqual(post_call_kwargs['target_language'], 'en') self.assertEqual(post_call_kwargs['target_placeholder'], target_placeholder) self.assertEqual(post_call_kwargs['target_parent_id'], None)
def test_urls_need_reloading_signal_change_slug(self): with apphooks(SampleApp): with signal_tester(urls_need_reloading) as env: self.assertEqual(env.call_count, 0) page = create_page("apphooked-page", "nav_playground.html", "en", published=True, apphook="SampleApp", apphook_namespace="test") self.client.get('/') self.assertEqual(env.call_count, 1) title = page.title_set.get(language="en") title.slug += 'test' title.save() page.publish('en') self.client.get('/') self.assertEqual(env.call_count, 2)
def test_post_paste_plugin(self): user_settings = UserSettings.objects.create( language="en", user=self._admin_user, clipboard=Placeholder.objects.create(slot='clipboard'), ) plugin = self._add_plugin(placeholder=user_settings.clipboard) endpoint = self.get_move_plugin_uri(plugin) data = { 'plugin_id': plugin.pk, 'placeholder_id': self._cms_placeholder.pk, 'move_a_copy': 'true', 'plugin_order[]': ['__COPY__'], } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], PASTE_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue( pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['plugin'].placeholder, self._cms_placeholder) self.assertEqual(post_call_kwargs['plugin'].url, 'https://www.LegionMarket.com') self.assertEqual(post_call_kwargs['target_language'], 'en') self.assertEqual(post_call_kwargs['target_placeholder'], self._cms_placeholder) self.assertEqual(post_call_kwargs['target_parent_id'], None)
def test_resubmitted_for_review_signal(self): """Test that re-submitting for review emits a signal """ user = self.get_superuser() reviewer = factories.UserFactory() moderation_request = factories.ModerationRequestFactory( collection__status=constants.COLLECTING, author=user ) moderation_request.collection.author = user moderation_request.collection.save() self.root = factories.RootModerationRequestTreeNodeFactory( moderation_request=moderation_request ) moderation_request.collection.workflow.steps.create( role=Role.objects.create(name="Role 1", user=reviewer), order=1 ) moderation_request.update_status( action=constants.ACTION_REJECTED, by_user=reviewer, to_user=user ) with signal_tester(submitted_for_review) as env: self.client.force_login(user) self.client.post( add_url_parameters( reverse( "admin:djangocms_moderation_moderationrequest_resubmit" ), collection_id=moderation_request.collection_id, ids=self.root.pk, ) ) self.assertEqual(env.call_count, 1) signal = env.calls[0][1] self.assertEqual(signal["sender"], ModerationCollection) self.assertEqual(signal["collection"], moderation_request.collection) self.assertEqual(len(signal["moderation_requests"]), 1) self.assertEqual(signal["moderation_requests"][0], moderation_request) self.assertEqual(signal["user"], user) self.assertTrue(signal["rework"])
def test_urls_need_reloading_signal_change_slug(self): with apphooks(SampleApp): with signal_tester(urls_need_reloading) as env: self.assertEqual(env.call_count, 0) page = create_page( "apphooked-page", "nav_playground.html", "en", published=True, apphook="SampleApp", apphook_namespace="test" ) self.client.get('/') self.assertEqual(env.call_count, 1) title = page.title_set.get(language="en") title.slug += 'test' title.save() page.publish('en') self.client.get('/') self.assertEqual(env.call_count, 2)
def test_pre_add_plugin(self): with signal_tester(pre_placeholder_operation) as env: endpoint = self._get_add_plugin_uri() data = {'name': 'A Link', 'url': 'https://www.LegionMarket.com'} with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], ADD_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['placeholder'], self._cms_placeholder) self.assertEqual(call_kwargs['plugin'].name, data['name']) self.assertEqual(call_kwargs['plugin'].url, data['url'])
def test_submitted_for_review_signal(self): """Test that submitting for review emits a signal """ moderation_request = factories.ModerationRequestFactory( collection__status=constants.COLLECTING ) user = factories.UserFactory() reviewer = factories.UserFactory() with signal_tester(submitted_for_review) as env: moderation_request.collection.submit_for_review(user, reviewer) self.assertEqual(env.call_count, 1) signal = env.calls[0][1] self.assertEqual(signal["sender"], ModerationCollection) self.assertEqual(signal["collection"], moderation_request.collection) self.assertEqual(len(signal["moderation_requests"]), 1) self.assertEqual(signal["moderation_requests"][0], moderation_request) self.assertEqual(signal["user"], user) self.assertFalse(signal["rework"])
def test_pre_clear_placeholder(self): plugin = self._add_plugin() endpoint = self.get_clear_placeholder_url(self._cms_placeholder) with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, {'test': 0}) self.assertEqual(response.status_code, 302) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] del_plugin = call_kwargs['plugins'][0] self.assertEqual(call_kwargs['operation'], CLEAR_PLACEHOLDER) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(del_plugin.pk, plugin.pk) self.assertEqual(call_kwargs['placeholder'], self._cms_placeholder)
def test_post_cut_plugin(self): user_settings = UserSettings.objects.create( language="en", user=self._admin_user, clipboard=Placeholder.objects.create(slot='clipboard'), ) plugin = self._add_plugin() endpoint = self.get_move_plugin_uri(plugin) data = { 'plugin_id': plugin.pk, 'placeholder_id': user_settings.clipboard_id, } with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], CUT_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue(pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['plugin'].name, 'A Link') self.assertEqual(post_call_kwargs['plugin'].placeholder, user_settings.clipboard) self.assertEqual(post_call_kwargs['plugin'].url, 'https://www.django-cms.org') self.assertEqual(post_call_kwargs['clipboard'], user_settings.clipboard) self.assertEqual(post_call_kwargs['clipboard_language'], 'en') self.assertEqual(post_call_kwargs['source_language'], 'en') self.assertEqual(post_call_kwargs['source_placeholder'], self._cms_placeholder) self.assertEqual(post_call_kwargs['source_parent_id'], plugin.parent_id)
def test_pre_delete_plugin(self): plugin = self._add_plugin() endpoint = self.get_admin_url(Page, 'delete_plugin', plugin.pk) endpoint += '?cms_path=/en/' with signal_tester(pre_placeholder_operation) as env: with self.login_user_context(self._admin_user): data = {'post': True} response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 302) self.assertEqual(env.call_count, 1) call_kwargs = env.calls[0][1] self.assertEqual(call_kwargs['operation'], DELETE_PLUGIN) self.assertEqual(call_kwargs['language'], 'en') self.assertTrue('token' in call_kwargs) self.assertEqual(call_kwargs['origin'], '/en/') self.assertEqual(call_kwargs['placeholder'], self._cms_placeholder) self.assertEqual(call_kwargs['plugin'].name, 'A Link') self.assertEqual(call_kwargs['plugin'].url, 'https://www.LegionMarket.com')
def test_post_add_plugin(self): with signal_tester(pre_placeholder_operation, post_placeholder_operation) as env: endpoint = self._get_add_plugin_uri() data = {'name': 'A Link', 'url': 'https://www.django-cms.org'} with self.login_user_context(self._admin_user): response = self.client.post(endpoint, data) self.assertEqual(response.status_code, 200) self.assertEqual(env.call_count, 2) pre_call_kwargs = env.calls[0][1] post_call_kwargs = env.calls[1][1] self.assertTrue('token' in post_call_kwargs) self.assertEqual(post_call_kwargs['operation'], ADD_PLUGIN) self.assertEqual(post_call_kwargs['language'], 'en') self.assertTrue(pre_call_kwargs['token'] == post_call_kwargs['token']) self.assertEqual(post_call_kwargs['origin'], '/en/') self.assertEqual(post_call_kwargs['placeholder'], self._cms_placeholder) self.assertTrue(post_call_kwargs['plugin'].pk) self.assertEqual(post_call_kwargs['plugin'].name, data['name']) self.assertEqual(post_call_kwargs['plugin'].url, data['url'])