1
+ from cms .models import PageContent
1
2
from django .conf import settings
2
3
from django .core .cache import cache
3
4
from django .template .base import Parser
4
5
from django .test import override_settings
5
6
from django .utils .functional import SimpleLazyObject
7
+ from djangocms_versioning .constants import INDICATOR_DESCRIPTIONS
6
8
7
9
from djangocms_page_meta import models
8
10
from djangocms_page_meta .forms import PageMetaAdminForm , TitleMetaAdminForm
@@ -182,7 +184,8 @@ def test_custom_extra(self):
182
184
page1 = self .create_pages ()[0 ]
183
185
page_meta = models .PageMeta .objects .create (extended_object = page1 )
184
186
page_meta .save ()
185
- title_meta = models .TitleMeta .objects .create (extended_object = page1 .get_content_obj ("en" ))
187
+ content = PageContent .admin_manager .get (page = page1 , language = "en" )
188
+ title_meta = models .TitleMeta .objects .create (extended_object = content )
186
189
title_meta .save ()
187
190
188
191
models .GenericMetaAttribute .objects .create (page = page_meta , attribute = "custom" , name = "attr" , value = "foo" )
@@ -196,37 +199,41 @@ def test_custom_extra(self):
196
199
meta = get_page_meta (page1 , "it" )
197
200
self .assertEqual (meta .extra_custom_props , [("custom" , "attr" , "foo" )])
198
201
199
- # def test_publish_extra(self):
200
- # """
201
- # Test that modified GenericMetaAttribute are not copied multiple times on page publish
202
- # See issue #78
203
- # """
204
- # page1 = self.create_pages()[0]
205
- # page_meta = models.PageMeta.objects.create(extended_object=page1)
206
- # title_meta = models.TitleMeta.objects.create(extended_object=page1.get_content_obj("en"))
207
- # models.GenericMetaAttribute.objects.create(page=page_meta, attribute="custom", name="attr", value="foo")
208
- # models.GenericMetaAttribute.objects.create(title=title_meta, attribute="custom", name="attr", value="bar")
209
- #
210
- # page1.publish("en")
211
- # page_meta.extra.first().attribute = "new"
212
- # page_meta.extra.first().save()
213
- # title_meta.extra.first().attribute = "new"
214
- # title_meta.extra.first().save()
215
- #
216
- # page1.publish("en")
217
- # public = page1.get_public_object()
218
- # page_meta = models.PageMeta.objects.get(extended_object=public)
219
- # title_meta = models.TitleMeta.objects.get(extended_object=public.get_content_obj("en"))
220
- # self.assertEqual(page_meta.extra.count(), 1)
221
- # self.assertEqual(title_meta.extra.count(), 1)
202
+ def test_publish_extra (self ):
203
+ """
204
+ Test that modified GenericMetaAttribute are not copied multiple times on page publish
205
+ See issue #78
206
+ """
207
+ page1 = self .create_pages ()[0 ]
208
+ page_meta = models .PageMeta .objects .create (extended_object = page1 )
209
+ content = PageContent .admin_manager .get (page = page1 , language = "en" )
210
+ title_meta = models .TitleMeta .objects .create (extended_object = content )
211
+ models .GenericMetaAttribute .objects .create (page = page_meta , attribute = "custom" , name = "attr" , value = "foo" )
212
+ models .GenericMetaAttribute .objects .create (title = title_meta , attribute = "custom" , name = "attr" , value = "bar" )
213
+
214
+ version = content .versions .first ()
215
+ version .publish (self .superuser )
216
+ page_meta .extra .first ().attribute = "new"
217
+ page_meta .extra .first ().save ()
218
+ title_meta .extra .first ().attribute = "new"
219
+ title_meta .extra .first ().save ()
220
+
221
+ new_version = version .copy (self .superuser )
222
+ new_version .publish (self .superuser )
223
+ public = page1 # page no longer versioned
224
+ page_meta = models .PageMeta .objects .get (extended_object = public )
225
+ title_meta = models .TitleMeta .objects .get (extended_object = public .get_content_obj ("en" ))
226
+ self .assertEqual (page_meta .extra .count (), 1 )
227
+ self .assertEqual (title_meta .extra .count (), 1 )
222
228
223
229
def test_str_methods (self ):
224
230
"""
225
231
Models str are created
226
232
"""
227
233
page1 = self .create_pages ()[0 ]
228
234
page_meta = models .PageMeta .objects .create (extended_object = page1 )
229
- title_meta = models .TitleMeta .objects .create (extended_object = page1 .get_content_obj ("en" ))
235
+ content = PageContent .admin_manager .get (page = page1 , language = "en" )
236
+ title_meta = models .TitleMeta .objects .create (extended_object = content )
230
237
default_meta_image = models .DefaultMetaImage .objects .first ()
231
238
page_attr = models .GenericMetaAttribute .objects .create (
232
239
page = page_meta , attribute = "custom" , name = "attr" , value = "foo"
@@ -236,7 +243,7 @@ def test_str_methods(self):
236
243
)
237
244
238
245
self .assertEqual (str (page_meta ), f"Page Meta for { page1 } " )
239
- self .assertEqual (str (title_meta ), f"Title Meta for { page1 . get_content_obj ( 'en' ) } " )
246
+ self .assertEqual (str (title_meta ), f"Page Content Meta for { content } : { INDICATOR_DESCRIPTIONS [ 'draft' ] } " )
240
247
self .assertEqual (str (default_meta_image ), f"{ default_meta_image .pk } " )
241
248
self .assertEqual (str (page_attr ), f"Attribute { page_attr .name } for { page_meta } " )
242
249
self .assertEqual (str (title_attr ), f"Attribute { title_attr .name } for { title_meta } " )
@@ -258,7 +265,8 @@ def test_cache_cleanup_on_update_delete_meta(self):
258
265
"""
259
266
page1 = self .create_pages ()[0 ]
260
267
page_meta = models .PageMeta .objects .create (extended_object = page1 )
261
- title_meta = models .TitleMeta .objects .create (extended_object = page1 .get_content_obj ("en" ))
268
+ content = PageContent .admin_manager .get (page = page1 , language = "en" )
269
+ title_meta = models .TitleMeta .objects .create (extended_object = content )
262
270
263
271
# cache objects
264
272
for language in page1 .get_languages ():
@@ -299,7 +307,8 @@ def test_cache_cleanup_on_update_delete_page(self):
299
307
"""
300
308
page1 = self .create_pages ()[0 ]
301
309
page_meta = models .PageMeta .objects .create (extended_object = page1 )
302
- title_meta = models .TitleMeta .objects .create (extended_object = page1 .get_content_obj ("en" ))
310
+ content = PageContent .admin_manager .get (page = page1 , language = "en" )
311
+ title_meta = models .TitleMeta .objects .create (extended_object = content )
303
312
304
313
# cache objects - cache keys must be pre calculated as the page will not exist anymore when running the
305
314
# asserts
0 commit comments