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
@@ -19,11 +19,10 @@ from udata.core.organization.models import Member
19
19
  from udata.core.reuse.factories import ReuseFactory
20
20
  from udata.core.spam.models import SpamMixin
21
21
  from udata.core.user.factories import UserFactory
22
+ from udata.tests.api import PytestOnlyAPITestCase
22
23
 
23
24
 
24
- @pytest.mark.usefixtures("clean_db")
25
- class FixturesTest:
26
- @pytest.mark.frontend
25
+ class FixturesTest(PytestOnlyAPITestCase):
27
26
  @pytest.mark.options(FIXTURE_DATASET_SLUGS=["some-test-dataset-slug"])
28
27
  def test_generate_fixtures_file_then_import(self, app, cli, api, monkeypatch):
29
28
  """Test generating fixtures from the current env, then importing them back."""
@@ -1,13 +1,11 @@
1
1
  from tempfile import NamedTemporaryFile
2
2
 
3
- import pytest
4
-
5
3
  from udata.core.organization.constants import CERTIFIED, PUBLIC_SERVICE
6
4
  from udata.core.organization.factories import OrganizationFactory
5
+ from udata.tests.api import PytestOnlyDBTestCase
7
6
 
8
7
 
9
- @pytest.mark.usefixtures("clean_db")
10
- class BadgeCommandTest:
8
+ class BadgeCommandTest(PytestOnlyDBTestCase):
11
9
  def toggle(self, path_or_id, kind):
12
10
  return self.cli("badges", "toggle", path_or_id, kind)
13
11
 
@@ -2,7 +2,7 @@ from udata.api_fields import field
2
2
  from udata.auth import login_user
3
3
  from udata.core.user.factories import UserFactory
4
4
  from udata.mongo import db
5
- from udata.tests import DBTestMixin, TestCase
5
+ from udata.tests.api import DBTestCase
6
6
 
7
7
  from ..models import Badge, BadgeMixin, BadgesList
8
8
 
@@ -33,7 +33,7 @@ class Fake(db.Document, FakeBadgeMixin):
33
33
  pass
34
34
 
35
35
 
36
- class BadgeMixinTest(DBTestMixin, TestCase):
36
+ class BadgeMixinTest(DBTestCase):
37
37
  def test_attributes(self):
38
38
  """It should have a badge list"""
39
39
  fake = Fake.objects.create()
@@ -6,8 +6,6 @@ from udata.tests.api import APITestCase
6
6
 
7
7
 
8
8
  class PageAPITest(APITestCase):
9
- modules = []
10
-
11
9
  def test_create_get_update(self):
12
10
  self.login()
13
11
  datasets = DatasetFactory.create_batch(3)
@@ -1,3 +1,4 @@
1
+ import pytest
1
2
  from flask import url_for
2
3
 
3
4
  from udata.core.dataset.factories import DatasetFactory
@@ -13,15 +14,12 @@ from udata.core.spatial.tasks import compute_geozones_metrics
13
14
  from udata.tests.api import APITestCase
14
15
  from udata.tests.api.test_datasets_api import SAMPLE_GEOM
15
16
  from udata.tests.features.territories import (
16
- TerritoriesSettings,
17
17
  create_geozones_fixtures,
18
18
  )
19
19
  from udata.utils import faker
20
20
 
21
21
 
22
22
  class SpatialApiTest(APITestCase):
23
- modules = []
24
-
25
23
  def test_zones_api_one(self):
26
24
  zone = GeoZoneFactory()
27
25
 
@@ -65,7 +63,7 @@ class SpatialApiTest(APITestCase):
65
63
  for i in range(4):
66
64
  GeoZoneFactory(name="name-test-{0}".format(i) if i % 2 else faker.word())
67
65
 
68
- response = self.get(url_for("api.suggest_zones"), qs={"q": "name-test", "size": "5"})
66
+ response = self.get(url_for("api.suggest_zones", q="name-test", size=5))
69
67
  self.assert200(response)
70
68
 
71
69
  self.assertEqual(len(response.json), 2)
@@ -84,7 +82,7 @@ class SpatialApiTest(APITestCase):
84
82
  for _ in range(2):
85
83
  GeoZoneFactory()
86
84
 
87
- response = self.get(url_for("api.suggest_zones"), qs={"q": zone.id})
85
+ response = self.get(url_for("api.suggest_zones", q=zone.id))
88
86
  self.assert200(response)
89
87
 
90
88
  self.assertEqual(response.json[0]["id"], zone["id"])
@@ -96,7 +94,7 @@ class SpatialApiTest(APITestCase):
96
94
  country_zone = GeoZoneFactory(name="name-test-country", level=country_level.id)
97
95
  region_zone = GeoZoneFactory(name="name-test-region", level=region_level.id)
98
96
 
