udata 12.0.2.dev17__py3-none-any.whl → 12.0.2.dev18__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.

Potentially problematic release.


This version of udata might be problematic. Click here for more details.

Files changed (110) hide show
  1. udata/commands/tests/test_fixtures.py +2 -3
  2. udata/core/badges/tests/test_commands.py +2 -4
  3. udata/core/badges/tests/test_model.py +2 -2
  4. udata/core/pages/tests/test_api.py +0 -2
  5. udata/core/spatial/tests/test_api.py +17 -20
  6. udata/core/spatial/tests/test_models.py +3 -3
  7. udata/core/user/tests/test_user_model.py +2 -6
  8. udata/features/identicon/tests/test_backends.py +3 -13
  9. udata/harvest/tests/ckan/test_ckan_backend.py +300 -337
  10. udata/harvest/tests/ckan/test_ckan_backend_errors.py +94 -99
  11. udata/harvest/tests/ckan/test_ckan_backend_filters.py +128 -122
  12. udata/harvest/tests/ckan/test_dkan_backend.py +39 -51
  13. udata/harvest/tests/test_actions.py +7 -7
  14. udata/harvest/tests/test_api.py +2 -4
  15. udata/harvest/tests/test_base_backend.py +3 -4
  16. udata/harvest/tests/test_dcat_backend.py +4 -6
  17. udata/harvest/tests/test_models.py +2 -4
  18. udata/harvest/tests/test_notifications.py +2 -4
  19. udata/harvest/tests/test_tasks.py +2 -3
  20. udata/tests/__init__.py +40 -58
  21. udata/tests/api/__init__.py +87 -2
  22. udata/tests/api/test_activities_api.py +17 -23
  23. udata/tests/api/test_auth_api.py +2 -4
  24. udata/tests/api/test_contact_points.py +48 -54
  25. udata/tests/api/test_dataservices_api.py +0 -2
  26. udata/tests/api/test_datasets_api.py +15 -29
  27. udata/tests/api/test_me_api.py +4 -6
  28. udata/tests/api/test_organizations_api.py +19 -38
  29. udata/tests/api/test_reports_api.py +0 -4
  30. udata/tests/api/test_reuses_api.py +9 -19
  31. udata/tests/api/test_swagger.py +2 -3
  32. udata/tests/api/test_tags_api.py +6 -7
  33. udata/tests/api/test_transfer_api.py +0 -2
  34. udata/tests/api/test_user_api.py +8 -10
  35. udata/tests/apiv2/test_datasets.py +0 -4
  36. udata/tests/apiv2/test_me_api.py +0 -2
  37. udata/tests/apiv2/test_organizations.py +0 -2
  38. udata/tests/apiv2/test_swagger.py +2 -3
  39. udata/tests/apiv2/test_topics.py +0 -2
  40. udata/tests/cli/test_cli_base.py +14 -12
  41. udata/tests/cli/test_db_cli.py +51 -54
  42. udata/tests/contact_point/test_contact_point_models.py +2 -2
  43. udata/tests/dataservice/test_csv_adapter.py +2 -5
  44. udata/tests/dataservice/test_dataservice_rdf.py +3 -6
  45. udata/tests/dataservice/test_dataservice_tasks.py +36 -38
  46. udata/tests/dataset/test_csv_adapter.py +2 -5
  47. udata/tests/dataset/test_dataset_actions.py +2 -4
  48. udata/tests/dataset/test_dataset_commands.py +2 -4
  49. udata/tests/dataset/test_dataset_events.py +3 -3
  50. udata/tests/dataset/test_dataset_model.py +6 -7
  51. udata/tests/dataset/test_dataset_rdf.py +6 -9
  52. udata/tests/dataset/test_dataset_recommendations.py +2 -2
  53. udata/tests/dataset/test_dataset_tasks.py +66 -68
  54. udata/tests/dataset/test_resource_preview.py +39 -48
  55. udata/tests/dataset/test_transport_tasks.py +2 -2
  56. udata/tests/features/territories/__init__.py +0 -6
  57. udata/tests/features/territories/test_territories_api.py +25 -24
  58. udata/tests/forms/test_current_user_field.py +2 -2
  59. udata/tests/forms/test_dict_field.py +2 -4
  60. udata/tests/forms/test_extras_fields.py +2 -3
  61. udata/tests/forms/test_image_field.py +2 -2
  62. udata/tests/forms/test_model_field.py +2 -4
  63. udata/tests/forms/test_publish_as_field.py +2 -4
  64. udata/tests/forms/test_user_forms.py +26 -29
  65. udata/tests/frontend/test_auth.py +2 -3
  66. udata/tests/frontend/test_csv.py +5 -6
  67. udata/tests/frontend/test_error_handlers.py +2 -3
  68. udata/tests/frontend/test_hooks.py +5 -7
  69. udata/tests/frontend/test_markdown.py +3 -4
  70. udata/tests/helpers.py +2 -7
  71. udata/tests/metrics/test_metrics.py +52 -48
  72. udata/tests/metrics/test_tasks.py +154 -150
  73. udata/tests/organization/test_csv_adapter.py +2 -5
  74. udata/tests/organization/test_notifications.py +2 -4
  75. udata/tests/organization/test_organization_model.py +3 -4
  76. udata/tests/organization/test_organization_rdf.py +2 -8
  77. udata/tests/plugin.py +6 -110
  78. udata/tests/reuse/test_reuse_model.py +3 -4
  79. udata/tests/site/test_site_api.py +0 -2
  80. udata/tests/site/test_site_csv_exports.py +0 -2
  81. udata/tests/site/test_site_metrics.py +2 -4
  82. udata/tests/site/test_site_model.py +2 -2
  83. udata/tests/site/test_site_rdf.py +3 -6
  84. udata/tests/test_activity.py +3 -3
  85. udata/tests/test_api_fields.py +6 -9
  86. udata/tests/test_cors.py +0 -2
  87. udata/tests/test_dcat_commands.py +2 -3
  88. udata/tests/test_discussions.py +2 -7
  89. udata/tests/test_mail.py +4 -10
  90. udata/tests/test_migrations.py +413 -419
  91. udata/tests/test_model.py +10 -11
  92. udata/tests/test_notifications.py +2 -3
  93. udata/tests/test_owned.py +3 -3
  94. udata/tests/test_routing.py +5 -5
  95. udata/tests/test_storages.py +6 -5
  96. udata/tests/test_tags.py +2 -1
  97. udata/tests/test_topics.py +2 -4
  98. udata/tests/test_transfer.py +4 -5
  99. udata/tests/topic/test_topic_tasks.py +25 -27
  100. udata/tests/user/test_user_rdf.py +2 -8
  101. udata/tests/workers/test_jobs_commands.py +2 -2
  102. udata/tests/workers/test_tasks_routing.py +27 -27
  103. {udata-12.0.2.dev17.dist-info → udata-12.0.2.dev18.dist-info}/METADATA +1 -1
  104. {udata-12.0.2.dev17.dist-info → udata-12.0.2.dev18.dist-info}/RECORD +108 -110
  105. udata/tests/frontend/__init__.py +0 -23
  106. udata/tests/metrics/conftest.py +0 -15
  107. {udata-12.0.2.dev17.dist-info → udata-12.0.2.dev18.dist-info}/WHEEL +0 -0
  108. {udata-12.0.2.dev17.dist-info → udata-12.0.2.dev18.dist-info}/entry_points.txt +0 -0
  109. {udata-12.0.2.dev17.dist-info → udata-12.0.2.dev18.dist-info}/licenses/LICENSE +0 -0
  110. {udata-12.0.2.dev17.dist-info → udata-12.0.2.dev18.dist-info}/top_level.txt +0 -0
