Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F8391004
test_vault.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
3 KB
Subscribers
None
test_vault.py
View Options
# Copyright (C) 2017-2018 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information
from
rest_framework.test
import
APITestCase
from
unittest.mock
import
patch
from
swh.model
import
hashutil
from
swh.web.tests.testcase
import
SWHWebTestCase
TEST_OBJ_ID
=
'd4905454cc154b492bd6afed48694ae3c579345e'
OBJECT_TYPES
=
{
'directory'
:
(
'directory'
,
None
),
'revision_gitfast'
:
(
'revision'
,
'gitfast'
)}
class
VaultApiTestCase
(
SWHWebTestCase
,
APITestCase
):
@patch
(
'swh.web.api.views.vault.service'
)
def
test_api_vault_cook
(
self
,
mock_service
):
stub_cook
=
{
'fetch_url'
:
(
'http://127.0.0.1:5004/api/1/vault/directory/{}/raw/'
.
format
(
TEST_OBJ_ID
)),
'obj_id'
:
'd4905454cc154b492bd6afed48694ae3c579345e'
,
'obj_type'
:
'test_type'
,
'progress_message'
:
None
,
'status'
:
'done'
,
'task_uuid'
:
'de75c902-5ee5-4739-996e-448376a93eff'
,
}
stub_fetch
=
b
'content'
mock_service
.
vault_cook
.
return_value
=
stub_cook
mock_service
.
vault_fetch
.
return_value
=
stub_fetch
for
obj_type
,
(
obj_type_name
,
obj_type_format
)
in
OBJECT_TYPES
.
items
():
url
=
'/api/1/vault/{}/{}/'
.
format
(
obj_type_name
,
TEST_OBJ_ID
)
if
obj_type_format
:
url
+=
'{}/'
.
format
(
obj_type_format
)
rv
=
self
.
client
.
post
(
url
,
{
'email'
:
'test@test.mail'
})
self
.
assertEquals
(
rv
.
status_code
,
200
)
self
.
assertEquals
(
rv
[
'Content-Type'
],
'application/json'
)
self
.
assertEquals
(
rv
.
data
,
stub_cook
)
mock_service
.
vault_cook
.
assert_called_with
(
obj_type
,
hashutil
.
hash_to_bytes
(
TEST_OBJ_ID
),
'test@test.mail'
)
rv
=
self
.
client
.
get
(
url
+
'raw/'
)
self
.
assertEquals
(
rv
.
status_code
,
200
)
self
.
assertEquals
(
rv
[
'Content-Type'
],
'application/gzip'
)
self
.
assertEquals
(
rv
.
content
,
stub_fetch
)
mock_service
.
vault_fetch
.
assert_called_with
(
obj_type
,
hashutil
.
hash_to_bytes
(
TEST_OBJ_ID
))
@patch
(
'swh.web.api.views.vault.service'
)
def
test_api_vault_cook_notfound
(
self
,
mock_service
):
mock_service
.
vault_cook
.
return_value
=
None
mock_service
.
vault_fetch
.
return_value
=
None
for
obj_type
,
(
obj_type_name
,
obj_type_format
)
in
OBJECT_TYPES
.
items
():
url
=
'/api/1/vault/{}/{}/'
.
format
(
obj_type_name
,
TEST_OBJ_ID
)
if
obj_type_format
:
url
+=
'{}/'
.
format
(
obj_type_format
)
rv
=
self
.
client
.
post
(
url
)
self
.
assertEquals
(
rv
.
status_code
,
404
)
self
.
assertEquals
(
rv
[
'Content-Type'
],
'application/json'
)
self
.
assertEquals
(
rv
.
data
[
'exception'
],
'NotFoundExc'
)
mock_service
.
vault_cook
.
assert_called_with
(
obj_type
,
hashutil
.
hash_to_bytes
(
TEST_OBJ_ID
),
None
)
rv
=
self
.
client
.
get
(
url
+
'raw/'
)
self
.
assertEquals
(
rv
.
status_code
,
404
)
self
.
assertEquals
(
rv
[
'Content-Type'
],
'application/json'
)
self
.
assertEquals
(
rv
.
data
[
'exception'
],
'NotFoundExc'
)
mock_service
.
vault_fetch
.
assert_called_with
(
obj_type
,
hashutil
.
hash_to_bytes
(
TEST_OBJ_ID
))
File Metadata
Details
Attached
Mime Type
text/x-python
Expires
Jun 4 2025, 6:37 PM (14 w, 4 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3328870
Attached To
rDWAPPS Web applications
Event Timeline
Log In to Comment