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.
Files changed (78) hide show
  1. cms_qe/boilerplates/bootstrap3/templates/cms_qe/home.html +1 -2
  2. cms_qe/settings/base/cms.py +2 -1
  3. cms_qe_i18n/templates/cms_qe/i18n/language_switcher.html +0 -2
  4. cms_qe_newsletter/templates/admin/cms_qe_newsletter/mailinglist/change_list.html +0 -1
  5. cms_qe_table/templates/cms_qe/table/columns_widget.html +1 -2
  6. {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/METADATA +1 -1
  7. {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/RECORD +10 -78
  8. cms_qe/tests/__init__.py +0 -0
  9. cms_qe/tests/test_errors.py +0 -61
  10. cms_qe/tests/test_export.py +0 -108
  11. cms_qe/tests/test_monitoring.py +0 -15
  12. cms_qe/tests/test_utils.py +0 -77
  13. cms_qe/tests/test_views_security.py +0 -18
  14. cms_qe_analytical/LICENSE.txt +0 -19
  15. cms_qe_analytical/tests/__init__.py +0 -0
  16. cms_qe_analytical/tests/settings.py +0 -24
  17. cms_qe_analytical/tests/templatetags/__init__.py +0 -0
  18. cms_qe_analytical/tests/templatetags/dummy.py +0 -37
  19. cms_qe_analytical/tests/test_tag_google_analytics.py +0 -178
  20. cms_qe_analytical/tests/test_tag_piwik.py +0 -152
  21. cms_qe_analytical/tests/test_utils.py +0 -112
  22. cms_qe_analytical/tests/utils.py +0 -56
  23. cms_qe_auth/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
  24. cms_qe_auth/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
  25. cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-38.pyc +0 -0
  26. cms_qe_auth/migrations/__pycache__/0002_auto_20171208_0915.cpython-39.pyc +0 -0
  27. cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-38.pyc +0 -0
  28. cms_qe_auth/migrations/__pycache__/0003_auto_20210420_1050.cpython-39.pyc +0 -0
  29. cms_qe_auth/migrations/__pycache__/0004_alter_user_first_name_alter_user_id.cpython-39.pyc +0 -0
  30. cms_qe_auth/migrations/__pycache__/0005_delete_group.cpython-39.pyc +0 -0
  31. cms_qe_auth/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
  32. cms_qe_auth/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
  33. cms_qe_auth/tests/__init__.py +0 -0
  34. cms_qe_auth/tests/test_models.py +0 -70
  35. cms_qe_auth/tests/test_utils.py +0 -36
  36. cms_qe_auth/tests/test_view.py +0 -72
  37. cms_qe_auth/tests/utils.py +0 -22
  38. cms_qe_menu/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
  39. cms_qe_menu/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
  40. cms_qe_menu/migrations/__pycache__/0002_alter_menupluginmodel_cmsplugin_ptr.cpython-39.pyc +0 -0
  41. cms_qe_menu/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
  42. cms_qe_menu/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
  43. cms_qe_newsletter/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
  44. cms_qe_newsletter/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
  45. cms_qe_newsletter/migrations/__pycache__/0002_alter_mailinglist_id_and_more.cpython-39.pyc +0 -0
  46. cms_qe_newsletter/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
  47. cms_qe_newsletter/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
  48. cms_qe_newsletter/tests/__init__.py +0 -0
  49. cms_qe_newsletter/tests/test_mailchimp.py +0 -38
  50. cms_qe_newsletter/tests/test_managment.py +0 -22
  51. cms_qe_newsletter/tests/test_models.py +0 -43
  52. cms_qe_newsletter/tests/test_plugin.py +0 -21
  53. cms_qe_newsletter/tests/test_sync.py +0 -71
  54. cms_qe_newsletter/tests/test_views.py +0 -13
  55. cms_qe_table/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
  56. cms_qe_table/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
  57. cms_qe_table/migrations/__pycache__/0002_alter_tablepluginmodel_columns_and_more.cpython-39.pyc +0 -0
  58. cms_qe_table/migrations/__pycache__/0002_tablepluginmodel_filter.cpython-38.pyc +0 -0
  59. cms_qe_table/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
  60. cms_qe_table/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
  61. cms_qe_table/static/cms_qe/css/table/columns-widget.css +0 -11
  62. cms_qe_table/static/cms_qe/js/table/Sortable.min.js +0 -2
  63. cms_qe_table/tests/__init__.py +0 -0
  64. cms_qe_table/tests/test_models.py +0 -23
  65. cms_qe_table/tests/test_plugin.py +0 -18
  66. cms_qe_table/tests/test_utils.py +0 -90
  67. cms_qe_video/migrations/__pycache__/0001_initial.cpython-38.pyc +0 -0
  68. cms_qe_video/migrations/__pycache__/0001_initial.cpython-39.pyc +0 -0
  69. cms_qe_video/migrations/__pycache__/0002_alter_hostingvideoplayer_cmsplugin_ptr_and_more.cpython-39.pyc +0 -0
  70. cms_qe_video/migrations/__pycache__/__init__.cpython-38.pyc +0 -0
  71. cms_qe_video/migrations/__pycache__/__init__.cpython-39.pyc +0 -0
  72. cms_qe_video/tests/__init__.py +0 -0
  73. cms_qe_video/tests/test_models.py +0 -96
  74. cms_qe_video/tests/test_plugin.py +0 -24
  75. cms_qe_video/tests/test_templatetags.py +0 -20
  76. {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/LICENSE +0 -0
  77. {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/WHEEL +0 -0
  78. {django_cms_qe-3.0.2.dist-info → django_cms_qe-3.0.3.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,4 @@
1
- {% load i18n cms_tags sekizai_tags %}
2
- {% load static from staticfiles %}
1
+ {% load static i18n cms_tags sekizai_tags %}
3
2
 
4
3
  {% addtoblock "css" %}
5
4
  <link rel="stylesheet" href="{% static "cms_qe/css/bootstrap.min.css" %}" />
@@ -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,5 +1,3 @@
1
- {% load static from staticfiles %}
2
-
3
1
  {% for key, label in languages %}
4
2
  {% if language == key %}
5
3
  <span title="{{ title }}">{{ key|upper }}</span>
@@ -1,6 +1,5 @@
1
1
  {% extends "admin/change_list.html" %}
2
2
  {% load i18n admin_urls admin_list %}
3
- {% load static from staticfiles %}
4
3
 
5
4
  {% block object-tools-items %}
6
5
  {% if has_add_permission %}
@@ -1,5 +1,4 @@
1
- {% load i18n %}
2
- {% load static from staticfiles %}
1
+ {% load static i18n %}
3
2
  {{ select }}
4
3
 
5
4
  <link rel="stylesheet" type="text/css" href="{% static "cms_qe/css/table/columns-widget.css" %}">
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-cms-qe
3
- Version: 3.0.2
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=vRlYopEtRy7RbCTPAZzEa93Zzcvw0Ez5wQdjfH6-j2w,1493
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=X7SMMcEMsgbMsm9Mv-tJfsywxLgVNnZfi5lsBbVEDWY,1837
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=hhLPd2faUsocU7L8hqX2Tg7kQ6tzaI_lYjCEbfvzDOM,321
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/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=S5EH90h3jx_VTEWSQdaL6lSxi28tprGFEFa66RPvWvI,2290
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/migrations/__pycache__/0001_initial.cpython-38.pyc,sha256=cnE5A68ctPwxo2mMGYANUxfEo7af7GL9MGz3RU7TNnI,1293
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.2.dist-info/LICENSE,sha256=5wLaeUil0gfU9p8C4zn2Yu_PvZBNieUoYl0z9FcFWdA,1521
4023
- django_cms_qe-3.0.2.dist-info/METADATA,sha256=OjUClP3IMgyKQIr1uxUxgKdY0Wh5QA6HIX48Vcdq7nE,4497
4024
- django_cms_qe-3.0.2.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
4025
- django_cms_qe-3.0.2.dist-info/top_level.txt,sha256=Gx3iR7ga_mwVi-a0WHznNn16KhciCv31fUrdh0sr8IM,157
4026
- django_cms_qe-3.0.2.dist-info/RECORD,,
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
@@ -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)
@@ -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 == {}
@@ -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']
@@ -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')
@@ -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])