@@ -14,13 +14,11 @@ from udata.core.site.factories import SiteFactory
14
14
  from udata.core.site.rdf import build_catalog
15
15
  from udata.core.user.factories import UserFactory
16
16
  from udata.rdf import CONTEXT, DCAT, DCT, HYDRA
17
+ from udata.tests.api import PytestOnlyAPITestCase
17
18
  from udata.tests.helpers import assert200, assert404, assert_redirects
18
19
 
19
- pytestmark = pytest.mark.usefixtures("clean_db")
20
20
 
21
-
22
- @pytest.mark.frontend
23
- class CatalogTest:
21
+ class CatalogTest(PytestOnlyAPITestCase):
24
22
  def test_minimal(self, app):
25
23
  site = SiteFactory()
26
24
  home_url = url_for("api.site", _external=True)
@@ -142,8 +140,7 @@ class CatalogTest:
142
140
  assert HYDRA.next not in pagination
143
141
 
144
142
 
145
- @pytest.mark.frontend
146
- class SiteRdfViewsTest:
143
+ class SiteRdfViewsTest(PytestOnlyAPITestCase):
147
144
  def test_expose_jsonld_context(self, client):
148
145
  url = url_for("api.site_jsonld_context")
149
146
  assert url == "/api/1/site/context.jsonld"
