udata 7.0.6.dev28300__py2.py3-none-any.whl → 7.0.6.dev28345__py2.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/core/dataset/factories.py +2 -4
- udata/core/dataset/models.py +2 -5
- udata/core/dataset/search.py +0 -1
- udata/core/spatial/tests/test_api.py +7 -10
- udata/core/topic/factories.py +2 -2
- udata/search/__init__.py +2 -2
- udata/tests/api/test_datasets_api.py +43 -44
- udata/tests/api/test_me_api.py +13 -14
- udata/tests/dataset/test_dataset_actions.py +2 -2
- udata/tests/dataset/test_dataset_commands.py +3 -3
- udata/tests/organization/test_organization_model.py +3 -3
- udata/tests/organization/test_organization_rdf.py +3 -3
- udata/tests/reuse/test_reuse_model.py +2 -2
- udata/tests/search/test_adapter.py +12 -12
- udata/tests/search/test_results.py +4 -4
- udata/tests/site/test_site_api.py +3 -3
- udata/tests/site/test_site_metrics.py +3 -3
- udata/tests/site/test_site_rdf.py +6 -6
- udata/tests/test_transfer.py +18 -17
- {udata-7.0.6.dev28300.dist-info → udata-7.0.6.dev28345.dist-info}/METADATA +2 -1
- {udata-7.0.6.dev28300.dist-info → udata-7.0.6.dev28345.dist-info}/RECORD +25 -25
- {udata-7.0.6.dev28300.dist-info → udata-7.0.6.dev28345.dist-info}/LICENSE +0 -0
- {udata-7.0.6.dev28300.dist-info → udata-7.0.6.dev28345.dist-info}/WHEEL +0 -0
- {udata-7.0.6.dev28300.dist-info → udata-7.0.6.dev28345.dist-info}/entry_points.txt +0 -0
- {udata-7.0.6.dev28300.dist-info → udata-7.0.6.dev28345.dist-info}/top_level.txt +0 -0
udata/core/dataset/factories.py
CHANGED
|
@@ -34,10 +34,8 @@ class DatasetFactory(ModelFactory):
|
|
|
34
34
|
nb_resources = 0
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
class
|
|
38
|
-
|
|
39
|
-
def resources(self):
|
|
40
|
-
return [ResourceFactory()]
|
|
37
|
+
class HiddenDatasetFactory(DatasetFactory):
|
|
38
|
+
private = True
|
|
41
39
|
|
|
42
40
|
|
|
43
41
|
class ChecksumFactory(ModelFactory):
|
udata/core/dataset/models.py
CHANGED
|
@@ -342,12 +342,10 @@ class License(db.Document):
|
|
|
342
342
|
|
|
343
343
|
class DatasetQuerySet(db.OwnedQuerySet):
|
|
344
344
|
def visible(self):
|
|
345
|
-
return self(private__ne=True,
|
|
346
|
-
deleted=None, archived=None)
|
|
345
|
+
return self(private__ne=True, deleted=None, archived=None)
|
|
347
346
|
|
|
348
347
|
def hidden(self):
|
|
349
348
|
return self(db.Q(private=True) |
|
|
350
|
-
db.Q(resources__0__exists=False) |
|
|
351
349
|
db.Q(deleted__ne=None) |
|
|
352
350
|
db.Q(archived__ne=None))
|
|
353
351
|
|
|
@@ -677,8 +675,7 @@ class Dataset(WithMetrics, BadgeMixin, db.Owned, db.Document):
|
|
|
677
675
|
|
|
678
676
|
@property
|
|
679
677
|
def is_hidden(self):
|
|
680
|
-
return
|
|
681
|
-
or self.archived)
|
|
678
|
+
return self.private or self.deleted or self.archived
|
|
682
679
|
|
|
683
680
|
@property
|
|
684
681
|
def full_title(self):
|
udata/core/dataset/search.py
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
from flask import url_for
|
|
2
2
|
|
|
3
|
-
from udata.utils import get_by
|
|
4
|
-
|
|
5
3
|
from udata.utils import faker
|
|
6
4
|
from udata.tests.api import APITestCase
|
|
7
5
|
from udata.tests.features.territories import (
|
|
8
6
|
create_geozones_fixtures, TerritoriesSettings
|
|
9
7
|
)
|
|
10
|
-
from udata.tests.helpers import assert_json_equal
|
|
11
8
|
from udata.core.organization.factories import OrganizationFactory
|
|
12
|
-
from udata.core.dataset.factories import
|
|
9
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
13
10
|
from udata.core.spatial.factories import (
|
|
14
11
|
SpatialCoverageFactory, GeoZoneFactory, GeoLevelFactory
|
|
15
12
|
)
|
|
@@ -173,7 +170,7 @@ class SpatialApiTest(APITestCase):
|
|
|
173
170
|
paca, bdr, arles = create_geozones_fixtures()
|
|
174
171
|
organization = OrganizationFactory()
|
|
175
172
|
for _ in range(3):
|
|
176
|
-
|
|
173
|
+
DatasetFactory(
|
|
177
174
|
organization=organization,
|
|
178
175
|
spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
179
176
|
|
|
@@ -185,7 +182,7 @@ class SpatialApiTest(APITestCase):
|
|
|
185
182
|
paca, bdr, arles = create_geozones_fixtures()
|
|
186
183
|
organization = OrganizationFactory()
|
|
187
184
|
for _ in range(3):
|
|
188
|
-
|
|
185
|
+
DatasetFactory(
|
|
189
186
|
organization=organization,
|
|
190
187
|
spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
191
188
|
|
|
@@ -198,7 +195,7 @@ class SpatialApiTest(APITestCase):
|
|
|
198
195
|
paca, bdr, arles = create_geozones_fixtures()
|
|
199
196
|
organization = OrganizationFactory()
|
|
200
197
|
for _ in range(3):
|
|
201
|
-
|
|
198
|
+
DatasetFactory(
|
|
202
199
|
organization=organization,
|
|
203
200
|
spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
204
201
|
|
|
@@ -212,7 +209,7 @@ class SpatialApiTest(APITestCase):
|
|
|
212
209
|
paca, bdr, arles = create_geozones_fixtures()
|
|
213
210
|
organization = OrganizationFactory()
|
|
214
211
|
for _ in range(3):
|
|
215
|
-
|
|
212
|
+
DatasetFactory(
|
|
216
213
|
organization=organization,
|
|
217
214
|
spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
218
215
|
|
|
@@ -241,7 +238,7 @@ class SpatialTerritoriesApiTest(APITestCase):
|
|
|
241
238
|
paca, bdr, arles = create_geozones_fixtures()
|
|
242
239
|
organization = OrganizationFactory()
|
|
243
240
|
for _ in range(3):
|
|
244
|
-
|
|
241
|
+
DatasetFactory(
|
|
245
242
|
organization=organization,
|
|
246
243
|
spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
247
244
|
|
|
@@ -255,7 +252,7 @@ class SpatialTerritoriesApiTest(APITestCase):
|
|
|
255
252
|
paca, bdr, arles = create_geozones_fixtures()
|
|
256
253
|
organization = OrganizationFactory()
|
|
257
254
|
for _ in range(3):
|
|
258
|
-
|
|
255
|
+
DatasetFactory(
|
|
259
256
|
organization=organization,
|
|
260
257
|
spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
261
258
|
|
udata/core/topic/factories.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import factory
|
|
2
2
|
|
|
3
3
|
from udata import utils
|
|
4
|
-
from udata.core.dataset.factories import
|
|
4
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
5
5
|
from udata.core.reuse.factories import VisibleReuseFactory
|
|
6
6
|
from udata.factories import ModelFactory
|
|
7
7
|
|
|
@@ -19,7 +19,7 @@ class TopicFactory(ModelFactory):
|
|
|
19
19
|
|
|
20
20
|
@factory.lazy_attribute
|
|
21
21
|
def datasets(self):
|
|
22
|
-
return
|
|
22
|
+
return DatasetFactory.create_batch(3)
|
|
23
23
|
|
|
24
24
|
@factory.lazy_attribute
|
|
25
25
|
def reuses(self):
|
udata/search/__init__.py
CHANGED
|
@@ -24,7 +24,7 @@ def reindex(classname, id):
|
|
|
24
24
|
document = adapter_class.serialize(obj)
|
|
25
25
|
if adapter_class.is_indexable(obj):
|
|
26
26
|
log.info('Indexing %s (%s)', model.__name__, obj.id)
|
|
27
|
-
url = f"{current_app.config['SEARCH_SERVICE_API_URL']}{adapter_class.search_url}
|
|
27
|
+
url = f"{current_app.config['SEARCH_SERVICE_API_URL']}{adapter_class.search_url}index"
|
|
28
28
|
try:
|
|
29
29
|
payload = {
|
|
30
30
|
'document': document
|
|
@@ -35,7 +35,7 @@ def reindex(classname, id):
|
|
|
35
35
|
log.exception('Unable to index/unindex %s "%s"', model.__name__, str(obj.id))
|
|
36
36
|
else:
|
|
37
37
|
log.info('Unindexing %s (%s)', model.__name__, obj.id)
|
|
38
|
-
url = f"{current_app.config['SEARCH_SERVICE_API_URL']}{adapter_class.search_url}
|
|
38
|
+
url = f"{current_app.config['SEARCH_SERVICE_API_URL']}{adapter_class.search_url}{str(obj.id)}/unindex"
|
|
39
39
|
try:
|
|
40
40
|
r = requests.delete(url)
|
|
41
41
|
if r.status_code == 404:
|
|
@@ -17,7 +17,7 @@ from udata.core.dataset.api_fields import (dataset_harvest_fields,
|
|
|
17
17
|
from udata.core.dataset.factories import (CommunityResourceFactory,
|
|
18
18
|
DatasetFactory, LicenseFactory,
|
|
19
19
|
ResourceFactory, ResourceSchemaMockData,
|
|
20
|
-
|
|
20
|
+
HiddenDatasetFactory)
|
|
21
21
|
from udata.core.dataset.models import (HarvestDatasetMetadata,
|
|
22
22
|
HarvestResourceMetadata, ResourceMixin)
|
|
23
23
|
from udata.core.organization.factories import OrganizationFactory
|
|
@@ -44,12 +44,13 @@ SAMPLE_GEOM = {
|
|
|
44
44
|
]
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
+
|
|
47
48
|
class DatasetAPITest(APITestCase):
|
|
48
49
|
modules = []
|
|
49
50
|
|
|
50
51
|
def test_dataset_api_list(self):
|
|
51
52
|
'''It should fetch a dataset list from the API'''
|
|
52
|
-
datasets = [
|
|
53
|
+
datasets = [DatasetFactory() for i in range(2)]
|
|
53
54
|
|
|
54
55
|
response = self.get(url_for('api.datasets'))
|
|
55
56
|
self.assert200(response)
|
|
@@ -58,10 +59,10 @@ class DatasetAPITest(APITestCase):
|
|
|
58
59
|
|
|
59
60
|
def test_dataset_api_full_text_search(self):
|
|
60
61
|
'''Should proceed to full text search on datasets'''
|
|
61
|
-
[
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
dataset =
|
|
62
|
+
[DatasetFactory() for i in range(2)]
|
|
63
|
+
DatasetFactory(title="some spécial integer")
|
|
64
|
+
DatasetFactory(title="some spécial float")
|
|
65
|
+
dataset = DatasetFactory(title="some spécial chars")
|
|
65
66
|
|
|
66
67
|
# with accent
|
|
67
68
|
response = self.get(url_for('api.datasets', q='some spécial chars'))
|
|
@@ -82,9 +83,9 @@ class DatasetAPITest(APITestCase):
|
|
|
82
83
|
def test_dataset_api_sorting(self):
|
|
83
84
|
'''Should sort datasets results from the API'''
|
|
84
85
|
self.login()
|
|
85
|
-
[
|
|
86
|
+
[DatasetFactory() for i in range(2)]
|
|
86
87
|
|
|
87
|
-
to_follow =
|
|
88
|
+
to_follow = DatasetFactory(title="dataset to follow")
|
|
88
89
|
|
|
89
90
|
response = self.post(url_for('api.dataset_followers', id=to_follow.id))
|
|
90
91
|
self.assert201(response)
|
|
@@ -100,8 +101,8 @@ class DatasetAPITest(APITestCase):
|
|
|
100
101
|
|
|
101
102
|
def test_dataset_api_sorting_created(self):
|
|
102
103
|
self.login()
|
|
103
|
-
first =
|
|
104
|
-
second =
|
|
104
|
+
first = DatasetFactory(title="first created dataset")
|
|
105
|
+
second = DatasetFactory(title="second created dataset")
|
|
105
106
|
response = self.get(url_for('api.datasets', sort='created'))
|
|
106
107
|
self.assert200(response)
|
|
107
108
|
self.assertEqual(response.json['data'][0]['id'], str(first.id))
|
|
@@ -123,8 +124,8 @@ class DatasetAPITest(APITestCase):
|
|
|
123
124
|
def test_dataset_api_default_sorting(self):
|
|
124
125
|
# Default sort should be -created
|
|
125
126
|
self.login()
|
|
126
|
-
[
|
|
127
|
-
last =
|
|
127
|
+
[DatasetFactory(title="some created dataset") for i in range(10)]
|
|
128
|
+
last = DatasetFactory(title="last created dataset")
|
|
128
129
|
response = self.get(url_for('api.datasets'))
|
|
129
130
|
self.assert200(response)
|
|
130
131
|
self.assertEqual(response.json['data'][0]['id'], str(last.id))
|
|
@@ -134,31 +135,31 @@ class DatasetAPITest(APITestCase):
|
|
|
134
135
|
owner = UserFactory()
|
|
135
136
|
org = OrganizationFactory()
|
|
136
137
|
|
|
137
|
-
[
|
|
138
|
+
[DatasetFactory() for i in range(2)]
|
|
138
139
|
|
|
139
|
-
tag_dataset =
|
|
140
|
-
license_dataset =
|
|
140
|
+
tag_dataset = DatasetFactory(tags=['my-tag', 'other'])
|
|
141
|
+
license_dataset = DatasetFactory(license=LicenseFactory(id='cc-by'))
|
|
141
142
|
format_dataset = DatasetFactory(resources=[ResourceFactory(format='my-format')])
|
|
142
|
-
featured_dataset =
|
|
143
|
-
topic_dataset =
|
|
143
|
+
featured_dataset = DatasetFactory(featured=True)
|
|
144
|
+
topic_dataset = DatasetFactory()
|
|
144
145
|
topic = TopicFactory(datasets=[topic_dataset])
|
|
145
146
|
|
|
146
147
|
paca, _, _ = create_geozones_fixtures()
|
|
147
|
-
geozone_dataset =
|
|
148
|
-
granularity_dataset =
|
|
148
|
+
geozone_dataset = DatasetFactory(spatial=SpatialCoverageFactory(zones=[paca.id]))
|
|
149
|
+
granularity_dataset = DatasetFactory(
|
|
149
150
|
spatial=SpatialCoverageFactory(granularity='country')
|
|
150
151
|
)
|
|
151
152
|
|
|
152
153
|
temporal_coverage = db.DateRange(start='2022-05-03', end='2022-05-04')
|
|
153
154
|
temporal_coverage_dataset = DatasetFactory(temporal_coverage=temporal_coverage)
|
|
154
155
|
|
|
155
|
-
owner_dataset =
|
|
156
|
-
org_dataset =
|
|
156
|
+
owner_dataset = DatasetFactory(owner=owner)
|
|
157
|
+
org_dataset = DatasetFactory(organization=org)
|
|
157
158
|
|
|
158
|
-
schema_dataset =
|
|
159
|
+
schema_dataset = DatasetFactory(resources=[
|
|
159
160
|
ResourceFactory(schema={'name': 'my-schema', 'url': 'https://example.org', 'version': '1.0.0'})
|
|
160
161
|
])
|
|
161
|
-
schema_version2_dataset =
|
|
162
|
+
schema_version2_dataset = DatasetFactory(resources=[
|
|
162
163
|
ResourceFactory(schema={'name': 'other-schema', 'url': 'https://example.org', 'version': '2.0.0'})
|
|
163
164
|
])
|
|
164
165
|
|
|
@@ -270,7 +271,7 @@ class DatasetAPITest(APITestCase):
|
|
|
270
271
|
|
|
271
272
|
def test_dataset_api_get_deleted(self):
|
|
272
273
|
'''It should not fetch a deleted dataset from the API and raise 410'''
|
|
273
|
-
dataset =
|
|
274
|
+
dataset = DatasetFactory(deleted=datetime.utcnow())
|
|
274
275
|
|
|
275
276
|
response = self.get(url_for('api.dataset', dataset=dataset))
|
|
276
277
|
self.assert410(response)
|
|
@@ -278,7 +279,7 @@ class DatasetAPITest(APITestCase):
|
|
|
278
279
|
def test_dataset_api_get_deleted_but_authorized(self):
|
|
279
280
|
'''It should a deleted dataset from the API if user is authorized'''
|
|
280
281
|
self.login()
|
|
281
|
-
dataset =
|
|
282
|
+
dataset = DatasetFactory(owner=self.user,
|
|
282
283
|
deleted=datetime.utcnow())
|
|
283
284
|
|
|
284
285
|
response = self.get(url_for('api.dataset', dataset=dataset))
|
|
@@ -451,7 +452,7 @@ class DatasetAPITest(APITestCase):
|
|
|
451
452
|
def test_dataset_api_update_with_resources(self):
|
|
452
453
|
'''It should update a dataset from the API with resources parameters'''
|
|
453
454
|
user = self.login()
|
|
454
|
-
dataset =
|
|
455
|
+
dataset = DatasetFactory(owner=user)
|
|
455
456
|
initial_length = len(dataset.resources)
|
|
456
457
|
data = dataset.to_dict()
|
|
457
458
|
data['resources'].append(ResourceFactory.as_dict())
|
|
@@ -464,7 +465,7 @@ class DatasetAPITest(APITestCase):
|
|
|
464
465
|
|
|
465
466
|
def test_dataset_api_update_private(self):
|
|
466
467
|
user = self.login()
|
|
467
|
-
dataset =
|
|
468
|
+
dataset = HiddenDatasetFactory(owner=user)
|
|
468
469
|
data = dataset.to_dict()
|
|
469
470
|
data['description'] = 'new description'
|
|
470
471
|
del data['private']
|
|
@@ -487,12 +488,10 @@ class DatasetAPITest(APITestCase):
|
|
|
487
488
|
dataset.reload()
|
|
488
489
|
self.assertEqual(dataset.private, True)
|
|
489
490
|
|
|
490
|
-
|
|
491
|
-
|
|
492
491
|
def test_dataset_api_update_new_resource_with_extras(self):
|
|
493
492
|
'''It should update a dataset with a new resource with extras'''
|
|
494
493
|
user = self.login()
|
|
495
|
-
dataset =
|
|
494
|
+
dataset = DatasetFactory(owner=user)
|
|
496
495
|
data = dataset.to_dict()
|
|
497
496
|
resource_data = ResourceFactory.as_dict()
|
|
498
497
|
resource_data['extras'] = {'extra:id': 'id'}
|
|
@@ -508,7 +507,7 @@ class DatasetAPITest(APITestCase):
|
|
|
508
507
|
def test_dataset_api_update_existing_resource_with_extras(self):
|
|
509
508
|
'''It should update a dataset's existing resource with extras'''
|
|
510
509
|
user = self.login()
|
|
511
|
-
dataset =
|
|
510
|
+
dataset = DatasetFactory(owner=user, nb_resources=1)
|
|
512
511
|
data = dataset.to_dict()
|
|
513
512
|
data['resources'][0]['extras'] = {'extra:id': 'id'}
|
|
514
513
|
response = self.put(url_for('api.dataset', dataset=dataset), data)
|
|
@@ -683,7 +682,7 @@ class DatasetAPITest(APITestCase):
|
|
|
683
682
|
def test_dataset_api_delete(self):
|
|
684
683
|
'''It should delete a dataset from the API'''
|
|
685
684
|
user = self.login()
|
|
686
|
-
dataset =
|
|
685
|
+
dataset = DatasetFactory(owner=user, nb_resources=1)
|
|
687
686
|
response = self.delete(url_for('api.dataset', dataset=dataset))
|
|
688
687
|
|
|
689
688
|
self.assertStatus(response, 204)
|
|
@@ -697,7 +696,7 @@ class DatasetAPITest(APITestCase):
|
|
|
697
696
|
def test_dataset_api_delete_deleted(self):
|
|
698
697
|
'''It should delete a deleted dataset from the API and raise 410'''
|
|
699
698
|
user = self.login()
|
|
700
|
-
dataset =
|
|
699
|
+
dataset = DatasetFactory(owner=user, deleted=datetime.utcnow(), nb_resources=1)
|
|
701
700
|
response = self.delete(url_for('api.dataset', dataset=dataset))
|
|
702
701
|
|
|
703
702
|
self.assert410(response)
|
|
@@ -1472,8 +1471,8 @@ class DatasetArchivedAPITest(APITestCase):
|
|
|
1472
1471
|
|
|
1473
1472
|
def test_dataset_api_search_archived(self):
|
|
1474
1473
|
'''It should search datasets from the API, excluding archived ones'''
|
|
1475
|
-
|
|
1476
|
-
dataset =
|
|
1474
|
+
DatasetFactory(archived=None)
|
|
1475
|
+
dataset = DatasetFactory(archived=datetime.utcnow())
|
|
1477
1476
|
|
|
1478
1477
|
response = self.get(url_for('api.datasets', q=''))
|
|
1479
1478
|
self.assert200(response)
|
|
@@ -1483,7 +1482,7 @@ class DatasetArchivedAPITest(APITestCase):
|
|
|
1483
1482
|
|
|
1484
1483
|
def test_dataset_api_get_archived(self):
|
|
1485
1484
|
'''It should fetch an archived dataset from the API and return 200'''
|
|
1486
|
-
dataset =
|
|
1485
|
+
dataset = DatasetFactory(archived=datetime.utcnow())
|
|
1487
1486
|
response = self.get(url_for('api.dataset', dataset=dataset))
|
|
1488
1487
|
self.assert200(response)
|
|
1489
1488
|
|
|
@@ -1528,7 +1527,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1528
1527
|
|
|
1529
1528
|
def test_community_resource_api_create_dataset_binding(self):
|
|
1530
1529
|
'''It should create a community resource linked to the right dataset'''
|
|
1531
|
-
dataset =
|
|
1530
|
+
dataset = DatasetFactory()
|
|
1532
1531
|
self.login()
|
|
1533
1532
|
response = self.post(
|
|
1534
1533
|
url_for('api.upload_new_community_resource', dataset=dataset),
|
|
@@ -1540,7 +1539,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1540
1539
|
|
|
1541
1540
|
def test_community_resource_api_create(self):
|
|
1542
1541
|
'''It should create a community resource from the API'''
|
|
1543
|
-
dataset =
|
|
1542
|
+
dataset = DatasetFactory()
|
|
1544
1543
|
self.login()
|
|
1545
1544
|
response = self.post(
|
|
1546
1545
|
url_for('api.upload_new_community_resource', dataset=dataset),
|
|
@@ -1560,7 +1559,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1560
1559
|
|
|
1561
1560
|
def test_community_resource_api_create_as_org(self):
|
|
1562
1561
|
'''It should create a community resource as org from the API'''
|
|
1563
|
-
dataset =
|
|
1562
|
+
dataset = DatasetFactory()
|
|
1564
1563
|
user = self.login()
|
|
1565
1564
|
org = OrganizationFactory(members=[
|
|
1566
1565
|
Member(user=user, role='admin')
|
|
@@ -1612,7 +1611,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1612
1611
|
|
|
1613
1612
|
def test_community_resource_api_update_with_file(self):
|
|
1614
1613
|
'''It should update a community resource file from the API'''
|
|
1615
|
-
dataset =
|
|
1614
|
+
dataset = DatasetFactory()
|
|
1616
1615
|
user = self.login()
|
|
1617
1616
|
community_resource = CommunityResourceFactory(dataset=dataset,
|
|
1618
1617
|
owner=user)
|
|
@@ -1637,7 +1636,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1637
1636
|
|
|
1638
1637
|
def test_community_resource_file_update_old_file_deletion(self):
|
|
1639
1638
|
'''It should update a community resource's file and delete the old one'''
|
|
1640
|
-
dataset =
|
|
1639
|
+
dataset = DatasetFactory()
|
|
1641
1640
|
user = self.login()
|
|
1642
1641
|
community_resource = CommunityResourceFactory(dataset=dataset,
|
|
1643
1642
|
owner=user)
|
|
@@ -1664,7 +1663,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1664
1663
|
def test_community_resource_api_create_remote(self):
|
|
1665
1664
|
'''It should create a remote community resource from the API'''
|
|
1666
1665
|
user = self.login()
|
|
1667
|
-
dataset =
|
|
1666
|
+
dataset = DatasetFactory()
|
|
1668
1667
|
attrs = CommunityResourceFactory.as_dict()
|
|
1669
1668
|
attrs['filetype'] = 'remote'
|
|
1670
1669
|
attrs['dataset'] = str(dataset.id)
|
|
@@ -1685,7 +1684,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1685
1684
|
def test_community_resource_api_unallowed_create_filetype_file(self):
|
|
1686
1685
|
'''It should create a remote community resource from the API'''
|
|
1687
1686
|
self.login()
|
|
1688
|
-
dataset =
|
|
1687
|
+
dataset = DatasetFactory()
|
|
1689
1688
|
attrs = CommunityResourceFactory.as_dict()
|
|
1690
1689
|
attrs['filetype'] = 'file' # to be explicit
|
|
1691
1690
|
attrs['dataset'] = str(dataset.id)
|
|
@@ -1734,7 +1733,7 @@ class CommunityResourceAPITest(APITestCase):
|
|
|
1734
1733
|
self.assertEqual(CommunityResource.objects.count(), 0)
|
|
1735
1734
|
|
|
1736
1735
|
def test_community_resource_api_delete(self):
|
|
1737
|
-
dataset =
|
|
1736
|
+
dataset = DatasetFactory()
|
|
1738
1737
|
self.login()
|
|
1739
1738
|
|
|
1740
1739
|
response = self.post(
|
udata/tests/api/test_me_api.py
CHANGED
|
@@ -6,8 +6,7 @@ from udata.models import Discussion, Follow, Member, User
|
|
|
6
6
|
from udata.core.discussions.models import Message as DiscMsg
|
|
7
7
|
from udata.core.dataset.factories import (
|
|
8
8
|
CommunityResourceFactory,
|
|
9
|
-
DatasetFactory
|
|
10
|
-
VisibleDatasetFactory,
|
|
9
|
+
DatasetFactory
|
|
11
10
|
)
|
|
12
11
|
from udata.core.dataset.activities import UserCreatedDataset
|
|
13
12
|
from udata.core.discussions.factories import DiscussionFactory
|
|
@@ -89,9 +88,9 @@ class MeAPITest(APITestCase):
|
|
|
89
88
|
member = Member(user=user, role='editor')
|
|
90
89
|
organization = OrganizationFactory(members=[member])
|
|
91
90
|
community_resources = [
|
|
92
|
-
|
|
91
|
+
DatasetFactory(owner=user) for _ in range(2)]
|
|
93
92
|
org_datasets = [
|
|
94
|
-
|
|
93
|
+
DatasetFactory(organization=organization)
|
|
95
94
|
for _ in range(2)]
|
|
96
95
|
|
|
97
96
|
response = self.get(url_for('api.my_org_datasets'))
|
|
@@ -105,15 +104,15 @@ class MeAPITest(APITestCase):
|
|
|
105
104
|
member = Member(user=user, role='editor')
|
|
106
105
|
organization = OrganizationFactory(members=[member])
|
|
107
106
|
datasets = [
|
|
108
|
-
|
|
107
|
+
DatasetFactory(owner=user, title='foô'),
|
|
109
108
|
]
|
|
110
109
|
org_datasets = [
|
|
111
|
-
|
|
110
|
+
DatasetFactory(organization=organization, title='foô'),
|
|
112
111
|
]
|
|
113
112
|
|
|
114
113
|
# Should not be listed.
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
DatasetFactory(owner=user)
|
|
115
|
+
DatasetFactory(organization=organization)
|
|
117
116
|
|
|
118
117
|
response = self.get(url_for('api.my_org_datasets'),
|
|
119
118
|
qs={'q': 'foô'})
|
|
@@ -195,8 +194,8 @@ class MeAPITest(APITestCase):
|
|
|
195
194
|
organization = OrganizationFactory(members=[member])
|
|
196
195
|
reuse = ReuseFactory(owner=user)
|
|
197
196
|
org_reuse = ReuseFactory(organization=organization)
|
|
198
|
-
dataset =
|
|
199
|
-
org_dataset =
|
|
197
|
+
dataset = DatasetFactory(owner=user)
|
|
198
|
+
org_dataset = DatasetFactory(organization=organization)
|
|
200
199
|
|
|
201
200
|
discussions = [
|
|
202
201
|
Discussion.objects.create(subject=dataset, title='', user=user),
|
|
@@ -206,7 +205,7 @@ class MeAPITest(APITestCase):
|
|
|
206
205
|
]
|
|
207
206
|
|
|
208
207
|
# Should not be listed
|
|
209
|
-
Discussion.objects.create(subject=
|
|
208
|
+
Discussion.objects.create(subject=DatasetFactory(), title='', user=user)
|
|
210
209
|
Discussion.objects.create(subject=ReuseFactory(), title='', user=user)
|
|
211
210
|
|
|
212
211
|
response = self.get(url_for('api.my_org_discussions'))
|
|
@@ -219,8 +218,8 @@ class MeAPITest(APITestCase):
|
|
|
219
218
|
organization = OrganizationFactory(members=[member])
|
|
220
219
|
reuse = ReuseFactory(owner=user)
|
|
221
220
|
org_reuse = ReuseFactory(organization=organization)
|
|
222
|
-
dataset =
|
|
223
|
-
org_dataset =
|
|
221
|
+
dataset = DatasetFactory(owner=user)
|
|
222
|
+
org_dataset = DatasetFactory(organization=organization)
|
|
224
223
|
|
|
225
224
|
discussions = [
|
|
226
225
|
Discussion.objects.create(subject=dataset, title='foô', user=user),
|
|
@@ -232,7 +231,7 @@ class MeAPITest(APITestCase):
|
|
|
232
231
|
Discussion.objects.create(subject=org_dataset, title='', user=user),
|
|
233
232
|
|
|
234
233
|
# Should really not be listed.
|
|
235
|
-
Discussion.objects.create(subject=
|
|
234
|
+
Discussion.objects.create(subject=DatasetFactory(), title='foô', user=user)
|
|
236
235
|
Discussion.objects.create(subject=ReuseFactory(), title='foô', user=user)
|
|
237
236
|
|
|
238
237
|
response = self.get(url_for('api.my_org_discussions'), qs={'q': 'foô'})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
3
|
from udata.core.dataset.actions import archive
|
|
4
|
-
from udata.core.dataset.factories import
|
|
4
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
5
5
|
from udata.core.discussions.models import Discussion
|
|
6
6
|
from udata.core.user.factories import UserFactory
|
|
7
7
|
|
|
@@ -13,7 +13,7 @@ class DatasetActionsTest:
|
|
|
13
13
|
user = UserFactory()
|
|
14
14
|
app.config['ARCHIVE_COMMENT_USER_ID'] = user.id
|
|
15
15
|
|
|
16
|
-
dataset =
|
|
16
|
+
dataset = DatasetFactory()
|
|
17
17
|
|
|
18
18
|
archive(dataset, comment=True)
|
|
19
19
|
|
|
@@ -2,14 +2,14 @@ import pytest
|
|
|
2
2
|
|
|
3
3
|
from tempfile import NamedTemporaryFile
|
|
4
4
|
|
|
5
|
-
from udata.core.dataset.factories import
|
|
5
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
@pytest.mark.usefixtures('clean_db')
|
|
9
9
|
class DatasetCommandTest:
|
|
10
10
|
|
|
11
11
|
def test_dataset_archive_one(self, cli):
|
|
12
|
-
dataset =
|
|
12
|
+
dataset = DatasetFactory()
|
|
13
13
|
|
|
14
14
|
cli('dataset', 'archive-one', str(dataset.id))
|
|
15
15
|
|
|
@@ -17,7 +17,7 @@ class DatasetCommandTest:
|
|
|
17
17
|
assert dataset.archived is not None
|
|
18
18
|
|
|
19
19
|
def test_dataset_archive(self, cli):
|
|
20
|
-
datasets = [
|
|
20
|
+
datasets = [DatasetFactory() for _ in range(2)]
|
|
21
21
|
|
|
22
22
|
with NamedTemporaryFile(mode='w', encoding='utf8') as temp:
|
|
23
23
|
temp.write('\n'.join((str(d.id) for d in datasets)))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from datetime import datetime
|
|
2
2
|
|
|
3
|
-
from udata.core.dataset.factories import DatasetFactory,
|
|
3
|
+
from udata.core.dataset.factories import DatasetFactory, HiddenDatasetFactory
|
|
4
4
|
from udata.core.organization.factories import OrganizationFactory
|
|
5
5
|
from udata.core.followers.signals import on_follow, on_unfollow
|
|
6
6
|
from udata.core.reuse.factories import ReuseFactory, VisibleReuseFactory
|
|
@@ -27,8 +27,8 @@ class OrganizationModelTest(TestCase, DBTestMixin):
|
|
|
27
27
|
reuse = VisibleReuseFactory(organization=org)
|
|
28
28
|
ReuseFactory(organization=org)
|
|
29
29
|
with assert_emit(Dataset.on_create):
|
|
30
|
-
dataset =
|
|
31
|
-
|
|
30
|
+
dataset = DatasetFactory(organization=org)
|
|
31
|
+
HiddenDatasetFactory(organization=org)
|
|
32
32
|
with assert_emit(on_follow):
|
|
33
33
|
follow = Follow.objects.create(following=org, follower=UserFactory(),
|
|
34
34
|
since=datetime.utcnow())
|
|
@@ -9,7 +9,7 @@ from udata.rdf import DCAT, DCT, HYDRA
|
|
|
9
9
|
from udata.tests import TestCase, DBTestMixin
|
|
10
10
|
from udata.core.organization.factories import OrganizationFactory
|
|
11
11
|
from udata.core.organization.rdf import organization_to_rdf, build_org_catalog
|
|
12
|
-
from udata.core.dataset.factories import
|
|
12
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
13
13
|
from udata.core.dataset.models import Dataset
|
|
14
14
|
from udata.utils import faker
|
|
15
15
|
|
|
@@ -57,7 +57,7 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
|
|
|
57
57
|
origin_org = OrganizationFactory()
|
|
58
58
|
uri = url_for('api.organization_rdf', org=origin_org.id, _external=True)
|
|
59
59
|
|
|
60
|
-
datasets =
|
|
60
|
+
datasets = DatasetFactory.create_batch(3, organization=origin_org)
|
|
61
61
|
catalog = build_org_catalog(origin_org, datasets)
|
|
62
62
|
|
|
63
63
|
graph = catalog.graph
|
|
@@ -93,7 +93,7 @@ class OrganizationToRdfTest(DBTestMixin, TestCase):
|
|
|
93
93
|
page=1, page_size=page_size, _external=True)
|
|
94
94
|
uri_last = url_for('api.organization_rdf_format', org=origin_org.id, format='json',
|
|
95
95
|
page=2, page_size=page_size, _external=True)
|
|
96
|
-
|
|
96
|
+
DatasetFactory.create_batch(total, organization=origin_org)
|
|
97
97
|
|
|
98
98
|
# First page
|
|
99
99
|
datasets = Dataset.objects.paginate(1, page_size)
|
|
@@ -5,7 +5,7 @@ from udata.models import Reuse
|
|
|
5
5
|
from udata.core.dataset import tasks as dataset_tasks
|
|
6
6
|
from udata.core.organization.factories import OrganizationFactory
|
|
7
7
|
from udata.core.reuse.factories import ReuseFactory, VisibleReuseFactory
|
|
8
|
-
from udata.core.dataset.factories import
|
|
8
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
9
9
|
from udata.core.user.factories import UserFactory
|
|
10
10
|
from udata.core.discussions.factories import DiscussionFactory
|
|
11
11
|
from udata.i18n import gettext as _
|
|
@@ -65,7 +65,7 @@ class ReuseModelTest(TestCase, DBTestMixin):
|
|
|
65
65
|
reuse.save()
|
|
66
66
|
|
|
67
67
|
def test_reuse_metrics(self):
|
|
68
|
-
dataset =
|
|
68
|
+
dataset = DatasetFactory()
|
|
69
69
|
reuse = VisibleReuseFactory()
|
|
70
70
|
DiscussionFactory(subject=reuse)
|
|
71
71
|
|
|
@@ -14,7 +14,7 @@ from udata.utils import clean_string
|
|
|
14
14
|
from udata.search import reindex, as_task_param
|
|
15
15
|
from udata.search.commands import index_model
|
|
16
16
|
from udata.core.dataset.search import DatasetSearch
|
|
17
|
-
from udata.core.dataset.factories import DatasetFactory, ResourceFactory,
|
|
17
|
+
from udata.core.dataset.factories import DatasetFactory, ResourceFactory, HiddenDatasetFactory
|
|
18
18
|
from udata.tests.api import APITestCase
|
|
19
19
|
|
|
20
20
|
from . import FakeSearch
|
|
@@ -104,35 +104,35 @@ class SearchAdaptorTest:
|
|
|
104
104
|
assertHasArgument(parser, 'page_size', int)
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
@pytest.mark.options(SEARCH_SERVICE_API_URL="smtg")
|
|
107
|
+
@pytest.mark.options(SEARCH_SERVICE_API_URL="smtg/")
|
|
108
108
|
class IndexingLifecycleTest(APITestCase):
|
|
109
109
|
|
|
110
110
|
@patch('requests.delete')
|
|
111
111
|
def test_producer_should_send_a_message_without_payload_if_not_indexable(self, mock_req):
|
|
112
|
-
fake_data =
|
|
112
|
+
fake_data = HiddenDatasetFactory(id='61fd30cb29ea95c7bc0e1211')
|
|
113
113
|
|
|
114
114
|
reindex.run(*as_task_param(fake_data))
|
|
115
115
|
|
|
116
116
|
search_service_url = current_app.config['SEARCH_SERVICE_API_URL']
|
|
117
|
-
url = f'{search_service_url}{DatasetSearch.search_url}
|
|
117
|
+
url = f'{search_service_url}{DatasetSearch.search_url}{str(fake_data.id)}/unindex'
|
|
118
118
|
mock_req.assert_called_with(url)
|
|
119
119
|
|
|
120
120
|
@patch('requests.post')
|
|
121
121
|
def test_producer_should_send_a_message_with_payload_if_indexable(self, mock_req):
|
|
122
122
|
resource = ResourceFactory(schema=Schema(url="http://localhost/my-schema"))
|
|
123
|
-
fake_data =
|
|
123
|
+
fake_data = DatasetFactory(id='61fd30cb29ea95c7bc0e1211', resources=[resource])
|
|
124
124
|
|
|
125
125
|
reindex.run(*as_task_param(fake_data))
|
|
126
126
|
|
|
127
127
|
expected_value = {
|
|
128
128
|
'document': DatasetSearch.serialize(fake_data)
|
|
129
129
|
}
|
|
130
|
-
url = f"{current_app.config['SEARCH_SERVICE_API_URL']}{DatasetSearch.search_url}
|
|
130
|
+
url = f"{current_app.config['SEARCH_SERVICE_API_URL']}{DatasetSearch.search_url}index"
|
|
131
131
|
mock_req.assert_called_with(url, json=expected_value)
|
|
132
132
|
|
|
133
133
|
@patch('requests.Session.post')
|
|
134
134
|
def test_index_model(self, mock_req):
|
|
135
|
-
fake_data =
|
|
135
|
+
fake_data = DatasetFactory(id='61fd30cb29ea95c7bc0e1211')
|
|
136
136
|
|
|
137
137
|
index_model(DatasetSearch, start=None, reindex=False, from_datetime=None)
|
|
138
138
|
|
|
@@ -146,7 +146,7 @@ class IndexingLifecycleTest(APITestCase):
|
|
|
146
146
|
@patch('requests.post')
|
|
147
147
|
@patch('requests.Session.post')
|
|
148
148
|
def test_reindex_model(self, mock_session, mock_req):
|
|
149
|
-
fake_data =
|
|
149
|
+
fake_data = DatasetFactory(id='61fd30cb29ea95c7bc0e1211')
|
|
150
150
|
|
|
151
151
|
index_model(DatasetSearch, start=datetime.datetime(2022, 2, 20, 20, 2), reindex=True)
|
|
152
152
|
|
|
@@ -167,10 +167,10 @@ class IndexingLifecycleTest(APITestCase):
|
|
|
167
167
|
|
|
168
168
|
@patch('requests.Session.post')
|
|
169
169
|
def test_index_model_from_datetime(self, mock_req):
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
fake_data =
|
|
173
|
-
|
|
170
|
+
DatasetFactory(id='61fd30cb29ea95c7bc0e1211',
|
|
171
|
+
last_modified_internal=datetime.datetime(2020, 1, 1))
|
|
172
|
+
fake_data = DatasetFactory(id='61fd30cb29ea95c7bc0e1212',
|
|
173
|
+
last_modified_internal=datetime.datetime(2022, 1, 1))
|
|
174
174
|
|
|
175
175
|
index_model(DatasetSearch, start=None, from_datetime=datetime.datetime(2023, 1, 1))
|
|
176
176
|
mock_req.assert_not_called()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
from udata.tests.api import APITestCase
|
|
2
2
|
from udata.search.result import SearchResult
|
|
3
|
-
from udata.core.dataset.factories import
|
|
3
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
4
4
|
from udata.core.dataset.search import DatasetSearch
|
|
5
5
|
from udata.models import Dataset
|
|
6
6
|
|
|
@@ -9,7 +9,7 @@ class ResultTest(APITestCase):
|
|
|
9
9
|
def test_results_get_objects(self):
|
|
10
10
|
data = []
|
|
11
11
|
for _ in range(3):
|
|
12
|
-
random_dataset =
|
|
12
|
+
random_dataset = DatasetFactory()
|
|
13
13
|
data.append(DatasetSearch.serialize(random_dataset))
|
|
14
14
|
|
|
15
15
|
search_class = DatasetSearch.temp_search()
|
|
@@ -30,10 +30,10 @@ class ResultTest(APITestCase):
|
|
|
30
30
|
def test_results_should_not_fail_on_missing_objects(self):
|
|
31
31
|
data = []
|
|
32
32
|
for _ in range(3):
|
|
33
|
-
random_dataset =
|
|
33
|
+
random_dataset = DatasetFactory()
|
|
34
34
|
data.append(DatasetSearch.serialize(random_dataset))
|
|
35
35
|
|
|
36
|
-
to_delete_random_dataset =
|
|
36
|
+
to_delete_random_dataset = DatasetFactory()
|
|
37
37
|
data.append(DatasetSearch.serialize(to_delete_random_dataset))
|
|
38
38
|
|
|
39
39
|
search_class = DatasetSearch.temp_search()
|
|
@@ -5,7 +5,7 @@ from flask import url_for
|
|
|
5
5
|
from udata.core.site.models import Site
|
|
6
6
|
from udata.core.site.models import current_site
|
|
7
7
|
from udata.core.site.factories import SiteFactory
|
|
8
|
-
from udata.core.dataset.factories import
|
|
8
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
9
9
|
from udata.core.reuse.factories import VisibleReuseFactory
|
|
10
10
|
from udata.core.user.factories import AdminFactory
|
|
11
11
|
|
|
@@ -22,7 +22,7 @@ class SiteAPITest(APITestCase):
|
|
|
22
22
|
def test_get_home_datasets(self):
|
|
23
23
|
site = SiteFactory.create(
|
|
24
24
|
id=self.app.config['SITE_ID'],
|
|
25
|
-
settings__home_datasets=
|
|
25
|
+
settings__home_datasets=DatasetFactory.create_batch(3)
|
|
26
26
|
)
|
|
27
27
|
current_site.reload()
|
|
28
28
|
|
|
@@ -46,7 +46,7 @@ class SiteAPITest(APITestCase):
|
|
|
46
46
|
self.assertEqual(len(response.json), len(site.settings.home_reuses))
|
|
47
47
|
|
|
48
48
|
def test_set_home_datasets(self):
|
|
49
|
-
ids = [d.id for d in
|
|
49
|
+
ids = [d.id for d in DatasetFactory.create_batch(3)]
|
|
50
50
|
|
|
51
51
|
self.login(AdminFactory())
|
|
52
52
|
response = self.put(url_for('api.home_datasets'), ids)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import pytest
|
|
2
2
|
|
|
3
|
-
from udata.core.dataset.factories import DatasetFactory,
|
|
3
|
+
from udata.core.dataset.factories import DatasetFactory, HiddenDatasetFactory, OrganizationFactory
|
|
4
4
|
from udata.core.reuse.factories import VisibleReuseFactory
|
|
5
5
|
from udata.harvest.tests.factories import HarvestSourceFactory
|
|
6
6
|
from udata.core.site.factories import SiteFactory
|
|
@@ -34,11 +34,11 @@ class SiteMetricTest:
|
|
|
34
34
|
id=app.config['SITE_ID']
|
|
35
35
|
)
|
|
36
36
|
DatasetFactory.create_batch(2)
|
|
37
|
-
|
|
37
|
+
HiddenDatasetFactory.create_batch(3)
|
|
38
38
|
|
|
39
39
|
site.count_datasets()
|
|
40
40
|
|
|
41
|
-
assert site.get_metrics()['datasets'] ==
|
|
41
|
+
assert site.get_metrics()['datasets'] == 2
|
|
42
42
|
|
|
43
43
|
def test_resources_metric(self, app):
|
|
44
44
|
site = SiteFactory.create(
|
|
@@ -6,7 +6,7 @@ from rdflib import URIRef, Literal, Graph
|
|
|
6
6
|
from rdflib.namespace import RDF, FOAF
|
|
7
7
|
from rdflib.resource import Resource
|
|
8
8
|
|
|
9
|
-
from udata.core.dataset.factories import
|
|
9
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
10
10
|
from udata.core.dataset.models import Dataset
|
|
11
11
|
from udata.core.organization.factories import OrganizationFactory
|
|
12
12
|
from udata.core.site.factories import SiteFactory
|
|
@@ -26,7 +26,7 @@ class CatalogTest:
|
|
|
26
26
|
site = SiteFactory()
|
|
27
27
|
home_url = url_for('api.site', _external=True)
|
|
28
28
|
uri = url_for('api.site_rdf_catalog', _external=True)
|
|
29
|
-
datasets =
|
|
29
|
+
datasets = DatasetFactory.create_batch(3)
|
|
30
30
|
catalog = build_catalog(site, datasets)
|
|
31
31
|
graph = catalog.graph
|
|
32
32
|
|
|
@@ -59,8 +59,8 @@ class CatalogTest:
|
|
|
59
59
|
site = SiteFactory()
|
|
60
60
|
org = OrganizationFactory()
|
|
61
61
|
user = UserFactory()
|
|
62
|
-
datasets =
|
|
63
|
-
datasets +=
|
|
62
|
+
datasets = DatasetFactory.create_batch(2, owner=user)
|
|
63
|
+
datasets += DatasetFactory.create_batch(2, organization=org)
|
|
64
64
|
catalog = build_catalog(site, datasets)
|
|
65
65
|
graph = catalog.graph
|
|
66
66
|
|
|
@@ -82,7 +82,7 @@ class CatalogTest:
|
|
|
82
82
|
page=1, page_size=page_size, _external=True)
|
|
83
83
|
uri_last = url_for('api.site_rdf_catalog_format', format='json',
|
|
84
84
|
page=2, page_size=page_size, _external=True)
|
|
85
|
-
|
|
85
|
+
DatasetFactory.create_batch(total)
|
|
86
86
|
|
|
87
87
|
# First page
|
|
88
88
|
datasets = Dataset.objects.paginate(1, page_size)
|
|
@@ -208,7 +208,7 @@ class SiteRdfViewsTest:
|
|
|
208
208
|
assert_redirects(response, expected_url)
|
|
209
209
|
|
|
210
210
|
def test_catalog_rdf_paginate(self, client):
|
|
211
|
-
|
|
211
|
+
DatasetFactory.create_batch(4)
|
|
212
212
|
url = url_for('api.site_rdf_catalog_format', format='n3', page_size=3)
|
|
213
213
|
next_url = url_for('api.site_rdf_catalog_format', format='n3',
|
|
214
214
|
page=2, page_size=3, _external=True)
|
udata/tests/test_transfer.py
CHANGED
|
@@ -7,14 +7,15 @@ from udata.features.transfer.actions import request_transfer, accept_transfer
|
|
|
7
7
|
from udata.features.transfer.notifications import (
|
|
8
8
|
transfer_request_notifications
|
|
9
9
|
)
|
|
10
|
-
from udata.models import Member
|
|
11
|
-
from udata.core.user.metrics import update_owner_metrics
|
|
12
|
-
from udata.core.organization.metrics import update_org_metrics
|
|
10
|
+
from udata.models import Member, Dataset
|
|
13
11
|
|
|
14
12
|
from udata.utils import faker
|
|
15
|
-
from udata.core.dataset.factories import
|
|
13
|
+
from udata.core.dataset.factories import DatasetFactory
|
|
16
14
|
from udata.core.organization.factories import OrganizationFactory
|
|
17
|
-
from udata.core.
|
|
15
|
+
from udata.core.organization.metrics import update_org_metrics # noqa needed to register signals
|
|
16
|
+
from udata.core.user.factories import UserFactory
|
|
17
|
+
from udata.core.user.metrics import update_owner_metrics # noqa needed to register signals
|
|
18
|
+
from udata.tests.helpers import assert_emit
|
|
18
19
|
|
|
19
20
|
|
|
20
21
|
pytestmark = pytest.mark.usefixtures('clean_db')
|
|
@@ -32,7 +33,7 @@ class TransferStartTest:
|
|
|
32
33
|
|
|
33
34
|
def test_request_transfer_owner_to_user(self):
|
|
34
35
|
user = UserFactory()
|
|
35
|
-
dataset =
|
|
36
|
+
dataset = DatasetFactory(owner=user)
|
|
36
37
|
recipient = UserFactory()
|
|
37
38
|
comment = faker.sentence()
|
|
38
39
|
|
|
@@ -43,7 +44,7 @@ class TransferStartTest:
|
|
|
43
44
|
user = UserFactory()
|
|
44
45
|
member = Member(user=user, role='admin')
|
|
45
46
|
org = OrganizationFactory(members=[member])
|
|
46
|
-
dataset =
|
|
47
|
+
dataset = DatasetFactory(owner=user, organization=org)
|
|
47
48
|
recipient = UserFactory()
|
|
48
49
|
comment = faker.sentence()
|
|
49
50
|
|
|
@@ -52,7 +53,7 @@ class TransferStartTest:
|
|
|
52
53
|
|
|
53
54
|
def test_request_transfer_user_to_organization(self):
|
|
54
55
|
user = UserFactory()
|
|
55
|
-
dataset =
|
|
56
|
+
dataset = DatasetFactory(owner=user)
|
|
56
57
|
recipient = OrganizationFactory()
|
|
57
58
|
comment = faker.sentence()
|
|
58
59
|
|
|
@@ -61,7 +62,7 @@ class TransferStartTest:
|
|
|
61
62
|
|
|
62
63
|
def test_request_transfer_not_authorized_not_owner(self):
|
|
63
64
|
user = UserFactory()
|
|
64
|
-
dataset =
|
|
65
|
+
dataset = DatasetFactory(owner=UserFactory())
|
|
65
66
|
recipient = UserFactory()
|
|
66
67
|
comment = faker.sentence()
|
|
67
68
|
|
|
@@ -73,7 +74,7 @@ class TransferStartTest:
|
|
|
73
74
|
user = UserFactory()
|
|
74
75
|
member = Member(user=user, role='editor')
|
|
75
76
|
org = OrganizationFactory(members=[member])
|
|
76
|
-
dataset =
|
|
77
|
+
dataset = DatasetFactory(organization=org)
|
|
77
78
|
recipient = UserFactory()
|
|
78
79
|
comment = faker.sentence()
|
|
79
80
|
|
|
@@ -83,7 +84,7 @@ class TransferStartTest:
|
|
|
83
84
|
|
|
84
85
|
def test_request_transfer_to_self(self):
|
|
85
86
|
user = UserFactory()
|
|
86
|
-
dataset =
|
|
87
|
+
dataset = DatasetFactory(owner=user)
|
|
87
88
|
comment = faker.sentence()
|
|
88
89
|
|
|
89
90
|
login_user(user)
|
|
@@ -94,7 +95,7 @@ class TransferStartTest:
|
|
|
94
95
|
user = UserFactory()
|
|
95
96
|
member = Member(user=user, role='admin')
|
|
96
97
|
org = OrganizationFactory(members=[member])
|
|
97
|
-
dataset =
|
|
98
|
+
dataset = DatasetFactory(owner=user, organization=org)
|
|
98
99
|
comment = faker.sentence()
|
|
99
100
|
|
|
100
101
|
login_user(user)
|
|
@@ -107,7 +108,7 @@ class TransferAcceptTest:
|
|
|
107
108
|
def test_recipient_user_can_accept_transfer(self):
|
|
108
109
|
owner = UserFactory()
|
|
109
110
|
recipient = UserFactory()
|
|
110
|
-
subject =
|
|
111
|
+
subject = DatasetFactory(owner=owner)
|
|
111
112
|
transfer = TransferFactory(owner=owner,
|
|
112
113
|
recipient=recipient,
|
|
113
114
|
subject=subject)
|
|
@@ -136,7 +137,7 @@ class TransferAcceptTest:
|
|
|
136
137
|
owner = UserFactory()
|
|
137
138
|
admin = UserFactory()
|
|
138
139
|
org = OrganizationFactory(members=[Member(user=admin, role='admin')])
|
|
139
|
-
subject =
|
|
140
|
+
subject = DatasetFactory(owner=owner)
|
|
140
141
|
transfer = TransferFactory(owner=owner,
|
|
141
142
|
recipient=org,
|
|
142
143
|
subject=subject)
|
|
@@ -172,7 +173,7 @@ class TransferAcceptTest:
|
|
|
172
173
|
owner = UserFactory()
|
|
173
174
|
editor = UserFactory()
|
|
174
175
|
org = OrganizationFactory(members=[Member(user=editor, role='editor')])
|
|
175
|
-
subject =
|
|
176
|
+
subject = DatasetFactory(organization=org)
|
|
176
177
|
transfer = TransferFactory(owner=owner,
|
|
177
178
|
recipient=org,
|
|
178
179
|
subject=subject)
|
|
@@ -185,7 +186,7 @@ class TransferAcceptTest:
|
|
|
185
186
|
class TransferNotificationsTest:
|
|
186
187
|
def test_pending_transfer_request_for_user(self):
|
|
187
188
|
user = UserFactory()
|
|
188
|
-
datasets =
|
|
189
|
+
datasets = DatasetFactory.create_batch(2, owner=user)
|
|
189
190
|
recipient = UserFactory()
|
|
190
191
|
comment = faker.sentence()
|
|
191
192
|
transfers = {}
|
|
@@ -206,7 +207,7 @@ class TransferNotificationsTest:
|
|
|
206
207
|
|
|
207
208
|
def test_pending_transfer_request_for_org(self):
|
|
208
209
|
user = UserFactory()
|
|
209
|
-
datasets =
|
|
210
|
+
datasets = DatasetFactory.create_batch(2, owner=user)
|
|
210
211
|
recipient = UserFactory()
|
|
211
212
|
member = Member(user=recipient, role='editor')
|
|
212
213
|
org = OrganizationFactory(members=[member])
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: udata
|
|
3
|
-
Version: 7.0.6.
|
|
3
|
+
Version: 7.0.6.dev28345
|
|
4
4
|
Summary: Open data portal
|
|
5
5
|
Home-page: https://github.com/opendatateam/udata
|
|
6
6
|
Author: Opendata Team
|
|
@@ -143,6 +143,7 @@ It is collectively taken care of by members of the
|
|
|
143
143
|
- Mock calls to example.com [#3000](https://github.com/opendatateam/udata/pull/3000)
|
|
144
144
|
- Fix duplicate logs in console commands [#2996](https://github.com/opendatateam/udata/pull/2996)
|
|
145
145
|
- Refactor `Activity.kwargs` into `Activity.extras` to facilitate its usage [#2999](https://github.com/opendatateam/udata/pull/2999)
|
|
146
|
+
- :warning: Datasets without resources are now visible and indexable [#2997](https://github.com/opendatateam/udata/pull/2997)
|
|
146
147
|
|
|
147
148
|
## 7.0.5 (2024-03-20)
|
|
148
149
|
|
|
@@ -85,13 +85,13 @@ udata/core/dataset/commands.py,sha256=UO769j5PBjLNRDgy5pBEZVRgwuTBBhbwkhwmx4CEgd
|
|
|
85
85
|
udata/core/dataset/csv.py,sha256=d6JMuvlov_vR7EN10rJa6Q03Il0PfbzMTHQIud5H8qg,3240
|
|
86
86
|
udata/core/dataset/events.py,sha256=DI71VfRc1eDTtgWQ3TJx5gtUw2MO0O_CVLCKLq0OIF0,3207
|
|
87
87
|
udata/core/dataset/exceptions.py,sha256=uI_NvZRZMr_MtYQBYdLD8tk-BIUeDDfMMcrWwqV7mi8,494
|
|
88
|
-
udata/core/dataset/factories.py,sha256=
|
|
88
|
+
udata/core/dataset/factories.py,sha256=_sAW0FeEPC5bIKVCnjxnWmKBNU5jRss1AjVaQaMi8Lo,2737
|
|
89
89
|
udata/core/dataset/forms.py,sha256=auVYxLrPMdtvf2uhgEpJviHiQOSfLpBJdpZ3dXwcjNs,6154
|
|
90
|
-
udata/core/dataset/models.py,sha256=
|
|
90
|
+
udata/core/dataset/models.py,sha256=T9dBPoeex6ohQqPcDKxwAb6GhqGN0rED7Vjw6MLDz2s,39461
|
|
91
91
|
udata/core/dataset/permissions.py,sha256=3F2J7le3_rEYNhh88o3hSRWHAAt01_yHJM6RPmvCrRo,1090
|
|
92
92
|
udata/core/dataset/preview.py,sha256=puPKT3fBD7ezAcT6owh0JK1_rGNDFZOqgT223qGn3LY,2597
|
|
93
93
|
udata/core/dataset/rdf.py,sha256=pwYQLzpWXAZWThOMVx70pusTb7SzLgk7wh_9-ldPFAY,22808
|
|
94
|
-
udata/core/dataset/search.py,sha256=
|
|
94
|
+
udata/core/dataset/search.py,sha256=GAdXBI8RhBXPUxd9Mp-44QB-Evwk5Be5XZZJ64T8bQQ,5282
|
|
95
95
|
udata/core/dataset/signals.py,sha256=TK6dfrOUitZZkGGOh6XmhYqYvIjzZpI70JTLV4k-JRM,161
|
|
96
96
|
udata/core/dataset/tasks.py,sha256=VB1sQ6Fwbax46IRLGyZUDPGgGOWBYrzAlKzV3npDCyM,8412
|
|
97
97
|
udata/core/discussions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -185,7 +185,7 @@ udata/core/spatial/geoids.py,sha256=UqCto4dtQYPXOxyG7sx_0npzM6yvId40ngw3eAlmioQ,
|
|
|
185
185
|
udata/core/spatial/models.py,sha256=WA1jXgw6LYU_5uRrB8WXDIYYFZl4mzbRnJ5_VMkobRA,5105
|
|
186
186
|
udata/core/spatial/translations.py,sha256=7BjZAMPObm1fwM5U_wnrlpcG-1FtMoS6Z5E3h3Y3sog,533
|
|
187
187
|
udata/core/spatial/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
188
|
-
udata/core/spatial/tests/test_api.py,sha256=
|
|
188
|
+
udata/core/spatial/tests/test_api.py,sha256=BySPgLpHvWs3vBIX2_7vJkuqfrFBIsTHtdg6PXOsE_U,10171
|
|
189
189
|
udata/core/spatial/tests/test_fields.py,sha256=MjMsx-2ejsXDvo2iaGewZsOEbSuKwudmA5nKLOdPdTc,9745
|
|
190
190
|
udata/core/spatial/tests/test_geoid.py,sha256=ovVphCxHb5a-iWl7eoLASRAFUY0CGfNEq-MuqHqTPgE,1533
|
|
191
191
|
udata/core/spatial/tests/test_models.py,sha256=SZx3NhngXWgVon5BKtP0pPPEdvxGTvHQlYFE-fewzTU,951
|
|
@@ -203,7 +203,7 @@ udata/core/tags/views.py,sha256=BoBktrbx0tqkIu3yYLj_XJjB7ZHu_tq5vfEBrh0MUwI,384
|
|
|
203
203
|
udata/core/topic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
204
204
|
udata/core/topic/api.py,sha256=G3hN4e9rK5mIYvDLvPpAOo_DN2SySAGykVVvXGx4uMY,5105
|
|
205
205
|
udata/core/topic/apiv2.py,sha256=cf-WUSZ7P6Tss3S8utS-uhreLgGI5XR3nn_1UWiZ_Xs,9846
|
|
206
|
-
udata/core/topic/factories.py,sha256=
|
|
206
|
+
udata/core/topic/factories.py,sha256=Vy9dMVSI6XMeAWhxLH1OFJ0vbmEoOtStPDE6HF_nIc4,697
|
|
207
207
|
udata/core/topic/forms.py,sha256=XqGI4nANdsm2UkIiGAuVqEdZkN5N9sqJ4VaM_PhTaVQ,987
|
|
208
208
|
udata/core/topic/models.py,sha256=PZsYfiuEU86iL1x-qvDevn4Io8lKGahAbqky03j1N2k,2071
|
|
209
209
|
udata/core/topic/parsers.py,sha256=oe_4ehnlgPKre2GG1LA6hcQa6H5V5q1adUsQIzVqb_Q,876
|
|
@@ -334,7 +334,7 @@ udata/models/url_field.py,sha256=a7FEaDpZKbox8OVfLl4dYno1DFmvxUvHmhzUK2ekSfM,136
|
|
|
334
334
|
udata/models/uuid_fields.py,sha256=6OUr6yFtoFK5lUZPTjQPF5qSsiP7D79z3DNOffGPCo4,481
|
|
335
335
|
udata/notifications/__init__.py,sha256=cM-wpmzBESXhdac_SNjRIHcexJK8eknmB4MR8L7K3v0,51
|
|
336
336
|
udata/notifications/mattermost.py,sha256=WAmhG86u2ppQyQ8LPGpWyjPmnhrIrJm-kf_bD-8IjwM,782
|
|
337
|
-
udata/search/__init__.py,sha256=
|
|
337
|
+
udata/search/__init__.py,sha256=Nq4S30860SR3YtCycuA1JEUOEzLGyTAcSAd0lS7Z7u4,3975
|
|
338
338
|
udata/search/adapter.py,sha256=ggtr-_BaO1M40CGKnkAgy2XFNPX57ONusoC4UqJa8bE,2264
|
|
339
339
|
udata/search/commands.py,sha256=UvxfSTmWj1Je72dE25TpmBhn6KPpDm-PlQlsfi0cc10,5577
|
|
340
340
|
udata/search/fields.py,sha256=_bT_AcIOmuJEhnnatScRsPYNWsK_ZWpl2yT8ZnK7-dc,1843
|
|
@@ -564,17 +564,17 @@ udata/tests/test_routing.py,sha256=iulqXvEWo7ykprUTY0BTAt_gTeHi4cs_dLAPokQ3Iv8,1
|
|
|
564
564
|
udata/tests/test_storages.py,sha256=V1yaaa2z_cJuy5tIP9uBPeUZxYXqccpYZ_bMVOUQ0c0,9329
|
|
565
565
|
udata/tests/test_tags.py,sha256=zd-w9rZ_Iaj6Z2S1diCWzNrEtOSuBGakTHhD_pIUE1o,3754
|
|
566
566
|
udata/tests/test_topics.py,sha256=r7Y0BW0Z5obld9ASs2Ck9AhykgBtmMedZmL2Bfz_rDw,1323
|
|
567
|
-
udata/tests/test_transfer.py,sha256=
|
|
567
|
+
udata/tests/test_transfer.py,sha256=Y0adyR3CswK2Vvao7DgpP_19b8K6XwNO2dvbKlmnlD0,8036
|
|
568
568
|
udata/tests/test_uris.py,sha256=FQJvz7RXkr21tZ7rZp2uwgZUHk88PxhYId-jXSAl9GM,8519
|
|
569
569
|
udata/tests/test_utils.py,sha256=5awzhJlbnLga0mRXNR2mBGW_kGuAIoQLEZEMQRKuaIM,7944
|
|
570
570
|
udata/tests/api/__init__.py,sha256=Tz_WigHLDlnJNKOKzEAnJswkKiLtHlIpCE54-wgocgM,957
|
|
571
571
|
udata/tests/api/test_auth_api.py,sha256=3Zhn2A29poZIcCJ_R9_-LkR3xOFUTw1aTquiZVXQ2F0,20306
|
|
572
572
|
udata/tests/api/test_base_api.py,sha256=DRX5nuFIj51GFmMIAxUzoW1yiq1apNgr1vS4U4agzeg,2319
|
|
573
573
|
udata/tests/api/test_contact_points.py,sha256=MJm8B06iaUqIZCqxll3NViFwUCxwqZZ4u9e9s1h8MgU,1056
|
|
574
|
-
udata/tests/api/test_datasets_api.py,sha256=
|
|
574
|
+
udata/tests/api/test_datasets_api.py,sha256=Wdy0HfWKVtMBhMA9OJVs3WXOpmVi_dKlx1-OoekKNw0,81204
|
|
575
575
|
udata/tests/api/test_fields.py,sha256=OW85Z5MES5HeWOpapeem8OvR1cIcrqW-xMWpdZO4LZ8,1033
|
|
576
576
|
udata/tests/api/test_follow_api.py,sha256=0h54P_Dfbo07u6tg0Rbai1WWgWb19ZLN2HGv4oLCWfg,3383
|
|
577
|
-
udata/tests/api/test_me_api.py,sha256
|
|
577
|
+
udata/tests/api/test_me_api.py,sha256=8OthqVYQKZrFoGuJ7zAvoLJx1IclPNzPdD5Tnzmh3rM,14163
|
|
578
578
|
udata/tests/api/test_organizations_api.py,sha256=HxeTqP14wlWGaQt4fpQljuRy98HWnmL1QelcxbJDmV0,32704
|
|
579
579
|
udata/tests/api/test_reuses_api.py,sha256=gQ-o4JXK2S6z2yW13-i8e81pCdr9j2yyM1KinPbkc5g,16971
|
|
580
580
|
udata/tests/api/test_swagger.py,sha256=tLg452rCD5Q0AgFXOVZKMM6jGiWwC5diX5PxbdYni0o,760
|
|
@@ -593,8 +593,8 @@ udata/tests/data/image.jpg,sha256=hdmpaCjOhmAAfNGuTqWKEjv7IC4GXJx-nP_rT274hc8,33
|
|
|
593
593
|
udata/tests/data/image.png,sha256=GAqXz7w_u7CapODIUF45UpVddmqelnGQkcrwKZq3448,266488
|
|
594
594
|
udata/tests/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
595
595
|
udata/tests/dataset/test_csv_adapter.py,sha256=2r5z4FuqG9pWgUyfDUw8afQYK5nIKE8XXOCuDHmEcZA,3207
|
|
596
|
-
udata/tests/dataset/test_dataset_actions.py,sha256=
|
|
597
|
-
udata/tests/dataset/test_dataset_commands.py,sha256=
|
|
596
|
+
udata/tests/dataset/test_dataset_actions.py,sha256=4_0F_TCSCfHpzqDt659c8hG4GpkWjVtmT4bAPgmE4B8,723
|
|
597
|
+
udata/tests/dataset/test_dataset_commands.py,sha256=TAgVdimIcBVmcSNKXKXbhmCGYRo8Keh_InBNiS6UlkM,802
|
|
598
598
|
udata/tests/dataset/test_dataset_events.py,sha256=zt6F4j_vOBfMxDW6vBVQ5PGwr0d4s6LGw0cGkt9BlvI,2835
|
|
599
599
|
udata/tests/dataset/test_dataset_model.py,sha256=m-LtxaxNlXwNxtG_yoBYZ3lu6DdOR82ms4TDlK1a5KY,29776
|
|
600
600
|
udata/tests/dataset/test_dataset_rdf.py,sha256=0lyHiP9eZdIHUkvgQQ6Dw_LMaXX2SHTxiJdLIorizaw,29389
|
|
@@ -627,21 +627,21 @@ udata/tests/frontend/test_markdown.py,sha256=KHh0rFfWHqzes0qvLPPFc7uV_IPSS7ymVsQ
|
|
|
627
627
|
udata/tests/organization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
628
628
|
udata/tests/organization/test_csv_adapter.py,sha256=u2w5EOvkz6BH3ACdzW4MdzjOpbHRn-nq67HTmC_8hYA,1568
|
|
629
629
|
udata/tests/organization/test_notifications.py,sha256=rR1iGtMSmP9htrDJTIVZdvvgO3YNtfoADySGsMzzWdE,1410
|
|
630
|
-
udata/tests/organization/test_organization_model.py,sha256=
|
|
631
|
-
udata/tests/organization/test_organization_rdf.py,sha256=
|
|
630
|
+
udata/tests/organization/test_organization_model.py,sha256=0Rx7913-4NFFrcPKMTxMAnEanHR1tu6tuhg6ysbcDLg,2044
|
|
631
|
+
udata/tests/organization/test_organization_rdf.py,sha256=KtZTSCafe67bodyxeXtguydHOZgYrB131ByctS7uje4,6333
|
|
632
632
|
udata/tests/organization/test_organization_tasks.py,sha256=GZMqwJa8gZj1EiQjm6z-OtFgCTNviG40yZo-Es_-7Yo,2859
|
|
633
633
|
udata/tests/reuse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
634
|
-
udata/tests/reuse/test_reuse_model.py,sha256=
|
|
634
|
+
udata/tests/reuse/test_reuse_model.py,sha256=HWa4_8c3zI-7BMJ3dH_x9Yj7p2sSRCVyT1uyYD0_9Qo,3709
|
|
635
635
|
udata/tests/reuse/test_reuse_task.py,sha256=_aGLPhvFunsNv7_tV8UmLT0obxDegxurchiZ0N_trbs,1396
|
|
636
636
|
udata/tests/search/__init__.py,sha256=tSM40xpdgP9bj3299GEDJVCIaxvNj-hklCS50SuTQL0,1495
|
|
637
|
-
udata/tests/search/test_adapter.py,sha256=
|
|
637
|
+
udata/tests/search/test_adapter.py,sha256=RpQo3tjaV3G2tnLw1vxRWhSZzOqIb-RM0s4U0oN9fEI,7091
|
|
638
638
|
udata/tests/search/test_query.py,sha256=wtgC4rkaxe8vIaWOcANZ1yFFkEKTdNHj2yiTaYI-R-M,1406
|
|
639
|
-
udata/tests/search/test_results.py,sha256=
|
|
639
|
+
udata/tests/search/test_results.py,sha256=yjeqxNKVbjMxxvUsZb7csfU3wsV_YNjBDnfYRw5QN-s,1998
|
|
640
640
|
udata/tests/site/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
641
|
-
udata/tests/site/test_site_api.py,sha256=
|
|
642
|
-
udata/tests/site/test_site_metrics.py,sha256=
|
|
641
|
+
udata/tests/site/test_site_api.py,sha256=XIjRH-iiwKdwmX145bQflxOatfIChi5RLikIMwJSbjQ,2276
|
|
642
|
+
udata/tests/site/test_site_metrics.py,sha256=z0_kLpV5SNUBgvR5y3T_uv1m2xD9aBDdQc6tjI6ARXw,2218
|
|
643
643
|
udata/tests/site/test_site_model.py,sha256=nAx9JjEKdfjdw1Kj5Rs7P5FEePoATtCuOYPiSXEnVD0,1313
|
|
644
|
-
udata/tests/site/test_site_rdf.py,sha256=
|
|
644
|
+
udata/tests/site/test_site_rdf.py,sha256=M360uq2A6hl1WhmyRmRjvzuSqz_YFIUQNPR4vqWnYnE,9687
|
|
645
645
|
udata/tests/user/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
646
646
|
udata/tests/user/test_user_rdf.py,sha256=HrKirMURUXS9N3If_NMb8qnfJ4kE9IZymR1SPcNvlF0,1851
|
|
647
647
|
udata/tests/workers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -664,9 +664,9 @@ udata/translations/pt/LC_MESSAGES/udata.mo,sha256=zCVMB-a4-mLM1jNyYMk58rgVRaVIwQ
|
|
|
664
664
|
udata/translations/pt/LC_MESSAGES/udata.po,sha256=avfWczvlLBKSohyB55-4TLmUGMU_Rze4XmAo4OTk2v0,43513
|
|
665
665
|
udata/translations/sr/LC_MESSAGES/udata.mo,sha256=ScuqdpaV4y1ZIpBAEfxeaKdzkyGZL0mJmKMoG6w0iRQ,28553
|
|
666
666
|
udata/translations/sr/LC_MESSAGES/udata.po,sha256=QpgEXh1eHjztPa7oNLXd_sds1DC95A-STTtZyTE4m-E,50093
|
|
667
|
-
udata-7.0.6.
|
|
668
|
-
udata-7.0.6.
|
|
669
|
-
udata-7.0.6.
|
|
670
|
-
udata-7.0.6.
|
|
671
|
-
udata-7.0.6.
|
|
672
|
-
udata-7.0.6.
|
|
667
|
+
udata-7.0.6.dev28345.dist-info/LICENSE,sha256=V8j_M8nAz8PvAOZQocyRDX7keai8UJ9skgmnwqETmdY,34520
|
|
668
|
+
udata-7.0.6.dev28345.dist-info/METADATA,sha256=pbVHm_KkTEg4A4_cWu7KJfLClR59GQXjTX5zd2MJPzc,120125
|
|
669
|
+
udata-7.0.6.dev28345.dist-info/WHEEL,sha256=-G_t0oGuE7UD0DrSpVZnq1hHMBV9DD2XkS5v7XpmTnk,110
|
|
670
|
+
udata-7.0.6.dev28345.dist-info/entry_points.txt,sha256=3SKiqVy4HUqxf6iWspgMqH8d88Htk6KoLbG1BU-UddQ,451
|
|
671
|
+
udata-7.0.6.dev28345.dist-info/top_level.txt,sha256=39OCg-VWFWOq4gCKnjKNu-s3OwFlZIu_dVH8Gl6ndHw,12
|
|
672
|
+
udata-7.0.6.dev28345.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|