1
1
from importlib import reload
2
2
3
3
from django .contrib import admin
4
+ from django .shortcuts import reverse
4
5
from django .test import RequestFactory , override_settings
5
6
6
7
from cms .test_utils .testcases import CMSTestCase
7
8
9
+ from djangocms_versioning .models import Version
10
+
8
11
from djangocms_snippet import admin as snippet_admin
9
12
from djangocms_snippet import cms_config
10
13
from djangocms_snippet .forms import SnippetForm
@@ -30,6 +33,7 @@ def test_admin_list_display_without_versioning(self):
30
33
admin .site .unregister (Snippet )
31
34
reload (cms_config )
32
35
reload (snippet_admin )
36
+ # This has to be declared again, since it will now be constructed without the versioning extension
33
37
self .snippet_admin = snippet_admin .SnippetAdmin (Snippet , admin )
34
38
35
39
list_display = self .snippet_admin .get_list_display (self .snippet_admin_request )
@@ -62,3 +66,34 @@ def test_admin_uses_form(self):
62
66
ensure the admin uses this.
63
67
"""
64
68
self .assertEqual (self .snippet_admin .form , SnippetForm )
69
+
70
+
71
+ class SnippetAdminFormTestCase (CMSTestCase ):
72
+ def setUp (self ):
73
+ self .add_url = reverse ("admin:djangocms_snippet_snippet_add" )
74
+ self .changelist_url = reverse ("admin:djangocms_snippet_snippet_changelist" )
75
+ self .superuser = self .get_superuser ()
76
+ self .snippet_grouper = SnippetGrouper .objects .create ()
77
+ self .snippet = Snippet .objects .create (
78
+ name = "Test Snippet" ,
79
+ slug = "test-snippet" ,
80
+ html = "<h1>This is a test</h1>" ,
81
+ snippet_grouper = self .snippet_grouper ,
82
+ )
83
+ self .snippet_version = Version .objects .create (content = self .snippet , created_by = self .superuser )
84
+
85
+ @override_settings (DJANGOCMS_SNIPPET_VERSIONING_ENABLED = True )
86
+ def test_admin_form_save_method (self ):
87
+ with self .login_user_context (self .superuser ):
88
+ response = self .client .post (
89
+ self .add_url ,
90
+ {
91
+ "name" : "Test Snippet 2" ,
92
+ "html" : "<p>Test Save Snippet</p>" ,
93
+ "slug" : "test-snippet-2" ,
94
+ })
95
+ self .assertRedirects (response , self .changelist_url )
96
+
97
+ # We should have 2 groupers and snippets, due to the creation of the others in setUp
98
+ self .assertEqual (Snippet ._base_manager .count (), 2 )
99
+ self .assertEqual (SnippetGrouper ._base_manager .count (), 2 )
0 commit comments