@@ -9,7 +9,7 @@ from udata.core.activity.models import Activity, Auditable
9
9
  from udata.core.organization.factories import OrganizationFactory
10
10
  from udata.core.user.factories import UserFactory
11
11
  from udata.models import db
12
- from udata.tests import DBTestMixin, TestCase, WebTestMixin
12
+ from udata.tests.api import APITestCase
13
13
  from udata.tests.helpers import assert_emit, assert_not_emit
14
14
 
15
15
 
@@ -45,7 +45,7 @@ class FakeActivity(Activity):
45
45
  related_to = db.ReferenceField(FakeSubject)
46
46
 
47
47
 
48
- class ActivityTest(WebTestMixin, DBTestMixin, TestCase):
48
+ class ActivityTest(APITestCase):
49
49
  def setUp(self):
50
50
  self.fake = FakeSubject.objects.create(name="fake")
51
51
  self.login()
@@ -120,7 +120,7 @@ class ActivityTest(WebTestMixin, DBTestMixin, TestCase):
120
120
  self.assertEqual(Activity.objects(actor=self.user).count(), 1)
121
121
 
122
122
 
123
- class AuditableTest(WebTestMixin, DBTestMixin, TestCase):
123
+ class AuditableTest(APITestCase):
124
124
  def test_auditable_signals_emission(self):
125
125
  """It should emit appropriate signals on subject fields creation, update and deletion"""
126
126
  with assert_emit(post_save, FakeAuditableSubject.on_create):
@@ -13,12 +13,9 @@ from udata.core.storages import default_image_basename, images
13
13
  from udata.factories import ModelFactory
14
14
  from udata.models import Badge, BadgeMixin, BadgesList, WithMetrics, db
15
15
  from udata.mongo.queryset import DBPaginator, UDataQuerySet
16
+ from udata.tests.api import PytestOnlyDBTestCase
16
17
  from udata.utils import faker
17
18
 
18
- pytestmark = [
19
- pytest.mark.usefixtures("clean_db"),
20
- ]
21
-
22
19
  BIGGEST_IMAGE_SIZE: int = 500
23
20
 
