Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Backend
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Analyze
Contributor analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Arkindex
Backend
Commits
89b35800
Commit
89b35800
authored
2 years ago
by
Erwan Rouchet
Browse files
Options
Downloads
Plain Diff
Merge branch 'update-metadata-tests' into 'master'
add UpdateMetaData tests Closes
#1031
See merge request
!1702
parents
3e96df4d
d20a851f
No related branches found
Branches containing commit
No related tags found
Tags containing commit
1 merge request
!1702
add UpdateMetaData tests
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
arkindex/documents/tests/test_metadata.py
+135
-0
135 additions, 0 deletions
arkindex/documents/tests/test_metadata.py
with
135 additions
and
0 deletions
arkindex/documents/tests/test_metadata.py
+
135
−
0
View file @
89b35800
...
...
@@ -407,6 +407,141 @@ class TestMetaData(FixtureAPITestCase):
{
'
__all__
'
:
[
'
Metadata with this type (Text) and name (certainly not allowed) are not allowed for this corpus
'
]}
)
def
test_update_metadata
(
self
):
self
.
client
.
force_login
(
self
.
user
)
self
.
assertEqual
(
self
.
metadata
.
type
,
MetaType
.
Text
)
self
.
assertEqual
(
self
.
metadata
.
value
,
"
123
"
)
self
.
assertEqual
(
self
.
metadata
.
name
,
"
folio
"
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
self
.
metadata
.
id
)}),
data
=
{
'
type
'
:
'
date
'
,
'
name
'
:
'
date
'
,
'
value
'
:
'
2019-12-04
'
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
assertDictEqual
(
response
.
json
(),
{
'
dates
'
:
[{
'
day
'
:
4
,
'
month
'
:
12
,
'
type
'
:
'
exact
'
,
'
year
'
:
2019
}],
'
id
'
:
str
(
self
.
metadata
.
id
),
'
name
'
:
'
date
'
,
'
type
'
:
'
date
'
,
'
value
'
:
'
2019-12-04
'
,
'
entity
'
:
None
,
'
worker_version
'
:
None
,
'
worker_run_id
'
:
None
})
self
.
metadata
.
refresh_from_db
()
self
.
assertEqual
(
self
.
metadata
.
type
,
MetaType
.
Date
)
self
.
assertEqual
(
self
.
metadata
.
name
,
'
date
'
)
self
.
assertEqual
(
self
.
metadata
.
value
,
'
2019-12-04
'
)
def
test_update_metadata_incomplete
(
self
):
"""
UpdateMetaData requires type, name and value to be set
"""
self
.
client
.
force_login
(
self
.
user
)
self
.
assertEqual
(
self
.
metadata
.
type
,
MetaType
.
Text
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
self
.
metadata
.
id
)}),
data
=
{
'
type
'
:
'
date
'
,
'
name
'
:
'
date
'
,
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_400_BAD_REQUEST
)
self
.
assertDictEqual
(
response
.
json
(),
{
"
value
"
:
[
"
This field is required.
"
]})
def
test_update_metadata_disallowed
(
self
):
self
.
client
.
force_login
(
self
.
user
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
self
.
metadata
.
id
)}),
data
=
{
'
type
'
:
'
date
'
,
'
name
'
:
'
death of William I, Count of Hainaut
'
,
'
value
'
:
'
1337
'
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_400_BAD_REQUEST
)
self
.
assertDictEqual
(
response
.
json
(),
{
'
__all__
'
:
[
'
Edition of metadata with this type (Date) and name (death of William I, Count of Hainaut) is not allowed for this corpus
'
]}
)
def
test_update_metadata_from_any_internal
(
self
):
metadata
=
self
.
vol
.
metadatas
.
create
(
type
=
MetaType
.
Location
,
name
=
'
not editable
'
,
value
=
'
111,222
'
)
self
.
client
.
force_login
(
self
.
internal_user
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
metadata
.
id
)}),
data
=
{
'
type
'
:
'
text
'
,
'
name
'
:
'
I got you
'
,
'
value
'
:
'
patched !
'
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
metadata
.
refresh_from_db
()
self
.
assertEqual
(
metadata
.
value
,
'
patched !
'
)
def
test_update_metadata_to_any_internal
(
self
):
self
.
client
.
force_login
(
self
.
internal_user
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
self
.
metadata
.
id
)}),
data
=
{
'
type
'
:
'
text
'
,
'
name
'
:
'
death of William I, Count of Hainaut
'
,
'
value
'
:
'
1337
'
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
self
.
metadata
.
refresh_from_db
()
self
.
assertEqual
(
self
.
metadata
.
name
,
'
death of William I, Count of Hainaut
'
)
self
.
assertEqual
(
self
.
metadata
.
value
,
'
1337
'
)
def
test_update_metadata_wrong_type
(
self
):
self
.
client
.
force_login
(
self
.
user
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
self
.
metadata
.
id
)}),
data
=
{
'
type
'
:
'
joke
'
,
'
name
'
:
'
what is my name ?
'
,
'
value
'
:
'
i have no name, im a machine
'
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_400_BAD_REQUEST
)
self
.
assertDictEqual
(
response
.
json
(),
{
'
type
'
:
[
'
Value is not of type MetaType
'
]})
def
test_update_metadata_duplicated
(
self
):
"""
UpdateMetaData should not allow creating duplicated metadata
"""
metadata
=
self
.
vol
.
metadatas
.
create
(
type
=
MetaType
.
Location
,
name
=
'
location
'
,
value
=
'
111,222
'
)
self
.
client
.
force_login
(
self
.
user
)
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
metadata
.
id
)}),
data
=
{
'
type
'
:
'
text
'
,
'
name
'
:
self
.
metadata
.
name
,
'
value
'
:
self
.
metadata
.
value
}
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_400_BAD_REQUEST
)
self
.
assertDictEqual
(
response
.
json
(),
{
'
detail
'
:
[
'
This metadata already exists.
'
],
'
id
'
:
str
(
self
.
metadata
.
id
),
})
def
test_update_metadata_worker_version
(
self
):
"""
UpdateMetaData should not allow updating the worker version ID
"""
self
.
assertIsNone
(
self
.
metadata
.
worker_version_id
)
self
.
client
.
force_login
(
self
.
superuser
)
with
self
.
assertNumQueries
(
5
):
response
=
self
.
client
.
put
(
reverse
(
'
api:metadata-edit
'
,
kwargs
=
{
'
pk
'
:
str
(
self
.
metadata
.
id
)}),
data
=
{
'
name
'
:
'
hello
'
,
'
type
'
:
'
text
'
,
'
value
'
:
'
buenos dias
'
,
'
worker_version
'
:
str
(
self
.
worker_version
.
id
)}
)
# DRF should ignore the field silently
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
data
=
response
.
json
()
self
.
assertIsNone
(
data
[
'
worker_version
'
])
self
.
metadata
.
refresh_from_db
()
self
.
assertIsNone
(
self
.
metadata
.
worker_version_id
)
self
.
assertEqual
(
self
.
metadata
.
name
,
'
hello
'
)
self
.
assertEqual
(
self
.
metadata
.
type
,
MetaType
.
Text
)
self
.
assertEqual
(
self
.
metadata
.
value
,
'
buenos dias
'
)
def
test_patch_metadata
(
self
):
self
.
client
.
force_login
(
self
.
user
)
self
.
assertEqual
(
self
.
metadata
.
type
,
MetaType
.
Text
)
...
...
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