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
61ce4dbb
Verified
Commit
61ce4dbb
authored
11 months ago
by
Daniel Hornung
Browse files
Options
Downloads
Plain Diff
Merge branch 'dev' into f-sav-converter
parents
5732a66a
e3fec8f6
No related branches found
No related tags found
2 merge requests
!178
FIX: #96 Better error output for crawl.py script.
,
!171
sav/spss converter
Pipeline
#52002
passed with warnings
11 months ago
Stage: info
Stage: setup
Stage: cert
Stage: style
Stage: test
Changes
2
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/caoscrawler/identifiable_adapters.py
+0
-55
0 additions, 55 deletions
src/caoscrawler/identifiable_adapters.py
unittests/test_crawler.py
+0
-13
0 additions, 13 deletions
unittests/test_crawler.py
with
0 additions
and
68 deletions
src/caoscrawler/identifiable_adapters.py
+
0
−
55
View file @
61ce4dbb
...
...
@@ -264,10 +264,6 @@ class IdentifiableAdapter(metaclass=ABCMeta):
"""
pass
@abstractmethod
def
resolve_reference
(
self
,
record
:
db
.
Record
):
pass
@abstractmethod
def
get_file
(
self
,
identifiable
:
db
.
File
):
warnings
.
warn
(
...
...
@@ -411,28 +407,6 @@ class IdentifiableAdapter(metaclass=ABCMeta):
"""
pass
def
retrieve_identified_record_for_record
(
self
,
record
:
db
.
Record
,
referencing_entities
=
None
):
"""
This function combines all functionality of the IdentifierAdapter by
returning the identifiable after having checked for an appropriate
registered identifiable.
In case there was no appropriate registered identifiable or no identifiable could
be found return value is None.
"""
if
record
.
path
is
not
None
:
return
cached_get_entity_by
(
path
=
record
.
path
)
if
record
.
id
is
not
None
:
return
cached_get_entity_by
(
eid
=
record
.
id
)
identifiable
=
self
.
get_identifiable
(
record
,
referencing_entities
=
referencing_entities
)
return
self
.
retrieve_identified_record_for_identifiable
(
identifiable
)
@staticmethod
def
referencing_entity_has_appropriate_type
(
parents
,
register_identifiable
):
"""
returns true if one of the parents is listed by the
'
is_referenced_by
'
property
...
...
@@ -587,26 +561,6 @@ class LocalStorageIdentifiableAdapter(IdentifiableAdapter):
return
None
return
candidates
[
0
]
def
resolve_reference
(
self
,
value
:
db
.
Record
):
if
self
.
get_registered_identifiable
(
value
)
is
None
:
raise
NotImplementedError
(
"
Non-identifiable references cannot
"
"
be used as properties in identifiables.
"
)
# TODO: just resolve the entity
value_identifiable
=
self
.
retrieve_identified_record_for_record
(
value
)
if
value_identifiable
is
None
:
raise
RuntimeError
(
"
The identifiable which is used as property
"
"
here has to be inserted first.
"
)
if
value_identifiable
.
id
is
None
:
raise
RuntimeError
(
"
The entity has not been assigned an ID.
"
)
return
value_identifiable
.
id
class
CaosDBIdentifiableAdapter
(
IdentifiableAdapter
):
"""
...
...
@@ -671,15 +625,6 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter):
if
definition
.
parents
[
0
].
name
.
lower
()
==
rt_name
.
lower
():
return
definition
def
resolve_reference
(
self
,
record
:
db
.
Record
):
"""
Current implementation just sets the id for this record
as a value. It needs to be verified that references all contain an ID.
"""
if
record
.
id
is
None
:
return
record
return
record
.
id
def
retrieve_identified_record_for_identifiable
(
self
,
identifiable
:
Identifiable
):
query_string
=
self
.
create_query_for_identifiable
(
identifiable
)
try
:
...
...
This diff is collapsed.
Click to expand it.
unittests/test_crawler.py
+
0
−
13
View file @
61ce4dbb
...
...
@@ -191,8 +191,6 @@ def crawler_mocked_identifiable_retrieve():
# Simulate remote server content by using the names to identify records
# There is only a single known Record with name A
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_record
=
Mock
(
side_effect
=
partial
(
basic_retrieve_by_name_mock_up
,
known
=
{
"
A
"
:
db
.
Record
(
id
=
1111
,
name
=
"
A
"
)}))
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_identifiable
=
Mock
(
side_effect
=
partial
(
basic_retrieve_by_name_mock_up
,
known
=
{
"
A
"
:
db
.
Record
(
id
=
1111
,
name
=
"
A
"
)}))
...
...
@@ -217,9 +215,6 @@ def crawler_mocked_for_backref_test():
# Simulate remote server content by using the names to identify records
# There is only a single known Record with name A
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_record
=
Mock
(
side_effect
=
partial
(
basic_retrieve_by_name_mock_up
,
known
=
{
"
A
"
:
db
.
Record
(
id
=
1111
,
name
=
"
A
"
).
add_parent
(
"
BR
"
)}))
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_identifiable
=
Mock
(
side_effect
=
partial
(
basic_retrieve_by_name_mock_up
,
known
=
{
"
A
"
:
...
...
@@ -342,10 +337,6 @@ def test_split_into_inserts_and_updates_simple(crawler_mocked_identifiable_retri
st
=
SyncGraph
(
entlist
,
crawler
.
identifiableAdapter
)
# check setup
assert
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_record
(
identlist
[
0
]).
id
==
1111
assert
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_record
(
identlist
[
1
])
is
None
insert
,
update
=
crawler
.
_split_into_inserts_and_updates
(
st
)
assert
len
(
insert
)
==
1
...
...
@@ -515,10 +506,6 @@ def test_split_into_inserts_and_updates_backref(crawler_mocked_for_backref_test)
assert
st
.
get_equivalent
(
st
.
nodes
[
1
])
is
None
assert
st
.
get_equivalent
(
st
.
nodes
[
0
])
is
None
# one can be found remotely, one not
assert
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_record
(
identlist
[
0
]).
id
==
1111
assert
crawler
.
identifiableAdapter
.
retrieve_identified_record_for_record
(
identlist
[
1
])
is
None
# check the split...
insert
,
update
=
crawler
.
_split_into_inserts_and_updates
(
st
)
...
...
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