99
- response = self.get(url_for("api.suggest_zones"), qs={"q": "name-test", "size": "5"})
97
+ response = self.get(url_for("api.suggest_zones", q="name-test", size=5))
100
98
  self.assert200(response)
101
99
 
102
100
  self.assertEqual(len(response.json), 2)
@@ -108,7 +106,7 @@ class SpatialApiTest(APITestCase):
108
106
  for i in range(4):
109
107
  GeoZoneFactory(code="code-test-{0}".format(i) if i % 2 else faker.word())
110
108
 
111
- response = self.get(url_for("api.suggest_zones"), qs={"q": "code-test", "size": "5"})
109
+ response = self.get(url_for("api.suggest_zones", q="code-test", size=5))
112
110
  self.assert200(response)
113
111
 
114
112
  self.assertEqual(len(response.json), 2)
@@ -126,7 +124,7 @@ class SpatialApiTest(APITestCase):
126
124
  for i in range(3):
127
125
  GeoZoneFactory(name=5 * "{0}".format(i), code=3 * "{0}".format(i))
128
126
 
129
- response = self.get(url_for("api.suggest_zones"), qs={"q": "xxxxxx", "size": "5"})
127
+ response = self.get(url_for("api.suggest_zones", q="xxxxxx", size=5))
130
128
  self.assert200(response)
131
129
  self.assertEqual(len(response.json), 0)
132
130
 
@@ -135,7 +133,7 @@ class SpatialApiTest(APITestCase):
135
133
  for i in range(4):
136
134
  GeoZoneFactory(name="name-testé-{0}".format(i) if i % 2 else faker.word())
137
135
 
138
- response = self.get(url_for("api.suggest_zones"), qs={"q": "name-testé", "size": "5"})
136
+ response = self.get(url_for("api.suggest_zones", q="name-testé", size=5))
139
137
  self.assert200(response)
140
138
 
141
139
  self.assertEqual(len(response.json), 2)
@@ -150,7 +148,7 @@ class SpatialApiTest(APITestCase):
150
148
 
151
149
  def test_suggest_zones_empty(self):
152
150
  """It should not provide zones suggestion if no data is present"""
153
- response = self.get(url_for("api.suggest_zones"), qs={"q": "xxxxxx", "size": "5"})
151
+ response = self.get(url_for("api.suggest_zones", q="xxxxxx", size=5))
154
152
  self.assert200(response)
155
153
  self.assertEqual(len(response.json), 0)
156
154
 
@@ -194,7 +192,7 @@ class SpatialApiTest(APITestCase):
194
192
  organization=organization, spatial=SpatialCoverageFactory(zones=[paca.id])
195
193
  )
196
194
 
197
- response = self.get(url_for("api.zone_datasets", id=paca.id), qs={"size": 2})
195
+ response = self.get(url_for("api.zone_datasets", id=paca.id, size=2))
198
196
  self.assert200(response)
199
197
  self.assertEqual(len(response.json), 2)
200
198
 
@@ -206,7 +204,7 @@ class SpatialApiTest(APITestCase):
206
204
  organization=organization, spatial=SpatialCoverageFactory(zones=[paca.id])
207
205
  )
208
206
 
209
- response = self.get(url_for("api.zone_datasets", id=paca.id), qs={"dynamic": 1})
207
+ response = self.get(url_for("api.zone_datasets", id=paca.id, dynamic=1))
210
208
  self.assert200(response)
211
209
  # No dynamic datasets given that the setting is deactivated by default.
212
210
  self.assertEqual(len(response.json), 3)
@@ -219,7 +217,7 @@ class SpatialApiTest(APITestCase):
219
217
  organization=organization, spatial=SpatialCoverageFactory(zones=[paca.id])
220
218
  )
221
219
 
222
- response = self.get(url_for("api.zone_datasets", id=paca.id), qs={"dynamic": 1, "size": 2})
220
+ response = self.get(url_for("api.zone_datasets", id=paca.id, dynamic=1, size=2))
223
221
  self.assert200(response)
224
222
  # No dynamic datasets given that the setting is deactivated by default.
225
223
  self.assertEqual(len(response.json), 2)
@@ -260,10 +258,11 @@ class SpatialApiTest(APITestCase):
260
258
  self.assertEqual(response.json["features"][1]["properties"]["datasets"], 3)
261
259
 
262
260
 
261
+ @pytest.mark.options(
262
+ ACTIVATE_TERRITORIES=True,
263
+ HANDLED_LEVELS=("fr:commune", "fr:departement", "fr:region", "country"),
264
+ )
263
265
  class SpatialTerritoriesApiTest(APITestCase):
264
- modules = []
265
- settings = TerritoriesSettings
266
-
267
266
  def test_zone_datasets_with_dynamic_and_setting(self):
