10
10
11
11
12
12
class PlaceholderAdminTestCase (CMSTestCase ):
13
-
14
13
def test_add_plugin_endpoint (self ):
15
14
"""
16
15
The Placeholder admin add_plugin endpoint works
17
16
"""
18
17
superuser = self .get_superuser ()
19
- placeholder = Placeholder .objects .create (slot = ' test' )
20
- plugins = placeholder .get_plugins ('en' ).filter (plugin_type = ' LinkPlugin' )
18
+ placeholder = Placeholder .objects .create (slot = " test" )
19
+ plugins = placeholder .get_plugins ("en" ).filter (plugin_type = " LinkPlugin" )
21
20
uri = self .get_add_plugin_uri (
22
21
placeholder = placeholder ,
23
- plugin_type = ' LinkPlugin' ,
24
- language = 'en' ,
22
+ plugin_type = " LinkPlugin" ,
23
+ language = "en" ,
25
24
)
26
25
with self .login_user_context (superuser ):
27
- data = {' name' : ' A Link' , ' external_link' : ' https://www.django-cms.org' }
26
+ data = {" name" : " A Link" , " external_link" : " https://www.django-cms.org" }
28
27
response = self .client .post (uri , data )
29
28
30
29
self .assertEqual (response .status_code , 200 )
@@ -35,28 +34,23 @@ def test_add_plugins_from_placeholder(self):
35
34
User can copy plugins from one placeholder to another
36
35
"""
37
36
superuser = self .get_superuser ()
38
- source_placeholder = Placeholder .objects .create (slot = ' source' )
39
- target_placeholder = Placeholder .objects .create (slot = ' target' )
37
+ source_placeholder = Placeholder .objects .create (slot = " source" )
38
+ target_placeholder = Placeholder .objects .create (slot = " target" )
40
39
source_plugin = self ._add_plugin_to_placeholder (source_placeholder )
41
40
endpoint = self .get_copy_plugin_uri (source_plugin )
42
41
with self .login_user_context (superuser ):
43
42
data = {
44
- ' source_language' : "en" ,
45
- ' source_placeholder_id' : source_placeholder .pk ,
46
- ' target_language' : "en" ,
47
- ' target_placeholder_id' : target_placeholder .pk ,
43
+ " source_language" : "en" ,
44
+ " source_placeholder_id" : source_placeholder .pk ,
45
+ " target_language" : "en" ,
46
+ " target_placeholder_id" : target_placeholder .pk ,
48
47
}
49
48
response = self .client .post (endpoint , data )
50
49
51
50
# Test that the target placeholder has the plugin copied from the source placeholder
52
51
self .assertEqual (response .status_code , 200 )
53
- self .assertTrue (source_placeholder .get_plugins ('en' ).filter (pk = source_plugin .pk ).exists ())
54
- self .assertTrue (
55
- target_placeholder
56
- .get_plugins ('en' )
57
- .filter (plugin_type = source_plugin .plugin_type )
58
- .exists ()
59
- )
52
+ self .assertTrue (source_placeholder .get_plugins ("en" ).filter (pk = source_plugin .pk ).exists ())
53
+ self .assertTrue (target_placeholder .get_plugins ("en" ).filter (plugin_type = source_plugin .plugin_type ).exists ())
60
54
61
55
def test_copy_plugins_to_clipboard (self ):
62
56
"""
@@ -68,27 +62,24 @@ def test_copy_plugins_to_clipboard(self):
68
62
user = superuser ,
69
63
clipboard = Placeholder .objects .create (),
70
64
)
71
- source_placeholder = Placeholder .objects .create (slot = ' source' )
65
+ source_placeholder = Placeholder .objects .create (slot = " source" )
72
66
source_plugin = self ._add_plugin_to_placeholder (source_placeholder )
73
67
endpoint = self .get_copy_plugin_uri (source_plugin )
74
68
with self .login_user_context (superuser ):
75
69
data = {
76
- ' source_language' : "en" ,
77
- ' source_placeholder_id' : source_placeholder .pk ,
78
- ' source_plugin_id' : source_plugin .pk ,
79
- ' target_language' : "en" ,
80
- ' target_placeholder_id' : user_settings .clipboard .pk ,
70
+ " source_language" : "en" ,
71
+ " source_placeholder_id" : source_placeholder .pk ,
72
+ " source_plugin_id" : source_plugin .pk ,
73
+ " target_language" : "en" ,
74
+ " target_placeholder_id" : user_settings .clipboard .pk ,
81
75
}
82
76
response = self .client .post (endpoint , data )
83
77
84
78
# Test that the target placeholder has the plugin copied from the source placeholder (clipboard)
85
79
self .assertEqual (response .status_code , 200 )
86
- self .assertTrue (source_placeholder .get_plugins ('en' ).filter (pk = source_plugin .pk ).exists ())
80
+ self .assertTrue (source_placeholder .get_plugins ("en" ).filter (pk = source_plugin .pk ).exists ())
87
81
self .assertTrue (
88
- user_settings .clipboard
89
- .get_plugins ('en' )
90
- .filter (plugin_type = source_plugin .plugin_type )
91
- .exists ()
82
+ user_settings .clipboard .get_plugins ("en" ).filter (plugin_type = source_plugin .plugin_type ).exists ()
92
83
)
93
84
94
85
def test_copy_placeholder_to_clipboard (self ):
@@ -101,54 +92,49 @@ def test_copy_placeholder_to_clipboard(self):
101
92
user = superuser ,
102
93
clipboard = Placeholder .objects .create (),
103
94
)
104
- source_placeholder = Placeholder .objects .create (slot = ' source' )
95
+ source_placeholder = Placeholder .objects .create (slot = " source" )
105
96
source_plugin = self ._add_plugin_to_placeholder (source_placeholder )
106
97
endpoint = self .get_copy_plugin_uri (source_plugin )
107
98
with self .login_user_context (superuser ):
108
99
data = {
109
- ' source_language' : "en" ,
110
- ' source_placeholder_id' : source_placeholder .pk ,
111
- ' target_language' : "en" ,
112
- ' target_placeholder_id' : user_settings .clipboard .pk ,
100
+ " source_language" : "en" ,
101
+ " source_placeholder_id" : source_placeholder .pk ,
102
+ " target_language" : "en" ,
103
+ " target_placeholder_id" : user_settings .clipboard .pk ,
113
104
}
114
105
response = self .client .post (endpoint , data )
115
106
116
107
self .assertEqual (response .status_code , 200 )
117
- self .assertTrue (source_placeholder .get_plugins ('en' ).filter (pk = source_plugin .pk ).exists ())
118
- self .assertTrue (
119
- user_settings .clipboard
120
- .get_plugins ('en' )
121
- .filter (plugin_type = 'PlaceholderPlugin' )
122
- .exists ()
123
- )
108
+ self .assertTrue (source_placeholder .get_plugins ("en" ).filter (pk = source_plugin .pk ).exists ())
109
+ self .assertTrue (user_settings .clipboard .get_plugins ("en" ).filter (plugin_type = "PlaceholderPlugin" ).exists ())
124
110
125
111
def test_edit_plugin_endpoint (self ):
126
112
"""
127
113
The Placeholder admin edit_plugins endpoint works
128
114
"""
129
115
superuser = self .get_superuser ()
130
- placeholder = Placeholder .objects .create (slot = ' edit_plugin_placeholder' )
116
+ placeholder = Placeholder .objects .create (slot = " edit_plugin_placeholder" )
131
117
plugin = self ._add_plugin_to_placeholder (placeholder )
132
118
endpoint = self .get_change_plugin_uri (plugin )
133
119
with self .login_user_context (superuser ):
134
- data = model_to_dict (plugin , fields = [' name' , ' external_link' ])
135
- data [' name' ] = ' Contents modified'
120
+ data = model_to_dict (plugin , fields = [" name" , " external_link" ])
121
+ data [" name" ] = " Contents modified"
136
122
response = self .client .post (endpoint , data )
137
123
plugin .refresh_from_db ()
138
124
139
125
self .assertEqual (response .status_code , 200 )
140
- self .assertEqual (plugin .name , data [' name' ])
126
+ self .assertEqual (plugin .name , data [" name" ])
141
127
142
128
def test_delete_plugin_endpoint (self ):
143
129
"""
144
130
The Placeholder admin delete_plugin endpoint works
145
131
"""
146
132
superuser = self .get_superuser ()
147
- placeholder = Placeholder .objects .create (slot = ' source' )
133
+ placeholder = Placeholder .objects .create (slot = " source" )
148
134
plugin = self ._add_plugin_to_placeholder (placeholder )
149
135
endpoint = self .get_delete_plugin_uri (plugin )
150
136
with self .login_user_context (superuser ):
151
- data = {' post' : True }
137
+ data = {" post" : True }
152
138
response = self .client .post (endpoint , data )
153
139
154
140
self .assertEqual (response .status_code , 302 )
@@ -159,14 +145,14 @@ def test_clear_placeholder_endpoint(self):
159
145
The Placeholder admin delete_plugin endpoint works
160
146
"""
161
147
superuser = self .get_superuser ()
162
- placeholder = Placeholder .objects .create (slot = ' source' )
148
+ placeholder = Placeholder .objects .create (slot = " source" )
163
149
self ._add_plugin_to_placeholder (placeholder )
164
150
endpoint = self .get_clear_placeholder_url (placeholder )
165
151
with self .login_user_context (superuser ):
166
- response = self .client .post (endpoint , {' test' : 0 })
152
+ response = self .client .post (endpoint , {" test" : 0 })
167
153
168
154
self .assertEqual (response .status_code , 302 )
169
- self .assertEqual (placeholder .get_plugins ('en' ).count (), 0 )
155
+ self .assertEqual (placeholder .get_plugins ("en" ).count (), 0 )
170
156
171
157
def _fill_page_body (self , page , lang ):
172
158
ph_en = page .get_placeholders (lang ).get (slot = "placeholder" )
@@ -183,19 +169,29 @@ def _fill_page_body(self, page, lang):
183
169
add_plugin (ph_en , "LinkPlugin" , lang , target = col4 , name = "A Link" , external_link = "https://www.django-cms.org" )
184
170
add_plugin (ph_en , "StylePlugin" , lang , target = col4 , tag_type = "div" )
185
171
186
- @override_settings (CMS_PLACEHOLDER_CONF = {
187
- 'simple.html' : {'excluded_plugins' : ['InheritPlugin' ]},
188
- })
172
+ @override_settings (
173
+ CMS_PLACEHOLDER_CONF = {
174
+ "simple.html" : {"excluded_plugins" : ["InheritPlugin" ]},
175
+ }
176
+ )
189
177
def test_object_edit_endpoint (self ):
190
- page = create_page (' Page 1' , ' simple.html' , 'en' )
191
- self ._fill_page_body (page , 'en' )
178
+ page = create_page (" Page 1" , " simple.html" , "en" )
179
+ self ._fill_page_body (page , "en" )
192
180
content = page .get_content_obj ()
193
- content_type = ContentType .objects .get (app_label = ' cms' , model = ' pagecontent' )
181
+ content_type = ContentType .objects .get (app_label = " cms" , model = " pagecontent" )
194
182
user = self .get_superuser ()
195
- settings = UserSettings .objects .create (language = "en" , user = user , clipboard = Placeholder .objects .create (slot = 'clipboard' ))
183
+ settings = UserSettings .objects .create (
184
+ language = "en" , user = user , clipboard = Placeholder .objects .create (slot = "clipboard" )
185
+ )
196
186
settings .clipboard .source = settings
197
187
settings .clipboard .save ()
198
- endpoint = admin_reverse ('cms_placeholder_render_object_edit' , args = (content_type .pk , content .pk ,))
188
+ endpoint = admin_reverse (
189
+ "cms_placeholder_render_object_edit" ,
190
+ args = (
191
+ content_type .pk ,
192
+ content .pk ,
193
+ ),
194
+ )
199
195
with self .login_user_context (user ):
200
196
with CaptureQueriesContext (connection ) as queries :
201
197
response = self .client .get (endpoint )
@@ -218,20 +214,30 @@ def test_object_edit_endpoint(self):
218
214
# 14. SELECT "cms_cmsplugin"."id", "cms_cmsplugin"."placeholder_id", "cms_cmsplugin"."parent_id", "cms_cmsplugin"."position", "cms_cmsplugin"."language", "cms_cmsplugin"."plugin_type", "cms_cmsplugin"."creation_date", "cms_cmsplugin"."changed_date", "link_link"."cmsplugin_ptr_id", "link_link"."name", "link_link"."external_link" FROM "link_link" INNER JOIN "cms_cmsplugin" ON ("link_link"."cmsplugin_ptr_id" = "cms_cmsplugin"."id") WHERE "link_link"."cmsplugin_ptr_id" IN (7) ORDER BY "cms_cmsplugin"."position" ASC
219
215
# 15. SELECT "cms_cmsplugin"."id", "cms_cmsplugin"."placeholder_id", "cms_cmsplugin"."parent_id", "cms_cmsplugin"."position", "cms_cmsplugin"."language", "cms_cmsplugin"."plugin_type", "cms_cmsplugin"."creation_date", "cms_cmsplugin"."changed_date", "style_style"."cmsplugin_ptr_id", "style_style"."label", "style_style"."tag_type", "style_style"."class_name", "style_style"."additional_classes" FROM "style_style" INNER JOIN "cms_cmsplugin" ON ("style_style"."cmsplugin_ptr_id" = "cms_cmsplugin"."id") WHERE "style_style"."cmsplugin_ptr_id" IN (9) ORDER BY "cms_cmsplugin"."position" ASC
220
216
221
- @override_settings (CMS_PLACEHOLDER_CONF = {
222
- 'simple.html' : {'excluded_plugins' : ['InheritPlugin' ]},
223
- })
217
+ @override_settings (
218
+ CMS_PLACEHOLDER_CONF = {
219
+ "simple.html" : {"excluded_plugins" : ["InheritPlugin" ]},
220
+ }
221
+ )
224
222
def test_object_structure_endpoint (self ):
225
- page = create_page (' Page 1' , ' simple.html' , 'en' )
226
- self ._fill_page_body (page , 'en' )
223
+ page = create_page (" Page 1" , " simple.html" , "en" )
224
+ self ._fill_page_body (page , "en" )
227
225
content = page .get_content_obj ()
228
- content_type = ContentType .objects .get (app_label = ' cms' , model = ' pagecontent' )
226
+ content_type = ContentType .objects .get (app_label = " cms" , model = " pagecontent" )
229
227
user = self .get_superuser ()
230
- settings = UserSettings .objects .create (language = "en" , user = user , clipboard = Placeholder .objects .create (slot = 'clipboard' ))
228
+ settings = UserSettings .objects .create (
229
+ language = "en" , user = user , clipboard = Placeholder .objects .create (slot = "clipboard" )
230
+ )
231
231
settings .clipboard .source = settings
232
232
settings .clipboard .save ()
233
233
234
- endpoint = admin_reverse ('cms_placeholder_render_object_structure' , args = (content_type .pk , content .pk ,))
234
+ endpoint = admin_reverse (
235
+ "cms_placeholder_render_object_structure" ,
236
+ args = (
237
+ content_type .pk ,
238
+ content .pk ,
239
+ ),
240
+ )
235
241
with self .login_user_context (user ):
236
242
with CaptureQueriesContext (connection ) as queries :
237
243
response = self .client .get (endpoint )
@@ -255,3 +261,24 @@ def test_object_structure_endpoint(self):
255
261
# 15. SELECT "cms_cmsplugin"."id", "cms_cmsplugin"."placeholder_id", "cms_cmsplugin"."parent_id", "cms_cmsplugin"."position", "cms_cmsplugin"."language", "cms_cmsplugin"."plugin_type", "cms_cmsplugin"."creation_date", "cms_cmsplugin"."changed_date", "link_link"."cmsplugin_ptr_id", "link_link"."name", "link_link"."external_link" FROM "link_link" INNER JOIN "cms_cmsplugin" ON ("link_link"."cmsplugin_ptr_id" = "cms_cmsplugin"."id") WHERE "link_link"."cmsplugin_ptr_id" IN (7) ORDER BY "cms_cmsplugin"."position" ASC
256
262
# 16. SELECT "cms_cmsplugin"."language" AS "language" FROM "cms_cmsplugin" WHERE "cms_cmsplugin"."placeholder_id" = 1 ORDER BY "cms_cmsplugin"."position" ASC
257
263
# 17. SELECT "cms_cmsplugin"."id", "cms_cmsplugin"."placeholder_id", "cms_cmsplugin"."parent_id", "cms_cmsplugin"."position", "cms_cmsplugin"."language", "cms_cmsplugin"."plugin_type", "cms_cmsplugin"."creation_date", "cms_cmsplugin"."changed_date", "style_style"."cmsplugin_ptr_id", "style_style"."label", "style_style"."tag_type", "style_style"."class_name", "style_style"."additional_classes" FROM "style_style" INNER JOIN "cms_cmsplugin" ON ("style_style"."cmsplugin_ptr_id" = "cms_cmsplugin"."id") WHERE "style_style"."cmsplugin_ptr_id" IN (9) ORDER BY "cms_cmsplugin"."position" ASC
264
+
265
+ def test_get_toolbar_endpoint (self ):
266
+ """Toolbar endpoint returns the toolbar including the page menu when called from the edit endpoint"""
267
+ page = create_page ("Page 1" , "simple.html" , "en" )
268
+ self ._fill_page_body (page , "en" )
269
+ content = page .get_content_obj ()
270
+ content_type = ContentType .objects .get (app_label = "cms" , model = "pagecontent" )
271
+ user = self .get_superuser ()
272
+ toolbar_endpoint = admin_reverse ("cms_usersettings_get_toolbar" )
273
+ edit_endpoint = admin_reverse (
274
+ "cms_placeholder_render_object_edit" ,
275
+ args = (
276
+ content_type .pk ,
277
+ content .pk ,
278
+ ),
279
+ )
280
+
281
+ with self .login_user_context (user ):
282
+ response = self .client .get (f"{ toolbar_endpoint } ?obj_id={ content .id } &obj_type=cms.pagecontent&cms_path={ edit_endpoint } " )
283
+
284
+ self .assertContains (response , '<span>Page<span class="cms-icon cms-icon-arrow"></span></span>' ) # Contains page menu
0 commit comments