Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
CaosDB Crawler
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
caosdb
Software
CaosDB Crawler
Commits
9111fb8a
Commit
9111fb8a
authored
1 year ago
by
Florian Spreckelsen
Browse files
Options
Downloads
Patches
Plain Diff
TST: Reduce problematic records to the minimum
parent
c7892b55
No related branches found
Branches containing commit
No related tags found
Tags containing commit
3 merge requests
!160
STY: styling
,
!141
FIX: Resolve referneces to existing entities correctly
,
!140
New f fix merge
Pipeline
#46306
failed
1 year ago
Stage: info
Stage: setup
Stage: cert
Stage: style
Stage: test
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
integrationtests/test_issues.py
+13
-50
13 additions, 50 deletions
integrationtests/test_issues.py
with
13 additions
and
50 deletions
integrationtests/test_issues.py
+
13
−
50
View file @
9111fb8a
...
...
@@ -220,28 +220,8 @@ def test_indiscale_113(clear_database):
# Create and insert minimal datamodel
datamodel_str
=
"""
Dataset:
recommended_properties:
Title:
datatype: TEXT
Event:
Published Dataset:
inherit_from_suggested:
- Dataset
obligatory_properties:
DOI:
datatype: TEXT
Event:
obligatory_properties:
Start datetime:
datatype: DATETIME
longitude:
datatype: DOUBLE
latitude:
datatype: DOUBLE
recommended_properties:
label:
datatype: TEXT
Basis:
Campaign:
Basis:
...
...
@@ -252,16 +232,10 @@ Campaign:
model
=
parse_model_from_string
(
datamodel_str
)
model
.
sync_data_model
(
noquestion
=
True
)
# Register identifiables for Dataset (title), Published Dataset (DOI), Event
# (Start datetime, latitude, longitude, label), Basis (name), and Campaign
# (name).
# Register identifiables, everything is identified by name
ident
=
CaosDBIdentifiableAdapter
()
ident
.
register_identifiable
(
"
Dataset
"
,
db
.
RecordType
().
add_parent
(
name
=
"
Dataset
"
).
add_property
(
name
=
"
title
"
))
ident
.
register_identifiable
(
"
Published Dataset
"
,
db
.
RecordType
(
).
add_parent
(
name
=
"
Published Dataset
"
).
add_property
(
name
=
"
DOI
"
))
ident
.
register_identifiable
(
"
Event
"
,
db
.
RecordType
().
add_parent
(
name
=
"
Event
"
).
add_property
(
name
=
"
longitude
"
).
add_property
(
name
=
"
latitude
"
).
add_property
(
name
=
"
Start datetime
"
).
add_property
(
name
=
"
label
"
))
ident
.
register_identifiable
(
"
Event
"
,
db
.
RecordType
().
add_parent
(
name
=
"
Event
"
).
add_property
(
name
=
"
name
"
))
ident
.
register_identifiable
(
"
Basis
"
,
db
.
RecordType
().
add_parent
(
name
=
"
Basis
"
).
add_property
(
name
=
"
name
"
))
ident
.
register_identifiable
(
"
Campaign
"
,
db
.
RecordType
().
add_parent
(
...
...
@@ -269,34 +243,23 @@ Campaign:
crawler
=
Crawler
(
identifiableAdapter
=
ident
)
# Add records:
ds_par
ent references
ds_child references event
references
#
basis and campaign, campaign references
basis.
# Add records:
ev
ent references
basis and campaign, campaign
references
# basis.
basis
=
db
.
Record
(
name
=
"
Poseidon
"
).
add_parent
(
name
=
"
Basis
"
)
campaign
=
db
.
Record
(
name
=
"
POS386
"
).
add_parent
(
name
=
"
Campaign
"
).
add_property
(
name
=
"
Basis
"
,
value
=
basis
)
event
=
db
.
Record
(
name
=
"
GeoB13952
"
).
add_parent
(
name
=
"
Event
"
).
add_property
(
name
=
"
label
"
,
value
=
"
GeoB13952
"
)
event
.
add_property
(
name
=
"
Start datetime
"
,
value
=
"
2009-07-03T07:52:36
"
)
event
.
add_property
(
name
=
"
longitude
"
,
value
=
7.22225
)
event
.
add_property
(
name
=
"
latitude
"
,
value
=
43.6438
)
campaign
=
db
.
Record
(
name
=
"
POS386
"
).
add_parent
(
name
=
"
Campaign
"
).
add_property
(
name
=
"
Basis
"
,
value
=
basis
)
event
=
db
.
Record
(
name
=
"
GeoB13952
"
).
add_parent
(
name
=
"
Event
"
)
event
.
add_property
(
name
=
"
Basis
"
,
value
=
basis
)
event
.
add_property
(
name
=
"
Campaign
"
,
value
=
campaign
)
ds_child
=
db
.
Record
().
add_parent
(
name
=
"
Published Dataset
"
)
ds_child
.
add_property
(
name
=
"
Title
"
,
value
=
"
Child title
"
)
ds_child
.
add_property
(
name
=
"
DOI
"
,
value
=
"
https://doi.org/10.1594/PANGAEA.882184
"
)
ds_child
.
add_property
(
name
=
"
Event
"
,
value
=
[
event
],
datatype
=
db
.
LIST
(
"
Event
"
))
ds_parent
=
db
.
Record
().
add_parent
(
name
=
"
Published Dataset
"
)
ds_parent
.
add_property
(
name
=
"
Title
"
,
value
=
"
Parent title
"
)
ds_parent
.
add_property
(
name
=
"
DOI
"
,
value
=
"
https://doi.org/10.1594/PANGAEA.882187
"
)
ds_parent
.
add_property
(
name
=
"
Dataset
"
,
datatype
=
db
.
LIST
(
"
Dataset
"
),
value
=
ds_child
)
# The two lowest references need to exist in DB
# basis and campaign already exist in the db
db
.
Container
().
extend
([
basis
,
campaign
]).
insert
()
# redefine to trigger resolving
basis
=
db
.
Record
(
name
=
"
Poseidon
"
).
add_parent
(
name
=
"
Basis
"
)
campaign
=
db
.
Record
(
name
=
"
POS386
"
).
add_parent
(
name
=
"
Campaign
"
).
add_property
(
name
=
"
Basis
"
,
value
=
basis
)
# multiples are necessary
# recs = [ds_parent, ds_child, event, event, ds_child, event, basis, campaign]
campaign
=
db
.
Record
(
name
=
"
POS386
"
).
add_parent
(
name
=
"
Campaign
"
).
add_property
(
name
=
"
Basis
"
,
value
=
basis
)
recs
=
[
event
,
basis
,
campaign
]
ins
,
ups
=
crawler
.
synchronize
(
crawled_data
=
recs
,
unique_names
=
False
)
# There is only two datasets and one event to be inserted
assert
len
(
ins
)
==
3
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment