django-cms-qe 3.0.2__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/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.2.dist-info → django_cms_qe-3.0.3.dist-info}/METADATA +1 -1
- {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/RECORD +10 -78
- 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__/0001_initial.cpython-39.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-38.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-39.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-38.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-39.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0004_alter_user_first_name_alter_user_id.cpython-39.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/0005_delete_group.cpython-39.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_auth/migrations/__pycache__/__init__.cpython-39.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__/0001_initial.cpython-39.pyc +0 -0
- cms_qe_menu/migrations/__pycache__/0002_alter_menupluginmodel_cmsplugin_ptr.cpython-39.pyc +0 -0
- cms_qe_menu/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_menu/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/0002_alter_mailinglist_id_and_more.cpython-39.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_newsletter/migrations/__pycache__/__init__.cpython-39.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__/0001_initial.cpython-39.pyc +0 -0
- cms_qe_table/migrations/__pycache__/0002_alter_tablepluginmodel_columns_and_more.cpython-39.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/migrations/__pycache__/__init__.cpython-39.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__/0001_initial.cpython-39.pyc +0 -0
- cms_qe_video/migrations/__pycache__/0002_alter_hostingvideoplayer_cmsplugin_ptr_and_more.cpython-39.pyc +0 -0
- cms_qe_video/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
- cms_qe_video/migrations/__pycache__/__init__.cpython-39.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.2.dist-info → django_cms_qe-3.0.3.dist-info}/LICENSE +0 -0
- {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/WHEEL +0 -0
- {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/top_level.txt +0 -0
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.
|
|
@@ -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
|
|
@@ -48,7 +48,7 @@ cms_qe/settings/base/__init__.py,sha256=5yHfne9gPD_xuTaG3voZP23yzuCwROmif2mmKs-h
|
|
|
48
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,16 +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__/0001_initial.cpython-39.pyc,sha256=18HMZR8Aj-12GqwvVQyVsZ8foY1xKR-xb5MANfapLhk,2637
|
|
133
|
-
cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-38.pyc,sha256=XecadpTaucI9AxZOnPqhxOniAfZ78Eg_cQY1OslbOPk,595
|
|
134
|
-
cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-39.pyc,sha256=vCFrrs6nXrwOSxgaKEvWIuikQ0pU41glQcg0B8-3QeA,544
|
|
135
|
-
cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-38.pyc,sha256=9xzSMWCagvSscKHrCJkZzG63iI_ZfEcyr8a__hvn2cM,815
|
|
136
|
-
cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-39.pyc,sha256=sXNOlir_u7LBkpKIv7jVP1CHQ_8y5VQZP2QfBy3brwU,815
|
|
137
|
-
cms_qe_auth/migrations/__pycache__/0004_alter_user_first_name_alter_user_id.cpython-39.pyc,sha256=2auqFah0EgqHSnePx71lodYdpryf-7P-JG-RRTrWc2c,777
|
|
138
|
-
cms_qe_auth/migrations/__pycache__/0005_delete_group.cpython-39.pyc,sha256=uTs5WYPZzsK7JQEa4J4zW75MpPF9SAOiq4TXzLCSb7A,522
|
|
139
|
-
cms_qe_auth/migrations/__pycache__/__init__.cpython-38.pyc,sha256=m9QynwzKsg11znmVPkP45MoXoPxKUbcLowSiUBtOqNY,163
|
|
140
|
-
cms_qe_auth/migrations/__pycache__/__init__.cpython-39.pyc,sha256=INrIyFGsN8FcXWEaIT8AUinQbiSHEKBaMteP185H8K0,163
|
|
141
116
|
cms_qe_auth/templates/cms_qe/auth/email_confirmation_complete.html,sha256=97o-axYK2wvRbYcKrrAjTkZL3jMZE7Vm4GHgWd6Lg5Q,309
|
|
142
117
|
cms_qe_auth/templates/cms_qe/auth/email_confirmation_fail.html,sha256=bG0yMFOHWswvFpGK7q5eLTLm6_CQlhJ75zs_CkBpFlw,199
|
|
143
118
|
cms_qe_auth/templates/cms_qe/auth/locked.html,sha256=4ieIR9Vzc9Igbjq5gfkB8SEupT1xOD1OnmwYgFfFg0U,303
|
|
@@ -163,11 +138,6 @@ cms_qe_auth/templates/cms_qe/auth/email/activation.html,sha256=5KzIsVw-r_3yzi47t
|
|
|
163
138
|
cms_qe_auth/templates/cms_qe/auth/email/activation.txt,sha256=rtNkt3bk-RHAWWU8TLS7JbJadHxAuTmW4TjQw6q4Czk,302
|
|
164
139
|
cms_qe_auth/templates/cms_qe/auth/email/base.html,sha256=PsNYnKORXRZuhhr0Xcg8ebvd-VuJPaBn3ghStCoW8tw,511
|
|
165
140
|
cms_qe_auth/templates/cms_qe/auth/email/base.txt,sha256=I7CXI7IuUYW_juVJIH1Dlc3asQlEmRMmJDf-thjqObU,142
|
|
166
|
-
cms_qe_auth/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
167
|
-
cms_qe_auth/tests/test_models.py,sha256=ps5FsQY9ohHHkxezWFwQn4Qv_XnZKSF6kxXm-fShW8s,2238
|
|
168
|
-
cms_qe_auth/tests/test_utils.py,sha256=NjV36oPUUF2eiaTt5SmO2u-dYQgLZiDr64VtpRbdMjI,767
|
|
169
|
-
cms_qe_auth/tests/test_view.py,sha256=LpIpWzU8QtjF0pRDkg24AiVM7lRiLSvS-rqVsMbWdsU,2284
|
|
170
|
-
cms_qe_auth/tests/utils.py,sha256=7aYvjZofMNBLA7VNwSxa1lp_eHnpURhIdvwaHnPmy_s,581
|
|
171
141
|
cms_qe_breadcrumb/__init__.py,sha256=RSHANxs85gpPyR2td66syP--Ue6d5AiTv4kbcLWQRRU,344
|
|
172
142
|
cms_qe_breadcrumb/cms_plugins.py,sha256=3-DFIh-LMn3-IL2UJM8Y8-zD-XuiWHMk1ZBXon1-Vls,387
|
|
173
143
|
cms_qe_breadcrumb/tests.py,sha256=4eZDHwEMYxRJCvE8XI4M6eJRbGZIaq8PvrzN5eqbBgI,540
|
|
@@ -3864,7 +3834,7 @@ cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_south-ossetia.ico,s
|
|
|
3864
3834
|
cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_united-nations.ico,sha256=Adir6XY9cjUR4Iel9o95xInxFWl1y35mcdtJOgSfvqw,34494
|
|
3865
3835
|
cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_unknown.ico,sha256=4QUYEy3tfuUXOZUxIfbv53QSqoW9dE6nslalptp1HkQ,34494
|
|
3866
3836
|
cms_qe_i18n/static/cms_qe/3rd/gosquared/flags-iso/shiny/ico/_wales.ico,sha256=IWW9vMqUf4rLamvkuPxBpBC-X1SLdhsEIdlSJ2m3Gqg,34494
|
|
3867
|
-
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
|
|
3868
3838
|
cms_qe_menu/__init__.py,sha256=wwN6P4_9g5upVZVhJwwYKflTavlQUKSUx-ZuHuD51CQ,687
|
|
3869
3839
|
cms_qe_menu/cms_plugins.py,sha256=9re_M1jF-GoCqaEzCEP66cU2gz21SVl7B6D6UU5G-VA,445
|
|
3870
3840
|
cms_qe_menu/models.py,sha256=OXe4XqwZXPBnjYjiGWrnhZyOvqmEMVzRNP4F7OxRArc,2196
|
|
@@ -3878,11 +3848,6 @@ cms_qe_menu/locale/en/LC_MESSAGES/django.po,sha256=z6hX3eAFPSjRpHDD7OM5M7z8McizS
|
|
|
3878
3848
|
cms_qe_menu/migrations/0001_initial.py,sha256=S14tP7e2nuMhhsZJGJbMN11mQvi1JIoFuVfYGUc0aeI,1455
|
|
3879
3849
|
cms_qe_menu/migrations/0002_alter_menupluginmodel_cmsplugin_ptr.py,sha256=K889YBRId8FrBSf9MDRrCFEto9FkNX6mB4ErAV19A4g,765
|
|
3880
3850
|
cms_qe_menu/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3881
|
-
cms_qe_menu/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=BCxgJILcb1GHFioOi4RgxqRD5dw-lkDD-gEq5c7x4L8,1568
|
|
3882
|
-
cms_qe_menu/migrations/__pycache__/0001_initial.cpython-39.pyc,sha256=l9adg7PrbRp15Ww--Yn_5NTrPzmlyJE8m3-AlQ8_usc,1515
|
|
3883
|
-
cms_qe_menu/migrations/__pycache__/0002_alter_menupluginmodel_cmsplugin_ptr.cpython-39.pyc,sha256=HGyfc_5Qw2tM8HEr_9lYXAitnhPslKDUgUCCGpU8Ncc,882
|
|
3884
|
-
cms_qe_menu/migrations/__pycache__/__init__.cpython-38.pyc,sha256=vOrW-cUdJfj00ZyRXSo1fNQfeIrAJtz5InMcmqdsgbg,163
|
|
3885
|
-
cms_qe_menu/migrations/__pycache__/__init__.cpython-39.pyc,sha256=dLyAT3uifKL2tJDzyEW8Apu7Chl324uEp7LWk0SQobE,163
|
|
3886
3851
|
cms_qe_menu/templates/cms_qe/menu/menu.html,sha256=Us7xVn09GxLoWXHSOIu5pXSCQaLF1vFy-Xy_nKAnxeg,333
|
|
3887
3852
|
cms_qe_menu/templates/cms_qe/menu/menu_tag.html,sha256=ZtB6qk8funm69hJaUMb8VfbUqe5ED4mcKu9-eAg6zh8,324
|
|
3888
3853
|
cms_qe_menu/templates/cms_qe/menu/submenu_tag.html,sha256=WAt0wMDMrbeCb5pxYXBkuS8alpveBFUnMa_YdRSSiPk,119
|
|
@@ -3912,22 +3877,10 @@ cms_qe_newsletter/management/commands/cms_qe_newsletter_sync.py,sha256=2aNQUGqGj
|
|
|
3912
3877
|
cms_qe_newsletter/migrations/0001_initial.py,sha256=zpbbaCss2a-DHi4L3IvSIlhH0dd7z79qF9QxUlvTn8E,3384
|
|
3913
3878
|
cms_qe_newsletter/migrations/0002_alter_mailinglist_id_and_more.py,sha256=rdU732lC12zBmDvcEnK11iMp1WwJ1E7U1TJT2xJ1z44,1513
|
|
3914
3879
|
cms_qe_newsletter/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3915
|
-
cms_qe_newsletter/
|
|
3916
|
-
cms_qe_newsletter/migrations/__pycache__/0001_initial.cpython-39.pyc,sha256=83ns_Q7ZJREyPdgBCGFqKIEfQzsS7MeIYa6HJoO7KjE,2237
|
|
3917
|
-
cms_qe_newsletter/migrations/__pycache__/0002_alter_mailinglist_id_and_more.cpython-39.pyc,sha256=qvY-El6uieogiSIdNdsDvp7_QPERxfi-ZecUA72od5g,1113
|
|
3918
|
-
cms_qe_newsletter/migrations/__pycache__/__init__.cpython-38.pyc,sha256=OgwvUliIAYr6QXZl89viRQ3JW9pa1_2voC_5C1xgul4,169
|
|
3919
|
-
cms_qe_newsletter/migrations/__pycache__/__init__.cpython-39.pyc,sha256=r79vTzyUWap4YEJnCvJGiV-xLUVc-etCG4FnPOETpOE,169
|
|
3920
|
-
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
|
|
3921
3881
|
cms_qe_newsletter/templates/cms_qe/newsletter/form.html,sha256=5YsoZlQsxlBfMStROmK8V9T0-w5akjCu3a75GlpO9bk,385
|
|
3922
3882
|
cms_qe_newsletter/templates/cms_qe/newsletter/newsletter.html,sha256=0YnNGr4hNhAlkM-7ISeE8y1vRhFi7DdjJI_QH_B_ME4,195
|
|
3923
3883
|
cms_qe_newsletter/templates/cms_qe/newsletter/submitted.html,sha256=mOgMi56fuo3VFGC7P_uIA0XQQ7qAkG130s-WuvmF-n4,51
|
|
3924
|
-
cms_qe_newsletter/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3925
|
-
cms_qe_newsletter/tests/test_mailchimp.py,sha256=_fwNbNjeZA1plUWgFl_NSjly9jqyzG170Bt-mavSQvM,1159
|
|
3926
|
-
cms_qe_newsletter/tests/test_managment.py,sha256=mz-ztXPtcVR01V8_mjpBpUgxwa1OrI90UgCShwnW3sA,886
|
|
3927
|
-
cms_qe_newsletter/tests/test_models.py,sha256=w428Cl_ZF_GvsGDavb8vIoZlkJLKL5Z7ZN5fK0d76ks,1432
|
|
3928
|
-
cms_qe_newsletter/tests/test_plugin.py,sha256=HhSz-QcXAp3KJelQ7r0Z3np_QNHrJY7QbPODv3NI9Pg,523
|
|
3929
|
-
cms_qe_newsletter/tests/test_sync.py,sha256=09Cszu3IWvgh6c8m8a-aXtbKWI_yZQbjwkfLT0fdlzI,2269
|
|
3930
|
-
cms_qe_newsletter/tests/test_views.py,sha256=IJ621fRok6kK2BfSKfnY-EWVfFXoVRD_rHBpiboZKnk,449
|
|
3931
3884
|
cms_qe_table/__init__.py,sha256=0eiVSkglZ6A-QLBnGXQdTlysM6dj2kfTc6scFcUGGVA,1084
|
|
3932
3885
|
cms_qe_table/cms_plugins.py,sha256=dR8b7h_xOJnQ4CDetxrfOiv1tfekhdnpe4KbKqasLi0,1065
|
|
3933
3886
|
cms_qe_table/exceptions.py,sha256=D9jeyKebnha1lObxS-eJhDeIYLobqlQCLieqg5jPkEU,349
|
|
@@ -3947,15 +3900,7 @@ cms_qe_table/locale/en/LC_MESSAGES/django.po,sha256=4Y8d5gJlwp6PDkEEN19IEwNpN1z7
|
|
|
3947
3900
|
cms_qe_table/migrations/0001_initial.py,sha256=ZpPaS-CpveuWZ2YCDvbY9mqoKYuPBaMYScI2Yn4J9aw,1706
|
|
3948
3901
|
cms_qe_table/migrations/0002_alter_tablepluginmodel_columns_and_more.py,sha256=edJFAeAoF5sLrz91JyshIwWaX-5hy6q9zPmHrejQV5Y,607
|
|
3949
3902
|
cms_qe_table/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3950
|
-
cms_qe_table/
|
|
3951
|
-
cms_qe_table/migrations/__pycache__/0001_initial.cpython-39.pyc,sha256=265VjtvBSMihrhUZ4SGa5jjbrcGiPliy8TZdRiTORNs,1207
|
|
3952
|
-
cms_qe_table/migrations/__pycache__/0002_alter_tablepluginmodel_columns_and_more.cpython-39.pyc,sha256=BOmWHW1Q9aMhBpx1EBM9a5-phu5n_jTCYYa7mkA-dGw,710
|
|
3953
|
-
cms_qe_table/migrations/__pycache__/0002_tablepluginmodel_filter.cpython-38.pyc,sha256=4eIXRREfD3__XZRJv4IH_hJqzYli5rLgCm1gTcgr6C0,715
|
|
3954
|
-
cms_qe_table/migrations/__pycache__/__init__.cpython-38.pyc,sha256=iFzrk7gKW7hxHg32j-mjWF9BLjcf5dXEUoJIQBx08Y4,164
|
|
3955
|
-
cms_qe_table/migrations/__pycache__/__init__.cpython-39.pyc,sha256=3Jg7oReSmbKx-BrTem5qn7zpwjjKDAQ-G-u4vPCTo7I,164
|
|
3956
|
-
cms_qe_table/static/cms_qe/css/table/columns-widget.css,sha256=Io7dU_nuRpSqXFxSsw0Dxk1ZuPolCxm2iSiZJKt15fI,184
|
|
3957
|
-
cms_qe_table/static/cms_qe/js/table/Sortable.min.js,sha256=ncVUo40HSaxFORNNlffKfkkhbsUHNLAzQ2SFlRUw7gA,15369
|
|
3958
|
-
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
|
|
3959
3904
|
cms_qe_table/templates/cms_qe/table/filter_widget.html,sha256=XY5SP0wIWgiAhiW2wiW2tMHg6EPpPGErguGI8WXDaZ0,2603
|
|
3960
3905
|
cms_qe_table/templates/cms_qe/table/paging.html,sha256=jgoXzKk7eQ51Hbd-nsjfUrmOhnTKxArZVQ6uXKGvpZs,621
|
|
3961
3906
|
cms_qe_table/templates/cms_qe/table/table.html,sha256=uAYsPaH7ZzA9rOrMBNO7VO7NrgE9MLH35_NF-1n9-Ck,471
|
|
@@ -3966,10 +3911,6 @@ cms_qe_table/templates/cms_qe/table/table_value_int.html,sha256=mjmA7u_ENXs3JHza
|
|
|
3966
3911
|
cms_qe_table/templates/cms_qe/table/table_widget.html,sha256=tsjlS5Mc_6iALFk0QIexPkFVLEwSb1PlsCkntqfuTwk,1315
|
|
3967
3912
|
cms_qe_table/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3968
3913
|
cms_qe_table/templatetags/cms_qe_table_filters.py,sha256=eFBB2FoCcpQRAknMIJLac0ts18w8XIODbouuJlP0ty4,782
|
|
3969
|
-
cms_qe_table/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3970
|
-
cms_qe_table/tests/test_models.py,sha256=6DsUUvIwZXIxiys8NUECswb6Laxr3eUsiY1B9nFbolY,728
|
|
3971
|
-
cms_qe_table/tests/test_plugin.py,sha256=L66BSM-Yco2hI0ZPIEgx0IZeE3S_Z8DaVANDXKdEsbM,549
|
|
3972
|
-
cms_qe_table/tests/test_utils.py,sha256=hORUKMjRman02zW3dLb7f4RDgCL9E-wCtt-gfxifMCY,2857
|
|
3973
3914
|
cms_qe_test/__init__.py,sha256=-Vc3K2g4JFSE2qw5AvuTGi4rwQGMOXAEycrjgFWk1BQ,121
|
|
3974
3915
|
cms_qe_test/cms.py,sha256=pspLQxbnwG71PuZKtwfWDu6uVk7RYO86Od1cDXBF108,1796
|
|
3975
3916
|
cms_qe_video/__init__.py,sha256=2iOdITrw_UvFcQpFA0rhUWBCRe2qvTuDvltp5Q233cc,1070
|
|
@@ -3984,21 +3925,12 @@ cms_qe_video/locale/en/LC_MESSAGES/django.po,sha256=Kgi79guoKVK6CAiPSd2LW59Z5FWU
|
|
|
3984
3925
|
cms_qe_video/migrations/0001_initial.py,sha256=_VkuQ1NfoIUKmleKYRtx0-hq8k1REVSWhDbEtzNFIDc,5640
|
|
3985
3926
|
cms_qe_video/migrations/0002_alter_hostingvideoplayer_cmsplugin_ptr_and_more.py,sha256=fvmKbfGJU8CvDoHLOaS4N74tbqALtzJNw3QIkfTU3Hw,1624
|
|
3986
3927
|
cms_qe_video/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3987
|
-
cms_qe_video/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=-lmMaV-DGMRtGs5ESQi53lAqtBkxRhMIJR4ze9h_orM,3183
|
|
3988
|
-
cms_qe_video/migrations/__pycache__/0001_initial.cpython-39.pyc,sha256=cqiaacCoTq3oGTYDaQmiZ_oa9WtPO07OTMUlKzE5XYc,3124
|
|
3989
|
-
cms_qe_video/migrations/__pycache__/0002_alter_hostingvideoplayer_cmsplugin_ptr_and_more.cpython-39.pyc,sha256=DbSEzQlknHD_CmMNSimtqgUQtr46Rm4ctxnzqfVpz0M,1094
|
|
3990
|
-
cms_qe_video/migrations/__pycache__/__init__.cpython-38.pyc,sha256=-GhhXIpjdL4VGqCxLLE3hreHMnV6Geu5Z_1kpqnQf0o,164
|
|
3991
|
-
cms_qe_video/migrations/__pycache__/__init__.cpython-39.pyc,sha256=iit1l7ilYgnXqhxs8nt6yyQ-pUUTQfMMTpacmtcbs44,164
|
|
3992
3928
|
cms_qe_video/templates/cms_qe/video/iframe_with_embed_link.html,sha256=K_GaqgEraAb-9UkfVZFajQ9qW-mILJSGePUCS4icXDc,447
|
|
3993
3929
|
cms_qe_video/templates/cms_qe/video/track.html,sha256=EriBGOOCxaMe_1G7AELwHgse4Pq6PIo277kvKZnLQ5E,684
|
|
3994
3930
|
cms_qe_video/templates/cms_qe/video/video_source_file.html,sha256=QJF5fs88s9FznpfFFWuKeIPYkPTAUKZe4dfNp9ShSdQ,602
|
|
3995
3931
|
cms_qe_video/templates/cms_qe/video/video_widget.html,sha256=Yumciq6bGlAYI1lYx5j9V6IF8QYrncNYygPTkXEz6Wk,925
|
|
3996
3932
|
cms_qe_video/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3997
3933
|
cms_qe_video/templatetags/cms_qe_video.py,sha256=NR_mGv91J0rEreZrQjCzaaXSrZsKvrSas12wMJ-Dg24,1168
|
|
3998
|
-
cms_qe_video/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3999
|
-
cms_qe_video/tests/test_models.py,sha256=iTTQEFO9D8Shd5-5-EvM-mlvh8etww3c9Kf-DUVwz94,4366
|
|
4000
|
-
cms_qe_video/tests/test_plugin.py,sha256=cod8QXTGOLpFgzB105JvzVoyTRq2UOY5Jpqos6GvA9g,1046
|
|
4001
|
-
cms_qe_video/tests/test_templatetags.py,sha256=87koyj4w2PD2-bGQCrvE1UwULxDQSA_D_qL-ciM_L8U,1102
|
|
4002
3934
|
example/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4003
3935
|
example/urls.py,sha256=H-IJsRGFVZGw6FD9gvK-0B0dLeSOsduziHvDvcHCQZ0,399
|
|
4004
3936
|
example/wsgi.py,sha256=lCKhvtFZlorSIA8qYEqc3pZ1Oflrz_Tc696MWJ62ue4,396
|
|
@@ -4019,8 +3951,8 @@ test_selenium/pages/cms/__init__.py,sha256=_qe4YZYaQbrXp7Szmmeo4TUSkXlE5Rozu8E3t
|
|
|
4019
3951
|
test_selenium/pages/cms/login.py,sha256=UPzJQcYff8NUAT4nvmfQoJQxzOJyPrJ_cKtH35NVfNg,521
|
|
4020
3952
|
test_selenium/pages/cms/page.py,sha256=YQnpZkopfVnhoyQKpRDGqjNeV6xUl-pEHjEcZ9HRiPk,489
|
|
4021
3953
|
test_selenium/pages/cms/wizard.py,sha256=yatbXH-rf1ap4O1hY0I13WikM3zkm_NrAiSK6bqENIU,545
|
|
4022
|
-
django_cms_qe-3.0.
|
|
4023
|
-
django_cms_qe-3.0.
|
|
4024
|
-
django_cms_qe-3.0.
|
|
4025
|
-
django_cms_qe-3.0.
|
|
4026
|
-
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])
|