django-cms-qe 3.0.1__py3-none-any.whl → 3.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- cms_qe/boilerplates/bootstrap3/templates/cms_qe/home.html +1 -2
- cms_qe/settings/base/app.py +0 -1
- cms_qe/settings/base/cms.py +2 -1
- cms_qe_i18n/templates/cms_qe/i18n/language_switcher.html +0 -2
- cms_qe_newsletter/templates/admin/cms_qe_newsletter/mailinglist/change_list.html +0 -1
- cms_qe_table/templates/cms_qe/table/columns_widget.html +1 -2
- {django_cms_qe-3.0.1.dist-info → django_cms_qe-3.0.3.dist-info}/METADATA +2 -2
- {django_cms_qe-3.0.1.dist-info → django_cms_qe-3.0.3.dist-info}/RECORD +11 -61
- cms_qe/tests/__init__.py +0 -0
- cms_qe/tests/test_errors.py +0 -61
- cms_qe/tests/test_export.py +0 -108
- cms_qe/tests/test_monitoring.py +0 -15
- cms_qe/tests/test_utils.py +0 -77
- cms_qe/tests/test_views_security.py +0 -18
- cms_qe_analytical/LICENSE.txt +0 -19
- cms_qe_analytical/tests/__init__.py +0 -0
- cms_qe_analytical/tests/settings.py +0 -24
- cms_qe_analytical/tests/templatetags/__init__.py +0 -0
- cms_qe_analytical/tests/templatetags/dummy.py +0 -37
- cms_qe_analytical/tests/test_tag_google_analytics.py +0 -178
- cms_qe_analytical/tests/test_tag_piwik.py +0 -152
- cms_qe_analytical/tests/test_utils.py +0 -112
- cms_qe_analytical/tests/utils.py +0 -56
- cms_qe_auth/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-38.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-38.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_auth/tests/__init__.py +0 -0
- cms_qe_auth/tests/test_models.py +0 -70
- cms_qe_auth/tests/test_utils.py +0 -36
- cms_qe_auth/tests/test_view.py +0 -72
- cms_qe_auth/tests/utils.py +0 -22
- cms_qe_menu/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- cms_qe_menu/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_newsletter/tests/__init__.py +0 -0
- cms_qe_newsletter/tests/test_mailchimp.py +0 -38
- cms_qe_newsletter/tests/test_managment.py +0 -22
- cms_qe_newsletter/tests/test_models.py +0 -43
- cms_qe_newsletter/tests/test_plugin.py +0 -21
- cms_qe_newsletter/tests/test_sync.py +0 -71
- cms_qe_newsletter/tests/test_views.py +0 -13
- cms_qe_table/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- cms_qe_table/migrations/__pycache__/0002_tablepluginmodel_filter.cpython-38.pyc +0 -0
- cms_qe_table/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_table/static/cms_qe/css/table/columns-widget.css +0 -11
- cms_qe_table/static/cms_qe/js/table/Sortable.min.js +0 -2
- cms_qe_table/tests/__init__.py +0 -0
- cms_qe_table/tests/test_models.py +0 -23
- cms_qe_table/tests/test_plugin.py +0 -18
- cms_qe_table/tests/test_utils.py +0 -90
- cms_qe_video/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- cms_qe_video/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_video/tests/__init__.py +0 -0
- cms_qe_video/tests/test_models.py +0 -96
- cms_qe_video/tests/test_plugin.py +0 -24
- cms_qe_video/tests/test_templatetags.py +0 -20
- {django_cms_qe-3.0.1.dist-info → django_cms_qe-3.0.3.dist-info}/LICENSE +0 -0
- {django_cms_qe-3.0.1.dist-info → django_cms_qe-3.0.3.dist-info}/WHEEL +0 -0
- {django_cms_qe-3.0.1.dist-info → django_cms_qe-3.0.3.dist-info}/top_level.txt +0 -0
cms_qe/settings/base/app.py
CHANGED
cms_qe/settings/base/cms.py
CHANGED
|
@@ -55,7 +55,8 @@ CMSPLUGIN_FILER_IMAGE_DEFAULT_STYLE = 'main'
|
|
|
55
55
|
# Frontend plugins.
|
|
56
56
|
|
|
57
57
|
DJANGOCMS_FRONTEND_TAG_CHOICES = (
|
|
58
|
-
"div", "section", "article", "header", "footer", "aside", 'p', 'iframe', 'link', 'script', 'hgroup', 'figure'
|
|
58
|
+
"div", "section", "article", "header", "footer", "aside", 'p', 'iframe', 'link', 'script', 'hgroup', 'figure',
|
|
59
|
+
'figcaption'
|
|
59
60
|
)
|
|
60
61
|
|
|
61
62
|
DJANGOCMS_FRONTEND_GRID_CONTAINERS = (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: django-cms-qe
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.3
|
|
4
4
|
Summary: Django CMS Quick & Easy provides all important modules to run new page withouta lot of coding. Aims to do it very easily and securely.
|
|
5
5
|
Home-page: https://websites.pages.nic.cz/django-cms-qe
|
|
6
6
|
Author: CZ.NIC, z.s.p.o.
|
|
@@ -44,6 +44,7 @@ Requires-Dist: argon2-cffi ~=21.3
|
|
|
44
44
|
Requires-Dist: djangocms-aldryn-forms[captcha]
|
|
45
45
|
Requires-Dist: djangocms-aldryn-search
|
|
46
46
|
Requires-Dist: django-haystack ~=3.2
|
|
47
|
+
Requires-Dist: pymemcache ~=4.0
|
|
47
48
|
Requires-Dist: whoosh ~=2.7
|
|
48
49
|
Provides-Extra: build
|
|
49
50
|
Requires-Dist: Jinja2 <3.1.0 ; extra == 'build'
|
|
@@ -74,7 +75,6 @@ Requires-Dist: PyVirtualDisplay ==1.3.2 ; extra == 'test'
|
|
|
74
75
|
Requires-Dist: webdriverwrapper ==2.8.0 ; extra == 'test'
|
|
75
76
|
Requires-Dist: django-simple-captcha ==0.5.14 ; extra == 'test'
|
|
76
77
|
Requires-Dist: tzdata ; extra == 'test'
|
|
77
|
-
Requires-Dist: django-mptt ; extra == 'test'
|
|
78
78
|
|
|
79
79
|
# Django CMS QE
|
|
80
80
|
|
|
@@ -25,7 +25,7 @@ cms_qe/boilerplates/bootstrap3/static/cms_qe/js/bootstrap.min.js,sha256=U5ZEeKfG
|
|
|
25
25
|
cms_qe/boilerplates/bootstrap3/static/cms_qe/js/jquery_3.2.1.min.js,sha256=hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4,86659
|
|
26
26
|
cms_qe/boilerplates/bootstrap3/static/cms_qe/js/npm.js,sha256=x6qCoap9RSJKONkm0q2v9_5K71vNr6Kke9rAV_RCLC0,484
|
|
27
27
|
cms_qe/boilerplates/bootstrap3/templates/cms_qe/error.html,sha256=gHFQbT2KPAwnhos6uMk4gvijDjubwiOA-j_q9fASBZM,375
|
|
28
|
-
cms_qe/boilerplates/bootstrap3/templates/cms_qe/home.html,sha256=
|
|
28
|
+
cms_qe/boilerplates/bootstrap3/templates/cms_qe/home.html,sha256=swbpKbL2KJhDdnuLRUelfQn7xPxolzYye4fLrLjFVOM,1465
|
|
29
29
|
cms_qe/boilerplates/bootstrap3/templates/cmsplugin_filer_folder/plugins/folder/gallery.html,sha256=ZAbkXcsJ6mwAJt0vQNd55ZWB-BhJ_gtvtbnKx8PysV8,3107
|
|
30
30
|
cms_qe/haystack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
31
|
cms_qe/haystack/forms.py,sha256=HFBbmq6oH-Ao85xuqbfLfv1Bg-UyzT6Lug7BzHSyZ-I,851
|
|
@@ -45,10 +45,10 @@ cms_qe/settings/__init__.py,sha256=GJwHXMHwMuGYE-3ZzePJ-26I2WwE8bAIMUDoiTFr0L8,9
|
|
|
45
45
|
cms_qe/settings/dev.py,sha256=51CBwiclE8LLoNB2uioIK_L3JhM1yzukQ0gZimkcFqw,1487
|
|
46
46
|
cms_qe/settings/unittest.py,sha256=folLIMJb1Arh60_Sn0eNQrvIlx0OsAs6v1tDfyRZVuQ,514
|
|
47
47
|
cms_qe/settings/base/__init__.py,sha256=5yHfne9gPD_xuTaG3voZP23yzuCwROmif2mmKs-hG_A,446
|
|
48
|
-
cms_qe/settings/base/app.py,sha256=
|
|
48
|
+
cms_qe/settings/base/app.py,sha256=vzHEMzjghEuBrF0iALbvV5KE3rq4lZ8CVoaY-I5JXnA,3839
|
|
49
49
|
cms_qe/settings/base/auth.py,sha256=axEmEG5UYxyY3EE0keQjGZzkTv2iwxwfULr4LcvZPns,207
|
|
50
50
|
cms_qe/settings/base/cache.py,sha256=9p6C5lOz1pG-6k15PyvxlShUjBYIbU0ewpA8AX_YFus,297
|
|
51
|
-
cms_qe/settings/base/cms.py,sha256=
|
|
51
|
+
cms_qe/settings/base/cms.py,sha256=8icCNxcEp_KRDyP8-LXB21UurJL4wNysY39whAyt3I4,1855
|
|
52
52
|
cms_qe/settings/base/constants.py,sha256=hnPVUUcCAsgDqwSJ0Qqzj3bPEyIMonpEBX6dfGphCzc,6484
|
|
53
53
|
cms_qe/settings/base/database.py,sha256=qT7ePr2lg4CVJcHnG2nXFPPvzIjBOLB4auvRiWxaDPY,408
|
|
54
54
|
cms_qe/settings/base/email.py,sha256=agT6ZBAyT29TUEQIRYObAdgOSETLlZEi7KizNhr9dVc,357
|
|
@@ -74,12 +74,6 @@ cms_qe/templates/cmsplugin_filer_folder/plugins/folder/main.html,sha256=8IiTXNU4
|
|
|
74
74
|
cms_qe/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
75
75
|
cms_qe/templatetags/cms_qe_filters.py,sha256=ciYCXLuMVde-f_-B_7a5mHfAJPWPMxYEUMgCHpualRY,784
|
|
76
76
|
cms_qe/templatetags/kwacros.py,sha256=r2oHLltu8BgKKlrpgzXgvLjbIqwcrH13Lww3zTF-nr8,6275
|
|
77
|
-
cms_qe/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
-
cms_qe/tests/test_errors.py,sha256=sICTfVKbNbqDjpLvT_v485lML8P-MQBIyr9BJUDAKcw,2372
|
|
79
|
-
cms_qe/tests/test_export.py,sha256=mh6KO95gVt4Q7CTNDTHvHq4lQH-lFBVI5W4-cHImBto,3456
|
|
80
|
-
cms_qe/tests/test_monitoring.py,sha256=xa8mBu-TdBAUIUlnoWQpWtMDa5p8DmD0DCyR82Iu5K8,350
|
|
81
|
-
cms_qe/tests/test_utils.py,sha256=iPBDNE4YNsqw-nOfn2J0x74vgDl8xqvDJrFy7Z1U7yo,2535
|
|
82
|
-
cms_qe/tests/test_views_security.py,sha256=RvyilVNoAiWApgn3iWJk1t6IaVTn0z6zv5M5sOzyM18,701
|
|
83
77
|
cms_qe/views/__init__.py,sha256=3b5FCZ5MaqgiWglC7c5mfvP3WYLWTtNp3YpVb9BgYi8,106
|
|
84
78
|
cms_qe/views/errors.py,sha256=zUbCoyXy_MPsQv3UV1mgq-q2bwqPw9G4KgKU2-oue4w,3169
|
|
85
79
|
cms_qe/views/monitoring.py,sha256=1r2s_jm6B6P0gEmiqjH9m3loUW3BmJivvpg6qcUOxVM,1909
|
|
@@ -87,20 +81,11 @@ cms_qe/views/search_result.py,sha256=H1eMOmtONnWqBDsBvz3MartyHhh42vyi0jPoxWb0X8c
|
|
|
87
81
|
cms_qe/views/security.py,sha256=SNdJe4NSm1vuOGchVF3VqlmFDopt9xYoO-b4Y0UxkFU,1108
|
|
88
82
|
cms_qe/whoosh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
89
83
|
cms_qe/whoosh/backend.py,sha256=YOVJGz3htWdcSUbYtX2a9VqywAU3EJP_EvxXHCY0QVA,5418
|
|
90
|
-
cms_qe_analytical/LICENSE.txt,sha256=ptQIrnsiWFFf2LZ60DTAO6XA7CQYFuwhX1m4kzhv5_8,1072
|
|
91
84
|
cms_qe_analytical/__init__.py,sha256=G2QJmxgo4HbUvG4GObM7PcCodfo8SM2auAVQoa36mBY,4189
|
|
92
85
|
cms_qe_analytical/utils.py,sha256=oQRPUyGIWW4lfaVNBPuwBwvnLg-D2JWaRHgNQrwvjcU,5149
|
|
93
86
|
cms_qe_analytical/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
87
|
cms_qe_analytical/templatetags/google_analytics.py,sha256=cN87jJzwVcjhqSS2JKTmPt9WntuBLnzxEcwgjrQMJSg,7370
|
|
95
88
|
cms_qe_analytical/templatetags/piwik.py,sha256=EHOaojmewFpMqHzm_QCtCXGc_HGoiCJ_G-LPc8IfjM4,4131
|
|
96
|
-
cms_qe_analytical/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
|
-
cms_qe_analytical/tests/settings.py,sha256=o8gNKNCS6Pwqmih2MUxkt3PUpNljta3Xx2_HdZfS6dU,438
|
|
98
|
-
cms_qe_analytical/tests/test_tag_google_analytics.py,sha256=n3ocL7rrsS_J2uy-ECObaCV7VJ4BjF_Y2abOPh24Rgs,8227
|
|
99
|
-
cms_qe_analytical/tests/test_tag_piwik.py,sha256=CZ9u_3tYVXFvVkH3t5e0vyibzylFIGqPYEWUjqS6z_8,6186
|
|
100
|
-
cms_qe_analytical/tests/test_utils.py,sha256=XWaemXx9P8Aab9GJWgx60cH1pfPuZieSvlPJ8z05PCY,4062
|
|
101
|
-
cms_qe_analytical/tests/utils.py,sha256=iZgimMaZmzotuRchh7qs5IaxuUUSYg4-ufigR91jyMg,1413
|
|
102
|
-
cms_qe_analytical/tests/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
|
-
cms_qe_analytical/tests/templatetags/dummy.py,sha256=mIRwUFWsdkmvKkUShCFkpVZLunRD7XhdXevpnf5WSB0,920
|
|
104
89
|
cms_qe_auth/__init__.py,sha256=SZS-CdmFLgIN4WGaUX_780L-vH0lqC7CdxKWjm_EuxE,867
|
|
105
90
|
cms_qe_auth/admin.py,sha256=_Lj2OjIGRChal66ifTsin2iYW-UwLtd32WAT7__fLLY,140
|
|
106
91
|
cms_qe_auth/apps.py,sha256=YiIgOI3Bxj4-7IZdxUEvHmTK1xS9fR2qMS-fe5AZ-W0,191
|
|
@@ -128,10 +113,6 @@ cms_qe_auth/migrations/0003_auto_20210420_1050.py,sha256=i8uT8fXA1mFbuX0so4jlpHN
|
|
|
128
113
|
cms_qe_auth/migrations/0004_alter_user_first_name_alter_user_id.py,sha256=j_-cFFP9aIF-wMySrKD5LLMtAbfIPVkptcsIUMFBfAk,700
|
|
129
114
|
cms_qe_auth/migrations/0005_delete_group.py,sha256=iq-PbsNsBKjwH1L2oiaJM7jY3e0hIaOLLMR9pJOPTBk,315
|
|
130
115
|
cms_qe_auth/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
131
|
-
cms_qe_auth/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=perFamfKxrBQzJcYm-7oulAUmLXMmMdtJ8jrMl2zEus,2688
|
|
132
|
-
cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-38.pyc,sha256=XecadpTaucI9AxZOnPqhxOniAfZ78Eg_cQY1OslbOPk,595
|
|
133
|
-
cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-38.pyc,sha256=9xzSMWCagvSscKHrCJkZzG63iI_ZfEcyr8a__hvn2cM,815
|
|
134
|
-
cms_qe_auth/migrations/__pycache__/__init__.cpython-38.pyc,sha256=m9QynwzKsg11znmVPkP45MoXoPxKUbcLowSiUBtOqNY,163
|
|
135
116
|
cms_qe_auth/templates/cms_qe/auth/email_confirmation_complete.html,sha256=97o-axYK2wvRbYcKrrAjTkZL3jMZE7Vm4GHgWd6Lg5Q,309
|
|
136
117
|
cms_qe_auth/templates/cms_qe/auth/email_confirmation_fail.html,sha256=bG0yMFOHWswvFpGK7q5eLTLm6_CQlhJ75zs_CkBpFlw,199
|
|
137
118
|
cms_qe_auth/templates/cms_qe/auth/locked.html,sha256=4ieIR9Vzc9Igbjq5gfkB8SEupT1xOD1OnmwYgFfFg0U,303
|
|
@@ -157,11 +138,6 @@ cms_qe_auth/templates/cms_qe/auth/email/activation.html,sha256=5KzIsVw-r_3yzi47t
|
|
|
157
138
|
cms_qe_auth/templates/cms_qe/auth/email/activation.txt,sha256=rtNkt3bk-RHAWWU8TLS7JbJadHxAuTmW4TjQw6q4Czk,302
|
|
158
139
|
cms_qe_auth/templates/cms_qe/auth/email/base.html,sha256=PsNYnKORXRZuhhr0Xcg8ebvd-VuJPaBn3ghStCoW8tw,511
|
|
159
140
|
cms_qe_auth/templates/cms_qe/auth/email/base.txt,sha256=I7CXI7IuUYW_juVJIH1Dlc3asQlEmRMmJDf-thjqObU,142
|
|
160
|
-
cms_qe_auth/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
161
|
-
cms_qe_auth/tests/test_models.py,sha256=ps5FsQY9ohHHkxezWFwQn4Qv_XnZKSF6kxXm-fShW8s,2238
|
|
162
|
-
cms_qe_auth/tests/test_utils.py,sha256=NjV36oPUUF2eiaTt5SmO2u-dYQgLZiDr64VtpRbdMjI,767
|
|
163
|
-
cms_qe_auth/tests/test_view.py,sha256=LpIpWzU8QtjF0pRDkg24AiVM7lRiLSvS-rqVsMbWdsU,2284
|
|
164
|
-
cms_qe_auth/tests/utils.py,sha256=7aYvjZofMNBLA7VNwSxa1lp_eHnpURhIdvwaHnPmy_s,581
|
|
165
141
|
cms_qe_breadcrumb/__init__.py,sha256=RSHANxs85gpPyR2td66syP--Ue6d5AiTv4kbcLWQRRU,344
|
|
166
142
|
cms_qe_breadcrumb/cms_plugins.py,sha256=3-DFIh-LMn3-IL2UJM8Y8-zD-XuiWHMk1ZBXon1-Vls,387
|
|
167
143
|
cms_qe_breadcrumb/tests.py,sha256=4eZDHwEMYxRJCvE8XI4M6eJRbGZIaq8PvrzN5eqbBgI,540
|
|
@@ -3858,7 +3834,7 @@ cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_south-ossetia.ico,s
|
|
|
3858
3834
|
cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_united-nations.ico,sha256=Adir6XY9cjUR4Iel9o95xInxFWl1y35mcdtJOgSfvqw,34494
|
|
3859
3835
|
cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_unknown.ico,sha256=4QUYEy3tfuUXOZUxIfbv53QSqoW9dE6nslalptp1HkQ,34494
|
|
3860
3836
|
cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_wales.ico,sha256=IWW9vMqUf4rLamvkuPxBpBC-X1SLdhsEIdlSJ2m3Gqg,34494
|
|
3861
|
-
cms_qe_i18n/templates/cms_qe/i18n/language_switcher.html,sha256=
|
|
3837
|
+
cms_qe_i18n/templates/cms_qe/i18n/language_switcher.html,sha256=Y_nS1S6ePYaCJJlYPA0EW5VlQpQEXHicsST9JUQWk8I,285
|
|
3862
3838
|
cms_qe_menu/__init__.py,sha256=wwN6P4_9g5upVZVhJwwYKflTavlQUKSUx-ZuHuD51CQ,687
|
|
3863
3839
|
cms_qe_menu/cms_plugins.py,sha256=9re_M1jF-GoCqaEzCEP66cU2gz21SVl7B6D6UU5G-VA,445
|
|
3864
3840
|
cms_qe_menu/models.py,sha256=OXe4XqwZXPBnjYjiGWrnhZyOvqmEMVzRNP4F7OxRArc,2196
|
|
@@ -3872,8 +3848,6 @@ cms_qe_menu/locale/en/LC_MESSAGES/django.po,sha256=z6hX3eAFPSjRpHDD7OM5M7z8McizS
|
|
|
3872
3848
|
cms_qe_menu/migrations/0001_initial.py,sha256=S14tP7e2nuMhhsZJGJbMN11mQvi1JIoFuVfYGUc0aeI,1455
|
|
3873
3849
|
cms_qe_menu/migrations/0002_alter_menupluginmodel_cmsplugin_ptr.py,sha256=K889YBRId8FrBSf9MDRrCFEto9FkNX6mB4ErAV19A4g,765
|
|
3874
3850
|
cms_qe_menu/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3875
|
-
cms_qe_menu/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=BCxgJILcb1GHFioOi4RgxqRD5dw-lkDD-gEq5c7x4L8,1568
|
|
3876
|
-
cms_qe_menu/migrations/__pycache__/__init__.cpython-38.pyc,sha256=vOrW-cUdJfj00ZyRXSo1fNQfeIrAJtz5InMcmqdsgbg,163
|
|
3877
3851
|
cms_qe_menu/templates/cms_qe/menu/menu.html,sha256=Us7xVn09GxLoWXHSOIu5pXSCQaLF1vFy-Xy_nKAnxeg,333
|
|
3878
3852
|
cms_qe_menu/templates/cms_qe/menu/menu_tag.html,sha256=ZtB6qk8funm69hJaUMb8VfbUqe5ED4mcKu9-eAg6zh8,324
|
|
3879
3853
|
cms_qe_menu/templates/cms_qe/menu/submenu_tag.html,sha256=WAt0wMDMrbeCb5pxYXBkuS8alpveBFUnMa_YdRSSiPk,119
|
|
@@ -3903,19 +3877,10 @@ cms_qe_newsletter/management/commands/cms_qe_newsletter_sync.py,sha256=2aNQUGqGj
|
|
|
3903
3877
|
cms_qe_newsletter/migrations/0001_initial.py,sha256=zpbbaCss2a-DHi4L3IvSIlhH0dd7z79qF9QxUlvTn8E,3384
|
|
3904
3878
|
cms_qe_newsletter/migrations/0002_alter_mailinglist_id_and_more.py,sha256=rdU732lC12zBmDvcEnK11iMp1WwJ1E7U1TJT2xJ1z44,1513
|
|
3905
3879
|
cms_qe_newsletter/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3906
|
-
cms_qe_newsletter/
|
|
3907
|
-
cms_qe_newsletter/migrations/__pycache__/__init__.cpython-38.pyc,sha256=OgwvUliIAYr6QXZl89viRQ3JW9pa1_2voC_5C1xgul4,169
|
|
3908
|
-
cms_qe_newsletter/templates/admin/cms_qe_newsletter/mailinglist/change_list.html,sha256=JniZTuOuwc6wU7bg0sgQ5RcZvlwdcJDgc2hgrZbXY2Q,471
|
|
3880
|
+
cms_qe_newsletter/templates/admin/cms_qe_newsletter/mailinglist/change_list.html,sha256=SrqxWB61nIHDFavdjwVWq6CfyXV_mxG2-dxgm7x8vic,436
|
|
3909
3881
|
cms_qe_newsletter/templates/cms_qe/newsletter/form.html,sha256=5YsoZlQsxlBfMStROmK8V9T0-w5akjCu3a75GlpO9bk,385
|
|
3910
3882
|
cms_qe_newsletter/templates/cms_qe/newsletter/newsletter.html,sha256=0YnNGr4hNhAlkM-7ISeE8y1vRhFi7DdjJI_QH_B_ME4,195
|
|
3911
3883
|
cms_qe_newsletter/templates/cms_qe/newsletter/submitted.html,sha256=mOgMi56fuo3VFGC7P_uIA0XQQ7qAkG130s-WuvmF-n4,51
|
|
3912
|
-
cms_qe_newsletter/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3913
|
-
cms_qe_newsletter/tests/test_mailchimp.py,sha256=_fwNbNjeZA1plUWgFl_NSjly9jqyzG170Bt-mavSQvM,1159
|
|
3914
|
-
cms_qe_newsletter/tests/test_managment.py,sha256=mz-ztXPtcVR01V8_mjpBpUgxwa1OrI90UgCShwnW3sA,886
|
|
3915
|
-
cms_qe_newsletter/tests/test_models.py,sha256=w428Cl_ZF_GvsGDavb8vIoZlkJLKL5Z7ZN5fK0d76ks,1432
|
|
3916
|
-
cms_qe_newsletter/tests/test_plugin.py,sha256=HhSz-QcXAp3KJelQ7r0Z3np_QNHrJY7QbPODv3NI9Pg,523
|
|
3917
|
-
cms_qe_newsletter/tests/test_sync.py,sha256=09Cszu3IWvgh6c8m8a-aXtbKWI_yZQbjwkfLT0fdlzI,2269
|
|
3918
|
-
cms_qe_newsletter/tests/test_views.py,sha256=IJ621fRok6kK2BfSKfnY-EWVfFXoVRD_rHBpiboZKnk,449
|
|
3919
3884
|
cms_qe_table/__init__.py,sha256=0eiVSkglZ6A-QLBnGXQdTlysM6dj2kfTc6scFcUGGVA,1084
|
|
3920
3885
|
cms_qe_table/cms_plugins.py,sha256=dR8b7h_xOJnQ4CDetxrfOiv1tfekhdnpe4KbKqasLi0,1065
|
|
3921
3886
|
cms_qe_table/exceptions.py,sha256=D9jeyKebnha1lObxS-eJhDeIYLobqlQCLieqg5jPkEU,349
|
|
@@ -3935,12 +3900,7 @@ cms_qe_table/locale/en/LC_MESSAGES/django.po,sha256=4Y8d5gJlwp6PDkEEN19IEwNpN1z7
|
|
|
3935
3900
|
cms_qe_table/migrations/0001_initial.py,sha256=ZpPaS-CpveuWZ2YCDvbY9mqoKYuPBaMYScI2Yn4J9aw,1706
|
|
3936
3901
|
cms_qe_table/migrations/0002_alter_tablepluginmodel_columns_and_more.py,sha256=edJFAeAoF5sLrz91JyshIwWaX-5hy6q9zPmHrejQV5Y,607
|
|
3937
3902
|
cms_qe_table/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3938
|
-
cms_qe_table/
|
|
3939
|
-
cms_qe_table/migrations/__pycache__/0002_tablepluginmodel_filter.cpython-38.pyc,sha256=4eIXRREfD3__XZRJv4IH_hJqzYli5rLgCm1gTcgr6C0,715
|
|
3940
|
-
cms_qe_table/migrations/__pycache__/__init__.cpython-38.pyc,sha256=iFzrk7gKW7hxHg32j-mjWF9BLjcf5dXEUoJIQBx08Y4,164
|
|
3941
|
-
cms_qe_table/static/cms_qe/css/table/columns-widget.css,sha256=Io7dU_nuRpSqXFxSsw0Dxk1ZuPolCxm2iSiZJKt15fI,184
|
|
3942
|
-
cms_qe_table/static/cms_qe/js/table/Sortable.min.js,sha256=ncVUo40HSaxFORNNlffKfkkhbsUHNLAzQ2SFlRUw7gA,15369
|
|
3943
|
-
cms_qe_table/templates/cms_qe/table/columns_widget.html,sha256=QyHX_TNbbzutPnu8QyPdEBT0LLXT3Y6PV1qQ9cGN-3g,4467
|
|
3903
|
+
cms_qe_table/templates/cms_qe/table/columns_widget.html,sha256=ghThHtrJLYGV8RlvYvgwwyX6koq4v42CoxL41LTUqiY,4439
|
|
3944
3904
|
cms_qe_table/templates/cms_qe/table/filter_widget.html,sha256=XY5SP0wIWgiAhiW2wiW2tMHg6EPpPGErguGI8WXDaZ0,2603
|
|
3945
3905
|
cms_qe_table/templates/cms_qe/table/paging.html,sha256=jgoXzKk7eQ51Hbd-nsjfUrmOhnTKxArZVQ6uXKGvpZs,621
|
|
3946
3906
|
cms_qe_table/templates/cms_qe/table/table.html,sha256=uAYsPaH7ZzA9rOrMBNO7VO7NrgE9MLH35_NF-1n9-Ck,471
|
|
@@ -3951,10 +3911,6 @@ cms_qe_table/templates/cms_qe/table/table_value_int.html,sha256=mjmA7u_ENXs3JHza
|
|
|
3951
3911
|
cms_qe_table/templates/cms_qe/table/table_widget.html,sha256=tsjlS5Mc_6iALFk0QIexPkFVLEwSb1PlsCkntqfuTwk,1315
|
|
3952
3912
|
cms_qe_table/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3953
3913
|
cms_qe_table/templatetags/cms_qe_table_filters.py,sha256=eFBB2FoCcpQRAknMIJLac0ts18w8XIODbouuJlP0ty4,782
|
|
3954
|
-
cms_qe_table/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3955
|
-
cms_qe_table/tests/test_models.py,sha256=6DsUUvIwZXIxiys8NUECswb6Laxr3eUsiY1B9nFbolY,728
|
|
3956
|
-
cms_qe_table/tests/test_plugin.py,sha256=L66BSM-Yco2hI0ZPIEgx0IZeE3S_Z8DaVANDXKdEsbM,549
|
|
3957
|
-
cms_qe_table/tests/test_utils.py,sha256=hORUKMjRman02zW3dLb7f4RDgCL9E-wCtt-gfxifMCY,2857
|
|
3958
3914
|
cms_qe_test/__init__.py,sha256=-Vc3K2g4JFSE2qw5AvuTGi4rwQGMOXAEycrjgFWk1BQ,121
|
|
3959
3915
|
cms_qe_test/cms.py,sha256=pspLQxbnwG71PuZKtwfWDu6uVk7RYO86Od1cDXBF108,1796
|
|
3960
3916
|
cms_qe_video/__init__.py,sha256=2iOdITrw_UvFcQpFA0rhUWBCRe2qvTuDvltp5Q233cc,1070
|
|
@@ -3969,18 +3925,12 @@ cms_qe_video/locale/en/LC_MESSAGES/django.po,sha256=Kgi79guoKVK6CAiPSd2LW59Z5FWU
|
|
|
3969
3925
|
cms_qe_video/migrations/0001_initial.py,sha256=_VkuQ1NfoIUKmleKYRtx0-hq8k1REVSWhDbEtzNFIDc,5640
|
|
3970
3926
|
cms_qe_video/migrations/0002_alter_hostingvideoplayer_cmsplugin_ptr_and_more.py,sha256=fvmKbfGJU8CvDoHLOaS4N74tbqALtzJNw3QIkfTU3Hw,1624
|
|
3971
3927
|
cms_qe_video/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3972
|
-
cms_qe_video/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=-lmMaV-DGMRtGs5ESQi53lAqtBkxRhMIJR4ze9h_orM,3183
|
|
3973
|
-
cms_qe_video/migrations/__pycache__/__init__.cpython-38.pyc,sha256=-GhhXIpjdL4VGqCxLLE3hreHMnV6Geu5Z_1kpqnQf0o,164
|
|
3974
3928
|
cms_qe_video/templates/cms_qe/video/iframe_with_embed_link.html,sha256=K_GaqgEraAb-9UkfVZFajQ9qW-mILJSGePUCS4icXDc,447
|
|
3975
3929
|
cms_qe_video/templates/cms_qe/video/track.html,sha256=EriBGOOCxaMe_1G7AELwHgse4Pq6PIo277kvKZnLQ5E,684
|
|
3976
3930
|
cms_qe_video/templates/cms_qe/video/video_source_file.html,sha256=QJF5fs88s9FznpfFFWuKeIPYkPTAUKZe4dfNp9ShSdQ,602
|
|
3977
3931
|
cms_qe_video/templates/cms_qe/video/video_widget.html,sha256=Yumciq6bGlAYI1lYx5j9V6IF8QYrncNYygPTkXEz6Wk,925
|
|
3978
3932
|
cms_qe_video/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3979
3933
|
cms_qe_video/templatetags/cms_qe_video.py,sha256=NR_mGv91J0rEreZrQjCzaaXSrZsKvrSas12wMJ-Dg24,1168
|
|
3980
|
-
cms_qe_video/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3981
|
-
cms_qe_video/tests/test_models.py,sha256=iTTQEFO9D8Shd5-5-EvM-mlvh8etww3c9Kf-DUVwz94,4366
|
|
3982
|
-
cms_qe_video/tests/test_plugin.py,sha256=cod8QXTGOLpFgzB105JvzVoyTRq2UOY5Jpqos6GvA9g,1046
|
|
3983
|
-
cms_qe_video/tests/test_templatetags.py,sha256=87koyj4w2PD2-bGQCrvE1UwULxDQSA_D_qL-ciM_L8U,1102
|
|
3984
3934
|
example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3985
3935
|
example/urls.py,sha256=H-IJsRGFVZGw6FD9gvK-0B0dLeSOsduziHvDvcHCQZ0,399
|
|
3986
3936
|
example/wsgi.py,sha256=lCKhvtFZlorSIA8qYEqc3pZ1Oflrz_Tc696MWJ62ue4,396
|
|
@@ -4001,8 +3951,8 @@ test_selenium/pages/cms/__init__.py,sha256=_qe4YZYaQbrXp7Szmmeo4TUSkXlE5Rozu8E3t
|
|
|
4001
3951
|
test_selenium/pages/cms/login.py,sha256=UPzJQcYff8NUAT4nvmfQoJQxzOJyPrJ_cKtH35NVfNg,521
|
|
4002
3952
|
test_selenium/pages/cms/page.py,sha256=YQnpZkopfVnhoyQKpRDGqjNeV6xUl-pEHjEcZ9HRiPk,489
|
|
4003
3953
|
test_selenium/pages/cms/wizard.py,sha256=yatbXH-rf1ap4O1hY0I13WikM3zkm_NrAiSK6bqENIU,545
|
|
4004
|
-
django_cms_qe-3.0.
|
|
4005
|
-
django_cms_qe-3.0.
|
|
4006
|
-
django_cms_qe-3.0.
|
|
4007
|
-
django_cms_qe-3.0.
|
|
4008
|
-
django_cms_qe-3.0.
|
|
3954
|
+
django_cms_qe-3.0.3.dist-info/LICENSE,sha256=5wLaeUil0gfU9p8C4zn2Yu_PvZBNieUoYl0z9FcFWdA,1521
|
|
3955
|
+
django_cms_qe-3.0.3.dist-info/METADATA,sha256=3FZM-0z6H4CShIupMd2Wtggs2vldbePCVxpvytM6TLM,4497
|
|
3956
|
+
django_cms_qe-3.0.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
|
|
3957
|
+
django_cms_qe-3.0.3.dist-info/top_level.txt,sha256=Gx3iR7ga_mwVi-a0WHznNn16KhciCv31fUrdh0sr8IM,157
|
|
3958
|
+
django_cms_qe-3.0.3.dist-info/RECORD,,
|
cms_qe/tests/__init__.py
DELETED
|
File without changes
|
cms_qe/tests/test_errors.py
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
from unittest.mock import patch
|
|
2
|
-
|
|
3
|
-
from django.contrib.auth.models import AnonymousUser
|
|
4
|
-
from django.test import RequestFactory, TestCase
|
|
5
|
-
|
|
6
|
-
from cms_qe.views import handler500
|
|
7
|
-
from cms_qe_test.cms import create_page
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
def test_page_found(client):
|
|
11
|
-
create_page('Test page', page_params={'slug': 'test'})
|
|
12
|
-
html = client.get('/en/test/').content
|
|
13
|
-
assert b'<h1>Generic error</h1>' not in html
|
|
14
|
-
assert b'<title>Test page</title>' in html
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def test_page_not_found(client):
|
|
18
|
-
html = client.get('/en/non-existing-page/').content
|
|
19
|
-
assert b'<h1>Generic error</h1>' in html
|
|
20
|
-
assert b'error404' in html
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def test_page_not_found_custom_by_cms(client):
|
|
24
|
-
create_page('custom page not found', page_params={'slug': 'error404'})
|
|
25
|
-
response = client.get('/en/non-existing-page/')
|
|
26
|
-
assert response.status_code == 404
|
|
27
|
-
html = response.content
|
|
28
|
-
assert b'<h1>Generic error</h1>' not in html
|
|
29
|
-
assert b'<title>custom page not found</title>' in html
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def test_page_not_found_cached_custom_by_cms(client):
|
|
33
|
-
create_page('custom page not found', page_params={'slug': 'error404'})
|
|
34
|
-
# First request store page into the cache
|
|
35
|
-
response = client.get('/en/non-existing-page/')
|
|
36
|
-
assert response.status_code == 404
|
|
37
|
-
# Second request is taken from the cache.
|
|
38
|
-
response = client.get('/en/non-existing-page/')
|
|
39
|
-
assert response.get('QE-Status-Code') is None
|
|
40
|
-
assert response.status_code == 404
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
class Handler500Test(TestCase):
|
|
44
|
-
def test_template_rendered(self):
|
|
45
|
-
request = RequestFactory().get("/500")
|
|
46
|
-
request.current_page = None
|
|
47
|
-
request.session = {}
|
|
48
|
-
request.user = AnonymousUser()
|
|
49
|
-
response = handler500(request)
|
|
50
|
-
self.assertContains(response, '<h1>Internal error</h1>', status_code=500)
|
|
51
|
-
self.assertContains(response, 'Something went very wrong. Please try again later.', status_code=500)
|
|
52
|
-
|
|
53
|
-
@patch('cms_qe.views.errors.render', side_effect=Exception("Fail!"))
|
|
54
|
-
def test_template_failure(self, render_mock):
|
|
55
|
-
request = RequestFactory().get("/500")
|
|
56
|
-
request.current_page = None
|
|
57
|
-
request.session = {}
|
|
58
|
-
request.user = AnonymousUser()
|
|
59
|
-
response = handler500(request)
|
|
60
|
-
self.assertContains(response, '<h1>Internal error</h1>', status_code=500)
|
|
61
|
-
self.assertContains(response, 'Something went very wrong. Please try again later.', status_code=500)
|
cms_qe/tests/test_export.py
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import csv
|
|
2
|
-
import io
|
|
3
|
-
import json
|
|
4
|
-
from unittest.mock import patch
|
|
5
|
-
|
|
6
|
-
import pytest
|
|
7
|
-
from django.contrib.auth import get_user_model
|
|
8
|
-
from pytest_data import use_data
|
|
9
|
-
|
|
10
|
-
from ..export import export_data, export_file, get_supported_export_types
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
class ModelAdmin:
|
|
14
|
-
list_display = ('foo',)
|
|
15
|
-
|
|
16
|
-
def foo(self, obj):
|
|
17
|
-
return 'foo property'
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
class ExportDataAdmin(ModelAdmin):
|
|
21
|
-
|
|
22
|
-
def export_data(self, export_type, queryset):
|
|
23
|
-
return 'foo export_data'
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
@pytest.mark.django_db
|
|
27
|
-
@use_data(user_data={'username': 'test_export_data_as_csv'})
|
|
28
|
-
def test_export_data_as_csv(user):
|
|
29
|
-
User = get_user_model()
|
|
30
|
-
queryset = User.objects.all()
|
|
31
|
-
data = export_data('csv', ModelAdmin(), queryset)
|
|
32
|
-
data = list(csv.reader(io.StringIO(data)))
|
|
33
|
-
assert len(data) == 2
|
|
34
|
-
assert 'test_export_data_as_csv' in data[1]
|
|
35
|
-
assert 'foo property' in data[1]
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
@pytest.mark.django_db
|
|
39
|
-
@use_data(user_data={'username': 'test_export_data_as_tsv'})
|
|
40
|
-
def test_export_data_as_tsv(user):
|
|
41
|
-
User = get_user_model()
|
|
42
|
-
queryset = User.objects.all()
|
|
43
|
-
data = export_data('tsv', ModelAdmin(), queryset)
|
|
44
|
-
data = list(csv.reader(io.StringIO(data), delimiter='\t'))
|
|
45
|
-
assert len(data) == 2
|
|
46
|
-
assert 'test_export_data_as_tsv' in data[1]
|
|
47
|
-
assert 'foo property' in data[1]
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
@pytest.mark.django_db
|
|
51
|
-
@use_data(user_data={'username': 'test_export_data_as_json'})
|
|
52
|
-
def test_export_data_as_json(user):
|
|
53
|
-
User = get_user_model()
|
|
54
|
-
queryset = User.objects.all()
|
|
55
|
-
data = export_data('json', ModelAdmin(), queryset)
|
|
56
|
-
data = json.loads(data)
|
|
57
|
-
assert len(data) == 1
|
|
58
|
-
assert data[0]['username'] == 'test_export_data_as_json'
|
|
59
|
-
assert data[0]['foo'] == 'foo property'
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
@pytest.mark.django_db
|
|
63
|
-
@use_data(user_data={'username': 'test_export_data_as_json'})
|
|
64
|
-
def test_export_data_admin_function(user):
|
|
65
|
-
User = get_user_model()
|
|
66
|
-
queryset = User.objects.all()
|
|
67
|
-
data = export_data('foo', ExportDataAdmin(), queryset)
|
|
68
|
-
assert data == 'foo export_data'
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
@pytest.mark.django_db
|
|
72
|
-
@use_data(user_data={'username': 'test_export_data_as_json'})
|
|
73
|
-
def test_export_file():
|
|
74
|
-
User = get_user_model()
|
|
75
|
-
queryset = User.objects.all()
|
|
76
|
-
response = export_file('csv', ModelAdmin(), queryset)
|
|
77
|
-
assert response['content-disposition'] == 'attachment; ' \
|
|
78
|
-
'filename="export.csv"'
|
|
79
|
-
assert response.content == b'ID,password,last login,superuser ' \
|
|
80
|
-
b'status,username,first name,last name,email address,staff ' \
|
|
81
|
-
b'status,active,date joined,groups,user permissions,foo\r\n'
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
def test_get_supported_export_types():
|
|
85
|
-
with patch('cms_qe.export.getattr') as mock_getattr:
|
|
86
|
-
mock_getattr.side_effect = [
|
|
87
|
-
'csv', 'html', 'json', 'latex', 'ods', 'rst', 'tsv', 'xls',
|
|
88
|
-
'xlsx', 'yaml']
|
|
89
|
-
data = get_supported_export_types()
|
|
90
|
-
assert sorted(data.keys()) == [
|
|
91
|
-
'csv', 'html', 'json', 'latex', 'ods', 'rst', 'tsv', 'xls', 'xlsx',
|
|
92
|
-
'yaml']
|
|
93
|
-
assert data['csv'].mimetype == 'text/csv'
|
|
94
|
-
assert data['csv'].label == 'Export selected as CSV'
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
def test_get_supported_export_types_import_error():
|
|
98
|
-
with patch('cms_qe.export.getattr') as mock_getattr:
|
|
99
|
-
mock_getattr.side_effect = ImportError()
|
|
100
|
-
data = get_supported_export_types()
|
|
101
|
-
assert data == {}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
def test_get_supported_export_types_attribute_error():
|
|
105
|
-
with patch('cms_qe.export.getattr') as mock_getattr:
|
|
106
|
-
mock_getattr.side_effect = AttributeError()
|
|
107
|
-
data = get_supported_export_types()
|
|
108
|
-
assert data == {}
|
cms_qe/tests/test_monitoring.py
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
|
|
3
|
-
from cms_qe.views import get_monitoring_data
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
def test_get_monitoring_data():
|
|
7
|
-
data = get_monitoring_data()
|
|
8
|
-
assert data['status']
|
|
9
|
-
assert 'cms_qe' in data['app_details']
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def test_monitoring_view(client):
|
|
13
|
-
result = client.get('/api/monitoring').content
|
|
14
|
-
data = json.loads(str(result, 'utf8'))
|
|
15
|
-
assert data['status']
|
cms_qe/tests/test_utils.py
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
from unittest.mock import patch
|
|
2
|
-
|
|
3
|
-
import pytest
|
|
4
|
-
from django.test import override_settings
|
|
5
|
-
from mailqueue.models import MailerMessage
|
|
6
|
-
from pytest_data import use_data
|
|
7
|
-
|
|
8
|
-
from cms_qe.utils import get_base_url, get_functions, get_module, get_modules
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
@pytest.mark.parametrize('expect,module_name', [
|
|
12
|
-
(True, 'views'),
|
|
13
|
-
(True, 'views.monitoring'),
|
|
14
|
-
(False, 'no_module'),
|
|
15
|
-
(False, 'monitoring.get_status'),
|
|
16
|
-
])
|
|
17
|
-
def test_get_module(expect, module_name):
|
|
18
|
-
module = get_module('cms_qe', module_name)
|
|
19
|
-
assert module if expect else module is None
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def test_get_modules():
|
|
23
|
-
modules = get_modules('monitoring')
|
|
24
|
-
assert [module for app_name, module in modules if app_name == 'cms_qe']
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def test_get_functions():
|
|
28
|
-
functions = get_functions('monitoring', 'get_status')
|
|
29
|
-
assert [function for app_name, function in functions if app_name == 'cms_qe']
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
def test_get_functions_existing_module_without_function():
|
|
33
|
-
functions = get_functions('monitoring', 'no_function')
|
|
34
|
-
assert not list(functions)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
@override_settings(META_SITE_PROTOCOL='https', )
|
|
38
|
-
def test_get_absolute_url(post_request_empty):
|
|
39
|
-
request = post_request_empty
|
|
40
|
-
mock_url = 'test.com'
|
|
41
|
-
with patch('cms_qe.utils.get_current_site', return_value=mock_url):
|
|
42
|
-
base_url = get_base_url(request)
|
|
43
|
-
assert base_url == f'https://{mock_url}'
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def test_sending_email_synchronously(email, mailoutbox):
|
|
47
|
-
assert len(mailoutbox) == 0
|
|
48
|
-
email.save()
|
|
49
|
-
assert len(mailoutbox) == 1
|
|
50
|
-
sent_mail = mailoutbox[0]
|
|
51
|
-
assert 'Test content' in sent_mail.body
|
|
52
|
-
assert 'Test' in sent_mail.subject
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
@override_settings(MAILQUEUE_QUEUE_UP=True)
|
|
56
|
-
def test_sending_email_asynchronously(email, mailoutbox):
|
|
57
|
-
assert MailerMessage.objects.all().count() == 0
|
|
58
|
-
email.save()
|
|
59
|
-
assert len(mailoutbox) == 0
|
|
60
|
-
assert MailerMessage.objects.all().count() == 1
|
|
61
|
-
assert 'Test content' in MailerMessage.objects.all().first().content
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
@use_data(email_data={'to': ['test1@examile.com', 'test2@examile.com']})
|
|
65
|
-
def test_sending_email_synchronously_more_addressee(email, mailoutbox):
|
|
66
|
-
email.save()
|
|
67
|
-
assert len(mailoutbox) == 1
|
|
68
|
-
sent_mail = mailoutbox[0]
|
|
69
|
-
assert len(sent_mail.to) == 2
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
@use_data(email_data={'to': ['test1@examile.com', 'test2@examile.com']})
|
|
73
|
-
@override_settings(MAILQUEUE_QUEUE_UP=True)
|
|
74
|
-
def test_sending_email_asynchronously_more_to_addressee(email, mailoutbox):
|
|
75
|
-
email.save()
|
|
76
|
-
assert MailerMessage.objects.all().count() == 1
|
|
77
|
-
assert MailerMessage.objects.all().first().to_address == 'test1@examile.com, test2@examile.com'
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
from constance import config
|
|
2
|
-
from django.test import TestCase
|
|
3
|
-
from django.urls import reverse
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class SecurityTxtViewTest(TestCase):
|
|
7
|
-
|
|
8
|
-
def test_not_content(self):
|
|
9
|
-
config.SECURITY_TXT_CONTENT = None
|
|
10
|
-
response = self.client.get(reverse('security-txt'))
|
|
11
|
-
self.assertRedirects(response, "/en/.well-known/security.txt/",
|
|
12
|
-
status_code=302, target_status_code=404)
|
|
13
|
-
|
|
14
|
-
def test_content(self):
|
|
15
|
-
config.SECURITY_TXT_CONTENT = 'Contact: https://abuse.foo'
|
|
16
|
-
response = self.client.get(reverse('security-txt'))
|
|
17
|
-
self.assertContains(response, b'Contact: https://abuse.foo')
|
|
18
|
-
self.assertEqual(response['Content-Type'], 'text/plain')
|
cms_qe_analytical/LICENSE.txt
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
Copyright (C) 2011-2016 Joost Cassee and others
|
|
2
|
-
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
5
|
-
in the Software without restriction, including without limitation the rights
|
|
6
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
7
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
8
|
-
furnished to do so, subject to the following conditions:
|
|
9
|
-
|
|
10
|
-
The above copyright notice and this permission notice shall be included in
|
|
11
|
-
all copies or substantial portions of the Software.
|
|
12
|
-
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
THE SOFTWARE.
|
|
File without changes
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
django-analytical testing settings.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
DATABASES = {
|
|
6
|
-
'default': {
|
|
7
|
-
'ENGINE': 'django.db.backends.sqlite3',
|
|
8
|
-
'NAME': ':memory:',
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
INSTALLED_APPS = [
|
|
13
|
-
'django.contrib.sites',
|
|
14
|
-
'django.contrib.contenttypes',
|
|
15
|
-
'django.contrib.auth',
|
|
16
|
-
'analytical',
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
SECRET_KEY = 'testing'
|
|
20
|
-
|
|
21
|
-
MIDDLEWARE_CLASSES = (
|
|
22
|
-
'django.middleware.common.CommonMiddleware',
|
|
23
|
-
'django.middleware.csrf.CsrfViewMiddleware',
|
|
24
|
-
)
|
|
File without changes
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Dummy testing template tags and filters.
|
|
3
|
-
"""
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
from analytical.templatetags.analytical import TAG_LOCATIONS
|
|
7
|
-
from django.template import Library, Node, TemplateSyntaxError
|
|
8
|
-
|
|
9
|
-
register = Library()
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
def _location_node(location):
|
|
13
|
-
class DummyNode(Node):
|
|
14
|
-
def render(self, context):
|
|
15
|
-
return f"<!-- dummy_{location} -->"
|
|
16
|
-
return DummyNode
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
_location_nodes = {loc: _location_node(loc) for loc in TAG_LOCATIONS}
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def _location_tag(location):
|
|
23
|
-
def dummy_tag(parser, token):
|
|
24
|
-
bits = token.split_contents()
|
|
25
|
-
if len(bits) > 1:
|
|
26
|
-
raise TemplateSyntaxError(f"'{bits[0]}' tag takes no arguments")
|
|
27
|
-
return _location_nodes[location]
|
|
28
|
-
return dummy_tag
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
for loc in TAG_LOCATIONS:
|
|
32
|
-
register.tag(f'dummy_{loc}', _location_tag(loc))
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def contribute_to_analytical(add_node_cls):
|
|
36
|
-
for location in TAG_LOCATIONS:
|
|
37
|
-
add_node_cls(location, _location_nodes[location])
|