udata 12.0.2.dev15__py3-none-any.whl → 12.0.2.dev17__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.
- udata/commands/tests/test_fixtures.py +4 -0
- udata/core/dataset/forms.py +2 -0
- udata/forms/fields.py +3 -3
- udata/forms/widgets.py +2 -2
- udata/harvest/tests/test_dcat_backend.py +1 -10
- udata/mongo/taglist_field.py +3 -3
- udata/settings.py +3 -0
- udata/tags.py +5 -5
- udata/tests/api/test_datasets_api.py +25 -21
- udata/tests/test_tags.py +0 -3
- udata/utils.py +1 -1
- {udata-12.0.2.dev15.dist-info → udata-12.0.2.dev17.dist-info}/METADATA +1 -1
- {udata-12.0.2.dev15.dist-info → udata-12.0.2.dev17.dist-info}/RECORD +17 -17
- {udata-12.0.2.dev15.dist-info → udata-12.0.2.dev17.dist-info}/WHEEL +0 -0
- {udata-12.0.2.dev15.dist-info → udata-12.0.2.dev17.dist-info}/entry_points.txt +0 -0
- {udata-12.0.2.dev15.dist-info → udata-12.0.2.dev17.dist-info}/licenses/LICENSE +0 -0
- {udata-12.0.2.dev15.dist-info → udata-12.0.2.dev17.dist-info}/top_level.txt +0 -0
|
@@ -17,6 +17,7 @@ from udata.core.discussions.factories import DiscussionFactory, MessageDiscussio
|
|
|
17
17
|
from udata.core.organization.factories import OrganizationFactory
|
|
18
18
|
from udata.core.organization.models import Member
|
|
19
19
|
from udata.core.reuse.factories import ReuseFactory
|
|
20
|
+
from udata.core.spam.models import SpamMixin
|
|
20
21
|
from udata.core.user.factories import UserFactory
|
|
21
22
|
|
|
22
23
|
|
|
@@ -108,7 +109,10 @@ class FixturesTest:
|
|
|
108
109
|
|
|
109
110
|
def test_import_fixtures_from_default_file(self, cli):
|
|
110
111
|
"""Test importing fixtures from udata.commands.fixture.DEFAULT_FIXTURE_FILE."""
|
|
112
|
+
# Deactivate spam detection when testing import fixtures
|
|
113
|
+
SpamMixin.detect_spam_enabled = False
|
|
111
114
|
cli("import-fixtures")
|
|
115
|
+
SpamMixin.detect_spam_enabled = True
|
|
112
116
|
assert models.Organization.objects.count() > 0
|
|
113
117
|
assert models.Dataset.objects.count() > 0
|
|
114
118
|
assert models.Reuse.objects.count() > 0
|
udata/core/dataset/forms.py
CHANGED
|
@@ -116,6 +116,8 @@ class CommunityResourceForm(BaseResourceForm):
|
|
|
116
116
|
|
|
117
117
|
|
|
118
118
|
def unmarshal_frequency(form, field):
|
|
119
|
+
if field.data is None:
|
|
120
|
+
return
|
|
119
121
|
# We don't need to worry about invalid field.data being fed to UpdateFrequency here,
|
|
120
122
|
# since the API will already have ensured incoming data matches the field definition,
|
|
121
123
|
# which in our case is an enum of valid UpdateFrequency values.
|
udata/forms/fields.py
CHANGED
|
@@ -416,11 +416,11 @@ class TagField(Field):
|
|
|
416
416
|
if not self.data:
|
|
417
417
|
return
|
|
418
418
|
for tag in self.data:
|
|
419
|
-
if not tags.
|
|
419
|
+
if not tags.TAG_MIN_LENGTH <= len(tag) <= tags.TAG_MAX_LENGTH:
|
|
420
420
|
message = _(
|
|
421
421
|
'Tag "%(tag)s" must be between %(min)d and %(max)d characters long.',
|
|
422
|
-
min=tags.
|
|
423
|
-
max=tags.
|
|
422
|
+
min=tags.TAG_MIN_LENGTH,
|
|
423
|
+
max=tags.TAG_MAX_LENGTH,
|
|
424
424
|
tag=tag,
|
|
425
425
|
)
|
|
426
426
|
raise validators.ValidationError(message)
|
udata/forms/widgets.py
CHANGED
|
@@ -191,7 +191,6 @@ class DcatBackendTest:
|
|
|
191
191
|
|
|
192
192
|
def test_harvest_dataservices_keep_attached_associated_datasets(self, rmock):
|
|
193
193
|
"""It should update the existing list of dataservice.datasets and not overwrite existing ones"""
|
|
194
|
-
rmock.get("https://example.com/schemas", json=ResourceSchemaMockData.get_mock_data())
|
|
195
194
|
|
|
196
195
|
filename = "bnodes.xml"
|
|
197
196
|
url = mock_dcat(rmock, filename)
|
|
@@ -359,10 +358,8 @@ class DcatBackendTest:
|
|
|
359
358
|
is None
|
|
360
359
|
)
|
|
361
360
|
|
|
362
|
-
@pytest.mark.options(
|
|
361
|
+
@pytest.mark.options(HARVEST_MAX_ITEMS=2)
|
|
363
362
|
def test_harvest_max_items(self, rmock):
|
|
364
|
-
rmock.get("https://example.com/schemas", json=ResourceSchemaMockData.get_mock_data())
|
|
365
|
-
|
|
366
363
|
filename = "bnodes.xml"
|
|
367
364
|
url = mock_dcat(rmock, filename)
|
|
368
365
|
org = OrganizationFactory()
|
|
@@ -373,10 +370,7 @@ class DcatBackendTest:
|
|
|
373
370
|
assert Dataset.objects.count() == 2
|
|
374
371
|
assert HarvestJob.objects.first().status == "done"
|
|
375
372
|
|
|
376
|
-
@pytest.mark.options(SCHEMA_CATALOG_URL="https://example.com/schemas")
|
|
377
373
|
def test_harvest_spatial(self, rmock):
|
|
378
|
-
rmock.get("https://example.com/schemas", json=ResourceSchemaMockData.get_mock_data())
|
|
379
|
-
|
|
380
374
|
filename = "bnodes.xml"
|
|
381
375
|
url = mock_dcat(rmock, filename)
|
|
382
376
|
org = OrganizationFactory()
|
|
@@ -445,10 +439,7 @@ class DcatBackendTest:
|
|
|
445
439
|
assert resources_by_title["Resource 3-1"].schema.url is None
|
|
446
440
|
assert resources_by_title["Resource 3-1"].schema.version == "2.2.0"
|
|
447
441
|
|
|
448
|
-
@pytest.mark.options(SCHEMA_CATALOG_URL="https://example.com/schemas")
|
|
449
442
|
def test_harvest_inspire_themese(self, rmock):
|
|
450
|
-
rmock.get("https://example.com/schemas", json=ResourceSchemaMockData.get_mock_data())
|
|
451
|
-
|
|
452
443
|
filename = "bnodes.xml"
|
|
453
444
|
url = mock_dcat(rmock, filename)
|
|
454
445
|
org = OrganizationFactory()
|
udata/mongo/taglist_field.py
CHANGED
|
@@ -32,12 +32,12 @@ class TagListField(ListField):
|
|
|
32
32
|
super(TagListField, self).validate(values)
|
|
33
33
|
|
|
34
34
|
for tag in values:
|
|
35
|
-
if not tags.
|
|
35
|
+
if not tags.TAG_MIN_LENGTH <= len(tag) <= tags.TAG_MAX_LENGTH:
|
|
36
36
|
self.error(
|
|
37
37
|
_(
|
|
38
38
|
'Tag "%(tag)s" must be between %(min)d and %(max)d characters long.',
|
|
39
|
-
min=tags.
|
|
40
|
-
max=tags.
|
|
39
|
+
min=tags.TAG_MIN_LENGTH,
|
|
40
|
+
max=tags.TAG_MAX_LENGTH,
|
|
41
41
|
tag=tag,
|
|
42
42
|
)
|
|
43
43
|
)
|
udata/settings.py
CHANGED
|
@@ -658,6 +658,9 @@ class Testing(object):
|
|
|
658
658
|
} # Disables deliverability for email domain name
|
|
659
659
|
PUBLISH_ON_RESOURCE_EVENTS = False
|
|
660
660
|
HARVEST_ACTIVITY_USER_ID = None
|
|
661
|
+
SEARCH_SERVICE_API_URL = None
|
|
662
|
+
CDATA_BASE_URL = None
|
|
663
|
+
SCHEMA_CATALOG_URL = None
|
|
661
664
|
|
|
662
665
|
|
|
663
666
|
class Debug(Defaults):
|
udata/tags.py
CHANGED
|
@@ -2,8 +2,8 @@ from flask import current_app
|
|
|
2
2
|
from slugify import slugify
|
|
3
3
|
from werkzeug.local import LocalProxy
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
TAG_MIN_LENGTH = LocalProxy(lambda: current_app.config["TAG_MIN_LENGTH"])
|
|
6
|
+
TAG_MAX_LENGTH = LocalProxy(lambda: current_app.config["TAG_MAX_LENGTH"])
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
def slug(value: str) -> str:
|
|
@@ -12,10 +12,10 @@ def slug(value: str) -> str:
|
|
|
12
12
|
|
|
13
13
|
def normalize(value: str) -> str:
|
|
14
14
|
value = slug(value)
|
|
15
|
-
if len(value) <
|
|
15
|
+
if len(value) < TAG_MIN_LENGTH:
|
|
16
16
|
value = ""
|
|
17
|
-
elif len(value) >
|
|
18
|
-
value = value[:
|
|
17
|
+
elif len(value) > TAG_MAX_LENGTH:
|
|
18
|
+
value = value[:TAG_MAX_LENGTH]
|
|
19
19
|
return value
|
|
20
20
|
|
|
21
21
|
|
|
@@ -42,7 +42,7 @@ from udata.core.topic.factories import TopicElementDatasetFactory, TopicFactory
|
|
|
42
42
|
from udata.core.user.factories import AdminFactory, UserFactory
|
|
43
43
|
from udata.i18n import gettext as _
|
|
44
44
|
from udata.models import CommunityResource, Dataset, Follow, Member, db
|
|
45
|
-
from udata.tags import
|
|
45
|
+
from udata.tags import TAG_MAX_LENGTH, TAG_MIN_LENGTH
|
|
46
46
|
from udata.tests.features.territories import create_geozones_fixtures
|
|
47
47
|
from udata.tests.helpers import assert200, assert404
|
|
48
48
|
from udata.utils import faker, unique_string
|
|
@@ -632,19 +632,21 @@ class DatasetAPITest(APITestCase):
|
|
|
632
632
|
dataset = Dataset.objects.first()
|
|
633
633
|
self.assertEqual(dataset.tags, sorted(data["tags"]))
|
|
634
634
|
|
|
635
|
+
@pytest.mark.options(TAG_MIN_LENGTH=3, TAG_MAX_LENGTH=10)
|
|
635
636
|
def test_dataset_api_fail_to_create_too_short_tags(self):
|
|
636
637
|
"""It should fail to create a dataset from the API because
|
|
637
638
|
the tag is too short"""
|
|
638
639
|
data = DatasetFactory.as_dict()
|
|
639
|
-
data["tags"] = [unique_string(
|
|
640
|
+
data["tags"] = [unique_string(TAG_MIN_LENGTH - 1)]
|
|
640
641
|
with self.api_user():
|
|
641
642
|
response = self.post(url_for("api.datasets"), data)
|
|
642
643
|
self.assertStatus(response, 400)
|
|
643
644
|
|
|
645
|
+
@pytest.mark.options(TAG_MIN_LENGTH=3, TAG_MAX_LENGTH=10)
|
|
644
646
|
def test_dataset_api_fail_to_create_too_long_tags(self):
|
|
645
647
|
"""Should fail creating a dataset with a tag long"""
|
|
646
648
|
data = DatasetFactory.as_dict()
|
|
647
|
-
data["tags"] = [unique_string(
|
|
649
|
+
data["tags"] = [unique_string(TAG_MAX_LENGTH + 1)]
|
|
648
650
|
with self.api_user():
|
|
649
651
|
response = self.post(url_for("api.datasets"), data)
|
|
650
652
|
self.assertStatus(response, 400)
|
|
@@ -741,6 +743,18 @@ class DatasetAPITest(APITestCase):
|
|
|
741
743
|
self.assertEqual(Dataset.objects.count(), 1)
|
|
742
744
|
self.assertEqual(Dataset.objects.first().description, "new description")
|
|
743
745
|
|
|
746
|
+
def test_dataset_api_update_with_null_frequency(self):
|
|
747
|
+
"""It should update the item even though internal frequency is null"""
|
|
748
|
+
user = self.login()
|
|
749
|
+
dataset = DatasetFactory(owner=user, frequency=None)
|
|
750
|
+
data = dataset.to_dict()
|
|
751
|
+
# Update doesn't matter as long as we don't touch `frequency`
|
|
752
|
+
data["tags"] = ["test"]
|
|
753
|
+
response = self.put(url_for("api.dataset", dataset=dataset), data)
|
|
754
|
+
self.assert200(response)
|
|
755
|
+
self.assertEqual(Dataset.objects.count(), 1)
|
|
756
|
+
self.assertEqual(Dataset.objects.first().frequency, None)
|
|
757
|
+
|
|
744
758
|
def test_dataset_api_update_valid_frequency(self):
|
|
745
759
|
"""It should update a dataset from the API"""
|
|
746
760
|
user = self.login()
|
|
@@ -1411,7 +1425,7 @@ class DatasetsFeedAPItest(APITestCase):
|
|
|
1411
1425
|
assert "<h1>" in response.text
|
|
1412
1426
|
assert "<ul>" in response.text
|
|
1413
1427
|
|
|
1414
|
-
@pytest.mark.options(DELAY_BEFORE_APPEARING_IN_RSS_FEED=0)
|
|
1428
|
+
@pytest.mark.options(DELAY_BEFORE_APPEARING_IN_RSS_FEED=0, CDATA_BASE_URL="http://example.org")
|
|
1415
1429
|
def test_feed_id_uri_is_valid(self):
|
|
1416
1430
|
DatasetFactory()
|
|
1417
1431
|
|
|
@@ -1941,35 +1955,25 @@ class DatasetResourceAPITest(APITestCase):
|
|
|
1941
1955
|
self.assertEqual(Follow.objects.following(user).count(), 0)
|
|
1942
1956
|
self.assertEqual(Follow.objects.followers(user).count(), 0)
|
|
1943
1957
|
|
|
1958
|
+
@pytest.mark.options(ALLOWED_RESOURCES_EXTENSIONS=["txt", "html", "kml", "kml-1", "qml", "xml"])
|
|
1944
1959
|
def test_suggest_formats_api(self):
|
|
1945
|
-
"""It should suggest formats"""
|
|
1946
|
-
DatasetFactory(
|
|
1947
|
-
resources=[
|
|
1948
|
-
ResourceFactory(format=f) for f in (faker.word(), faker.word(), "kml", "kml-1")
|
|
1949
|
-
]
|
|
1950
|
-
)
|
|
1951
|
-
|
|
1952
1960
|
response = self.get(url_for("api.suggest_formats"), qs={"q": "km", "size": "5"})
|
|
1953
1961
|
self.assert200(response)
|
|
1954
1962
|
|
|
1955
|
-
self.
|
|
1956
|
-
self.
|
|
1957
|
-
|
|
1958
|
-
for suggestion in response.json:
|
|
1959
|
-
self.assertIn("text", suggestion)
|
|
1960
|
-
self.assertIn("km", suggestion["text"])
|
|
1963
|
+
self.assertEqual(len(response.json), 2)
|
|
1964
|
+
self.assertEqual(response.json[0]["text"], "kml")
|
|
1965
|
+
self.assertEqual(response.json[1]["text"], "kml-1")
|
|
1961
1966
|
|
|
1967
|
+
@pytest.mark.options(ALLOWED_RESOURCES_EXTENSIONS=["txt", "html", "kml", "kml-1", "qml", "xml"])
|
|
1962
1968
|
def test_suggest_format_api_no_match(self):
|
|
1963
|
-
"""It should not provide format suggestion if no match"""
|
|
1964
|
-
DatasetFactory(resources=[ResourceFactory(format=faker.word()) for _ in range(3)])
|
|
1965
|
-
|
|
1966
1969
|
response = self.get(url_for("api.suggest_formats"), qs={"q": "test", "size": "5"})
|
|
1967
1970
|
self.assert200(response)
|
|
1968
1971
|
self.assertEqual(len(response.json), 0)
|
|
1969
1972
|
|
|
1973
|
+
@pytest.mark.options(ALLOWED_RESOURCES_EXTENSIONS=[])
|
|
1970
1974
|
def test_suggest_format_api_empty(self):
|
|
1971
1975
|
"""It should not provide format suggestion if no data"""
|
|
1972
|
-
response = self.get(url_for("api.suggest_formats"), qs={"q": "
|
|
1976
|
+
response = self.get(url_for("api.suggest_formats"), qs={"q": "txt", "size": "5"})
|
|
1973
1977
|
self.assert200(response)
|
|
1974
1978
|
self.assertEqual(len(response.json), 0)
|
|
1975
1979
|
|
udata/tests/test_tags.py
CHANGED
udata/utils.py
CHANGED
|
@@ -10,14 +10,14 @@ udata/mail.py,sha256=Huhx_1QthJkLvuRUuP6jqb5Qq5R4iSmqeEpLVO9ZkQ4,2671
|
|
|
10
10
|
udata/rdf.py,sha256=dQSYVS2NrMRE6fsrbGwXl_roM0k6jtt1JPtMhHxeVGg,20970
|
|
11
11
|
udata/routing.py,sha256=Hnc1ktmKVS-RUHNKw2zYTft2HJ903FhjtlcenQ9igwI,8044
|
|
12
12
|
udata/sentry.py,sha256=ekcxqUSqxfM98TtvCsPaOoX5i2l6PEcYt7kb4l3od-Q,3223
|
|
13
|
-
udata/settings.py,sha256=
|
|
13
|
+
udata/settings.py,sha256=pH56WVRNg4GJkuqIX6gMtEDLNoQh6d5Bpd-ekVMXcOo,21994
|
|
14
14
|
udata/sitemap.py,sha256=oRRWoPI7ZsFFnUAOqGT1YuXFFKHBe8EcRnUCNHD7xjM,979
|
|
15
|
-
udata/tags.py,sha256=
|
|
15
|
+
udata/tags.py,sha256=8R2gJieQtHgj7ZWIckMCkQu39fqzEUehxlYRfSD6bYQ,631
|
|
16
16
|
udata/tasks.py,sha256=Sv01dhvATtq_oHOBp3J1j1VT1HQe0Pab7zxwIeIdKoo,5122
|
|
17
17
|
udata/terms.md,sha256=nFx978tUQ3vTEv6POykXaZvcQ5e_gcvmO4ZgcfbSWXo,187
|
|
18
18
|
udata/tracking.py,sha256=WOcqA1RlHN8EPFuEc2kNau54mec4-pvi-wUFrMXevzg,345
|
|
19
19
|
udata/uris.py,sha256=u05ltyLv4ZolaNMbq58kcLizMXWC10mRpJFYzChUHJU,4440
|
|
20
|
-
udata/utils.py,sha256=
|
|
20
|
+
udata/utils.py,sha256=MiDmUlKtllTtJQo09aez2DsE3iH6CaahBMEDGMgsV70,13243
|
|
21
21
|
udata/worker.py,sha256=K-Wafye5-uXP4kQlffRKws2J9YbJ6m6n2QjcVsY8Nsg,118
|
|
22
22
|
udata/wsgi.py,sha256=MY8en9K9eDluvJYUxTdzqSDoYaDgCVZ69ZcUvxAvgqA,77
|
|
23
23
|
udata/api/__init__.py,sha256=Rs1V6KqWUcZliZnoIrVKtq15Bfb8ZaOVOFuGhcv0SK8,11948
|
|
@@ -47,7 +47,7 @@ udata/commands/serve.py,sha256=dl1ktePSKPPGr-byGDoYQtPScgHibYH8YdV8MHnxVIM,2498
|
|
|
47
47
|
udata/commands/test.py,sha256=0snHTDolowQK-DmAKnhF_mBuDOBMApAbEc35GEiwH0M,893
|
|
48
48
|
udata/commands/worker.py,sha256=bjXQGCwkbZxkcxLMPA2Lr0nkNjXLpGNDMkkQXjwBLPI,3976
|
|
49
49
|
udata/commands/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
udata/commands/tests/test_fixtures.py,sha256=
|
|
50
|
+
udata/commands/tests/test_fixtures.py,sha256=92__mnJ9kSARLnIR64d1C6dYA4hmcvJXuD7DXjIrTxw,5755
|
|
51
51
|
udata/core/__init__.py,sha256=rPkzAmhURfV4x9v2iY_vOakNd75xseYW2jWNIoh-aRg,423
|
|
52
52
|
udata/core/captchetat.py,sha256=PNobWeJiYSgpSZQ9vJpuEvk5xSkAD5sgrWhKcVPbncg,2953
|
|
53
53
|
udata/core/csv.py,sha256=qeRtSQXPT5n5EoWZ3_XfnOTW7ITnEzzHctODPeX63Uk,8543
|
|
@@ -101,7 +101,7 @@ udata/core/dataset/csv.py,sha256=mNU5cuuNzrMgFF7Z0AKN8clsv458tpJHX1_pzAjpd-4,365
|
|
|
101
101
|
udata/core/dataset/events.py,sha256=bSM0nFEX14r4JHc-bAM-7OOuD3JAxUIpw9GgXbOsUyw,4078
|
|
102
102
|
udata/core/dataset/exceptions.py,sha256=uKiayLSpSzsnLvClObS6hOO0qXEqvURKN7_w8eimQNU,498
|
|
103
103
|
udata/core/dataset/factories.py,sha256=tb18axsk8Tx5iUIqWM9IELdt-2Ryp2UN0-iY4fdea4U,9059
|
|
104
|
-
udata/core/dataset/forms.py,sha256=
|
|
104
|
+
udata/core/dataset/forms.py,sha256=rd4M86QtRFa9laxJGAszgzzrcg4EBGrf-p3HwrxO80I,7126
|
|
105
105
|
udata/core/dataset/metrics.py,sha256=s8Xs_rqRXfNWsErkiJTuRMG5o_cU5iSK8mUJFKVSc7w,1204
|
|
106
106
|
udata/core/dataset/models.py,sha256=1iXf6l0wjNv04if6gAq-NXSPLub2Mx2KOyCg2RQtids,41617
|
|
107
107
|
udata/core/dataset/permissions.py,sha256=zXQ6kU-Ni3Pl5tDtat-ZPupug9InsNeCN7xRLc2Vcrc,1097
|
|
@@ -291,9 +291,9 @@ udata/flask_mongoengine/model_form.py,sha256=LI6eqd2zykhron29U280mjt0uZlBpM8GP9N
|
|
|
291
291
|
udata/flask_mongoengine/pagination.py,sha256=AmKZqC6Pe4K8Y2TF1kj5O4gM5_m1NVthtJQVvoayX2M,5592
|
|
292
292
|
udata/flask_mongoengine/wtf.py,sha256=BU2ahk6xkUmM18oaUf539RXFTP04O8S2CvEniYGJ1co,1226
|
|
293
293
|
udata/forms/__init__.py,sha256=WdBOu40HijJi0A6kjUkuT-WEP2YNW3k_ftSzQS_Zl9Y,789
|
|
294
|
-
udata/forms/fields.py,sha256=
|
|
294
|
+
udata/forms/fields.py,sha256=7zPxvgvUG4X3Yt1nm1NvksY9RcgUtNsgPTHiZ8J_rVY,30042
|
|
295
295
|
udata/forms/validators.py,sha256=CRgmB6oow5O8LDR45LajlJJ9HX3RBCI08fapoWMH1vo,2727
|
|
296
|
-
udata/forms/widgets.py,sha256=
|
|
296
|
+
udata/forms/widgets.py,sha256=7qymIpynrQmNlA8hrkcF0RB8eLwOJFkjca_KOZ0zqtE,1332
|
|
297
297
|
udata/frontend/__init__.py,sha256=DkqncR72V9TRlA3QEcpVtCIkUMUlnTytBlJFQ4HfEiA,6454
|
|
298
298
|
udata/frontend/markdown.py,sha256=5kNMVOMLlGvJfpIVONaQv4JT1pi6qWNcnb_BVV_VNJQ,4324
|
|
299
299
|
udata/harvest/__init__.py,sha256=C4y5w4vGb_F9Opy62lzV3eHo4DkNyRgPCq-wsarPXiQ,28
|
|
@@ -324,7 +324,7 @@ udata/harvest/tests/person.jsonld,sha256=I7Ynh-PQlNeD51I1LrCgYOEjhL-WBeb65xzIE_s
|
|
|
324
324
|
udata/harvest/tests/test_actions.py,sha256=d5TTFTbs4PdBydWICqDtfoeo3zLyzcNDzv4aMH9spxo,25881
|
|
325
325
|
udata/harvest/tests/test_api.py,sha256=gSuICkPy3KVRUhHAyudXVf_gLwiB7SoriUp3DLXWDdA,21611
|
|
326
326
|
udata/harvest/tests/test_base_backend.py,sha256=ow8ecGtD836mUqyPWYjkS5nx0STyT5RMLgBdDyOhts4,19233
|
|
327
|
-
udata/harvest/tests/test_dcat_backend.py,sha256=
|
|
327
|
+
udata/harvest/tests/test_dcat_backend.py,sha256=oyAfCLQcxZaBy97gt8hbMI1TJt8cXgsSpvF5_3XUmME,51263
|
|
328
328
|
udata/harvest/tests/test_filters.py,sha256=PT2qopEIoXsqi8MsNDRuhNH7jGXiQo8r0uJrCOUd4aM,2465
|
|
329
329
|
udata/harvest/tests/test_models.py,sha256=f9NRR2_S4oZFgF8qOumg0vv-lpnEBJbI5vNtcwFdSqM,831
|
|
330
330
|
udata/harvest/tests/test_notifications.py,sha256=MMzTzkv-GXMNFeOwAi31rdTsAXyLCLOSna41zOtaJG0,816
|
|
@@ -407,7 +407,7 @@ udata/mongo/errors.py,sha256=SpTMAc_aNIfGkqyXGCbTlIAmYxU86rGM_NtIYaB642c,472
|
|
|
407
407
|
udata/mongo/extras_fields.py,sha256=knb0fwt8eIEOA0jjeUAs9Gmn_cfUNVPuRdGEVcJzE2Y,4218
|
|
408
408
|
udata/mongo/queryset.py,sha256=fXfYkUHsCWAUoub3OR7v825USPv-PQQIHkv4U5FnjYg,3954
|
|
409
409
|
udata/mongo/slug_fields.py,sha256=tEUlwozrdQfF42KR5dxk5PUNSX7zISTIXsSgHxR4YMg,7522
|
|
410
|
-
udata/mongo/taglist_field.py,sha256=
|
|
410
|
+
udata/mongo/taglist_field.py,sha256=d4xUzXNaNgOlhllKNaTIhAiyjPhfOuXU99fYv3ds1u4,1371
|
|
411
411
|
udata/mongo/url_field.py,sha256=UmUr9c5SxDFDpS5QsRTq2pKcCTOr1SoB4UITwNjtuaI,1345
|
|
412
412
|
udata/mongo/uuid_fields.py,sha256=tuQ3zs_BnQHjaiKSIYv43jxvYtOvRLw9nP5CQ3fcMks,482
|
|
413
413
|
udata/notifications/__init__.py,sha256=ZrSpV2zI9bZ0oz8tGsnA8hjDdGeU7YDdgvOLo70aohg,54
|
|
@@ -506,7 +506,7 @@ udata/tests/test_owned.py,sha256=3WGtAGT15RQPf2Swme8xPmflelI3I9rqTkVhSV-wf6E,970
|
|
|
506
506
|
udata/tests/test_rdf.py,sha256=XlUjRFcvTeZx1DTwwHL4pHQTcFDcAuQzaGOY_jJMDL4,4863
|
|
507
507
|
udata/tests/test_routing.py,sha256=jtCZuT229WhGvJU843DtzIrdUXN5f7dym-hwz5dOFLo,10844
|
|
508
508
|
udata/tests/test_storages.py,sha256=OG_PnKtPlZmmhKnbbLrvL-EMEg35wAMsTC76jVEAOLU,9602
|
|
509
|
-
udata/tests/test_tags.py,sha256=
|
|
509
|
+
udata/tests/test_tags.py,sha256=F32v_BjtlrWy2Z6RSKHIBDjPeEak1qsFT4KnAYU4JN8,3669
|
|
510
510
|
udata/tests/test_topics.py,sha256=jbqhlEk-qgfJ8qFegGcfLGP2BTadjeCaza77Lmra9n8,5546
|
|
511
511
|
udata/tests/test_transfer.py,sha256=_0pBwYs3T7OSZ7bO3KmQ81SjwCJyT4EVf8YYHXOkwdk,7779
|
|
512
512
|
udata/tests/test_uris.py,sha256=MxafZ0SyzSNRomVpZnH1ChzWaHOi1MQiXe1gmKnBc6o,8517
|
|
@@ -517,7 +517,7 @@ udata/tests/api/test_auth_api.py,sha256=Mue5EneRp3MbD-ahcXI3YaRNYPcxzHMw-hYpY0Rt
|
|
|
517
517
|
udata/tests/api/test_base_api.py,sha256=2w_vz0eEuq3P3aN-ByvxGc3VZAo7XtgatFfcrzf2uEU,2244
|
|
518
518
|
udata/tests/api/test_contact_points.py,sha256=Sbb486RTN7HVycna_XB60OnURPSNc7xUity26XsYA4k,8766
|
|
519
519
|
udata/tests/api/test_dataservices_api.py,sha256=pB7Kpf0qLhsX4z5hYj3BykYKauEMpESWmrlLlxTOmWw,29221
|
|
520
|
-
udata/tests/api/test_datasets_api.py,sha256=
|
|
520
|
+
udata/tests/api/test_datasets_api.py,sha256=wbGH3g-QYcQOU7-yK4uaNUvCxHNVzncdxlkEbBm1IE4,106516
|
|
521
521
|
udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
|
|
522
522
|
udata/tests/api/test_follow_api.py,sha256=4nFXG5pZ_Hf2PJ4KEdHJX_uggjc9RpB8v0fidkAcw9I,5792
|
|
523
523
|
udata/tests/api/test_me_api.py,sha256=YPd8zmR3zwJKtpSqz8nY1nOOMyXs66INeBwyhg5D0Us,13846
|
|
@@ -625,9 +625,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=nv80xZLfIfUsSOMBcr29L268FDc_Gt
|
|
|
625
625
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=bUp-7Ray8t8ALgJk3Icw1jmiGIc9_pEJQHiGw_2EU2o,50989
|
|
626
626
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=Y_XpUxD074wXc63oJTnoVOyOQ2lmBxl-MrgluZ0Qdw4,27961
|
|
627
627
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=qh8mrz9AFuVQtXYSSP4QWsXLM_Lv3EHVifHT1NflWXY,57529
|
|
628
|
-
udata-12.0.2.
|
|
629
|
-
udata-12.0.2.
|
|
630
|
-
udata-12.0.2.
|
|
631
|
-
udata-12.0.2.
|
|
632
|
-
udata-12.0.2.
|
|
633
|
-
udata-12.0.2.
|
|
628
|
+
udata-12.0.2.dev17.dist-info/licenses/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
629
|
+
udata-12.0.2.dev17.dist-info/METADATA,sha256=W7NRlC87KSDeJWJvqiNH6Pex_qw_bGjjEkkWymXsSgw,5174
|
|
630
|
+
udata-12.0.2.dev17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
631
|
+
udata-12.0.2.dev17.dist-info/entry_points.txt,sha256=v2u12qO11i2lyLNIp136WmLJ-NHT-Kew3Duu8J-AXPM,614
|
|
632
|
+
udata-12.0.2.dev17.dist-info/top_level.txt,sha256=EF6CE6YSHd_og-8LCEA4q25ALUpWVe8D0okOLdMAE3A,6
|
|
633
|
+
udata-12.0.2.dev17.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|