24
21
  BADGES: dict[str, str] = {
@@ -166,7 +163,7 @@ class FakeFactory(ModelFactory):
166
163
  archived = None
167
164
 
168
165
 
169
- class IndexParserTest:
166
+ class IndexParserTest(PytestOnlyDBTestCase):
170
167
  index_parser: RequestParser = Fake.__index_parser__
171
168
  index_parser_args: list[Argument] = Fake.__index_parser__.args
172
169
  index_parser_args_names: set[str] = set([field.name for field in Fake.__index_parser__.args])
@@ -233,7 +230,7 @@ class IndexParserTest:
233
230
  assert set(additional_sorts).issubset(set(choices))
234
231
 
235
232
 
236
- class PatchTest:
233
+ class PatchTest(PytestOnlyDBTestCase):
237
234
  fake_json = {"url": URL_RAISE_ERROR, "description": None}
238
235
 
239
236
  def test_patch_check(self) -> None:
@@ -249,7 +246,7 @@ class PatchTest:
249
246
  patch_and_save(fake, fake_request)
250
247
 
251
248
 
252
- class PatchEmbeddedTest:
249
+ class PatchEmbeddedTest(PytestOnlyDBTestCase):
253
250
  fake_json = {
254
251
  "url": URL_RAISE_ERROR,
255
252
  "description": "desc",
@@ -268,7 +265,7 @@ class PatchEmbeddedTest:
268
265
  patch_and_save(fake, fake_request)
269
266
 
270
267
 
271
- class ApplySortAndFiltersTest:
268
+ class ApplySortAndFiltersTest(PytestOnlyDBTestCase):
272
269
  def test_filterable_field(self, app) -> None:
273
270
  """A filterable field filters the results."""
274
271
  fake1: Fake = FakeFactory(filter_field="test filter")
@@ -334,7 +331,7 @@ class ApplySortAndFiltersTest:
334
331
  assert fake2 not in results
335
332
 
336
333
 
337
- class ApplyPaginationTest:
334
+ class ApplyPaginationTest(PytestOnlyDBTestCase):
338
335
  def test_default_pagination(self, app) -> None:
339
336
  """Results should be returned with default pagination."""
340
337
  [FakeFactory() for _ in range(100)]
udata/tests/test_cors.py CHANGED
@@ -8,8 +8,6 @@ from udata.tests.helpers import assert_status
8
8
 
9
9
 
10
10
  class CorsTest(APITestCase):
11
- modules = []
12
-
13
11
  def test_cors_on_allowed_routes(self):
14
12
  cors_headers = {
15
13
  "Origin": "http://localhost",
@@ -1,8 +1,7 @@
1
- import pytest
1
+ from udata.tests.api import PytestOnlyDBTestCase
2
2
 
3
3
 
4
- @pytest.mark.usefixtures("clean_db")
5
- class ParseUrlCommandTest:
4
+ class ParseUrlCommandTest(PytestOnlyDBTestCase):
6
5
  def test_parse_url(self, cli, requests_mock, caplog) -> None:
7
6
  logs = []
8
7
 
@@ -31,14 +31,11 @@ from udata.models import Dataset, Member
31
31
  from udata.tests.helpers import capture_mails
32
32
  from udata.utils import faker
33
33
 
34
- from . import DBTestMixin, TestCase
35
- from .api import APITestCase
34
+ from .api import APITestCase, DBTestCase
36
35
  from .helpers import assert_emit, assert_not_emit
37
36
 
38
37
 
39
38
  class DiscussionsTest(APITestCase):
40
- modules = []
41
-
42
39
  @pytest.mark.options(SPAM_WORDS=["spam"])
43
40
  def test_new_discussion(self):
44
41
  user = self.login()
@@ -1018,7 +1015,7 @@ class DiscussionsTest(APITestCase):
1018
1015
  self.assert403(response)
1019
1016
 
1020
1017
 
1021
- class DiscussionsNotificationsTest(TestCase, DBTestMixin):
1018
+ class DiscussionsNotificationsTest(DBTestCase):
1022
1019
  def test_notify_user_discussions(self):
1023
1020
  owner = UserFactory()
1024
1021
  dataset = DatasetFactory(owner=owner)
@@ -1091,8 +1088,6 @@ class DiscussionsNotificationsTest(TestCase, DBTestMixin):
1091
1088
 
1092
1089
 
1093
1090
  class DiscussionsMailsTest(APITestCase):
1094
- modules = []
1095
-
1096
1091
  def test_new_discussion_mail(self):
1097
1092
  user = UserFactory()
1098
1093
  owner = UserFactory()
udata/tests/test_mail.py CHANGED
@@ -6,7 +6,7 @@ import pytest
6
6
  from udata.core.organization.factories import OrganizationFactory
7
7
  from udata.core.user.factories import UserFactory
8
8
  from udata.mail import mail, mail_sent, send
9
- from udata.tests import DBTestMixin, TestCase
9
+ from udata.tests.api import DBTestCase, PytestOnlyDBTestCase
10
10
  from udata.tests.helpers import assert_emit, assert_not_emit
11
11
 
12
12
  SMTPRecipientsRefusedList = ["not-found@udata", "not-found-either@udata"]
@@ -25,12 +25,8 @@ class FakeMail:
25
25
  yield FakeSender()
26
26
 
27
27
 
28
- class MailSendTest(TestCase, DBTestMixin):
29
- def create_app(self):
30
- app = super().create_app()
31
- app.config["SEND_MAIL"] = True
32
- return app
33
-
28
+ @pytest.mark.options(SEND_MAIL=True)
29
+ class MailSendTest(DBTestCase):
34
30
  @pytest.fixture(autouse=True)
35
31
  def patch_mail(self, mocker):
36
32
  mocker.patch("udata.mail.mail", FakeMail())
@@ -53,9 +49,7 @@ class MailSendTest(TestCase, DBTestMixin):
53
49
  send("subject", recipients, "base")
54
50
 
55
51
 
56
- @pytest.mark.usefixtures("clean_db")
57
- @pytest.mark.frontend
58
- class MailCampaignTest:
52
+ class MailCampaignTest(PytestOnlyDBTestCase):
59
53
  def test_send_mail_campaign_link_new_member(self, app):
60
54
  # MTM campaign are only added on web URL (not API ones generated when
61
55
  # no front-end is configured)