268
267
  paca, bdr, arles = create_geozones_fixtures()
269
268
  organization = OrganizationFactory()
@@ -272,7 +271,7 @@ class SpatialTerritoriesApiTest(APITestCase):
272
271
  organization=organization, spatial=SpatialCoverageFactory(zones=[paca.id])
273
272
  )
274
273
 
275
- response = self.get(url_for("api.zone_datasets", id=paca.id), qs={"dynamic": 1})
274
+ response = self.get(url_for("api.zone_datasets", id=paca.id, dynamic=1))
276
275
  self.assert200(response)
277
276
  # No dynamic datasets given that they are added by udata-front extension.
278
277
  self.assertEqual(len(response.json), 3)
@@ -285,15 +284,13 @@ class SpatialTerritoriesApiTest(APITestCase):
285
284
  organization=organization, spatial=SpatialCoverageFactory(zones=[paca.id])
286
285
  )
287
286
 
288
- response = self.get(url_for("api.zone_datasets", id=paca.id), qs={"dynamic": 1, "size": 2})
287
+ response = self.get(url_for("api.zone_datasets", id=paca.id, dynamic=1, size=2))
289
288
  self.assert200(response)
290
289
  # No dynamic datasets given that they are added by udata-front extension.
291
290
  self.assertEqual(len(response.json), 2)
292
291
 
293
292
 
294
293
  class DatasetsSpatialAPITest(APITestCase):
295
- modules = []
296
-
297
294
  def test_create_spatial_zones(self):
298
295
  paca, _, _ = create_geozones_fixtures()
299
296
  granularity = spatial_granularities[0][0]
@@ -1,6 +1,6 @@
1
1
  from datetime import timedelta
2
2
 
3
- from udata.tests import DBTestMixin, TestCase
3
+ from udata.tests.api import DBTestCase
4
4
 
5
5
  from ..factories import GeoZoneFactory
6
6
  from ..models import GeoZone, SpatialCoverage
@@ -8,7 +8,7 @@ from ..models import GeoZone, SpatialCoverage
8
8
  A_YEAR = timedelta(days=365)
9
9
 
10
10
 
11
- class SpacialCoverageTest(DBTestMixin, TestCase):
11
+ class SpacialCoverageTest(DBTestCase):
12
12
  def test_top_label_empty(self):
13
13
  coverage = SpatialCoverage()
14
14
  self.assertIsNone(coverage.top_label)
@@ -19,7 +19,7 @@ class SpacialCoverageTest(DBTestMixin, TestCase):
19
19
  self.assertEqual(coverage.top_label, "name")
20
20
 
21
21
 
22
- class SpatialTemporalResolutionTest(DBTestMixin, TestCase):
22
+ class SpatialTemporalResolutionTest(DBTestCase):
23
23
  def test_resolve_id_only(self):
24
24
  zone = GeoZoneFactory()
25
25
  for i in range(3):
@@ -6,14 +6,10 @@ from udata.core.followers.models import Follow
6
6
  from udata.core.organization.factories import OrganizationFactory
7
7
  from udata.core.user.factories import UserFactory
8
8
  from udata.core.user.models import User
9
+ from udata.tests.api import APITestCase
9
10
 
10
- pytestmark = pytest.mark.usefixtures("clean_db")
11
-
12
-
13
- @pytest.mark.frontend
14
- class UserModelTest:
15
- modules = [] # Required for mails
16
11
 
12
+ class UserModelTest(APITestCase):
17
13
  def test_mark_as_deleted(self):
18
14
  user = UserFactory()
19
15
  other_user = UserFactory()
@@ -1,20 +1,10 @@
1
- import pytest
2
-
3
1
  from udata.features.identicon.backends import internal
2
+ from udata.tests.api import PytestOnlyAPITestCase
4
3
  from udata.tests.helpers import assert200
5
4
  from udata.utils import faker
6
5
 
7
- pytestmark = pytest.mark.usefixtures("app")
8
-
9
-
10
- def assert_stream_equal(response1, response2):
11
- __tracebackhide__ = True
12
- stream1 = list(response1.iter_encoded())
13
- stream2 = list(response2.iter_encoded())
14
- assert stream1 == stream2
15
-
16
6
 
17
- class InternalBackendTest:
7
+ class InternalBackendTest(PytestOnlyAPITestCase):
18
8
  def test_base_rendering(self):
19
9
  response = internal(faker.word(), 32)
20
10
  assert200(response)
@@ -25,4 +15,4 @@ class InternalBackendTest:
25
15
 
26
16
  def test_render_twice_the_same(self):
27
17
  identifier = faker.word()
28
- assert_stream_equal(internal(identifier, 32), internal(identifier, 32))
18
+ self.assertStreamEqual(internal(identifier, 32), internal(identifier, 32))