Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9124542
test_api_release.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_api_release.py
View Options
# Copyright (C) 2015 The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU General Public License version 3, or any later version
# See top-level LICENSE file for more information
import
unittest
from
nose.tools
import
istest
from
nose.plugins.attrib
import
attr
from
swh.storage
import
db
,
models
from
swh.protocols
import
serial
from
test_utils
import
now
,
app_client
@attr
(
'slow'
)
class
ReleaseTestCase
(
unittest
.
TestCase
):
def
setUp
(
self
):
self
.
app
,
db_url
=
app_client
()
with
db
.
connect
(
db_url
)
as
db_conn
:
self
.
directory_sha1_hex
=
'directory-sha16ee476a8be155ab049994f717e'
models
.
add_directory
(
db_conn
,
self
.
directory_sha1_hex
)
self
.
revision_sha1_hex
=
'revision-sha1-to-test-existence9994f717e'
models
.
add_revision
(
db_conn
,
self
.
revision_sha1_hex
,
now
(),
self
.
directory_sha1_hex
,
"revision message"
,
"ardumont"
,
"ardumont"
)
self
.
release_sha1_hex
=
'release-sha1-to-test-existence1234567901'
models
.
add_release
(
db_conn
,
self
.
release_sha1_hex
,
self
.
revision_sha1_hex
,
now
(),
"0.0.1"
,
"Super release tagged by tony"
,
"tony"
)
@istest
def
get_release_ok
(
self
):
# when
rv
=
self
.
app
.
get
(
'/vcs/releases/
%s
'
%
self
.
release_sha1_hex
)
# then
assert
rv
.
status_code
==
200
assert
serial
.
loads
(
rv
.
data
)[
'id'
]
==
self
.
release_sha1_hex
@istest
def
get_release_not_found
(
self
):
# when
rv
=
self
.
app
.
get
(
'/vcs/releases/inexistant-sha1'
)
# then
assert
rv
.
status_code
==
404
assert
rv
.
data
==
b
'Not found!'
@istest
def
get_release_not_found_with_bad_format
(
self
):
# when
rv
=
self
.
app
.
get
(
'/vcs/releases/1'
)
# then
assert
rv
.
status_code
==
404
assert
rv
.
data
==
b
'Not found!'
@istest
def
put_release_create_and_update
(
self
):
release_sha1_hex
=
'sha1-release46ee476a8be155ab049994f717e'
rv
=
self
.
app
.
get
(
'/vcs/releases/
%s
'
%
release_sha1_hex
)
# then
assert
rv
.
status_code
==
404
assert
rv
.
data
==
b
'Not found!'
# we create it
body
=
serial
.
dumps
({
'sha1'
:
release_sha1_hex
,
'content'
:
b
'release also has content'
,
'revision'
:
self
.
revision_sha1_hex
,
'date'
:
now
(),
'name'
:
'0.0.1'
,
'comment'
:
'super release tagged by ardumont'
,
'author'
:
"me, myself and me again"
})
rv
=
self
.
app
.
put
(
'/vcs/releases/
%s
'
%
release_sha1_hex
,
data
=
body
,
headers
=
{
'Content-Type'
:
serial
.
MIMETYPE
})
assert
rv
.
status_code
==
204
assert
rv
.
data
==
b
''
# now it exists
rv
=
self
.
app
.
get
(
'/vcs/releases/
%s
'
%
release_sha1_hex
)
# then
assert
rv
.
status_code
==
200
assert
serial
.
loads
(
rv
.
data
)[
'id'
]
==
release_sha1_hex
# we update it
rv
=
self
.
app
.
put
(
'/vcs/releases/
%s
'
%
release_sha1_hex
,
data
=
body
,
headers
=
{
'Content-Type'
:
serial
.
MIMETYPE
})
assert
rv
.
status_code
==
200
assert
rv
.
data
==
b
'Successful update!'
# still the same
rv
=
self
.
app
.
get
(
'/vcs/releases/
%s
'
%
release_sha1_hex
)
# then
assert
rv
.
status_code
==
200
assert
serial
.
loads
(
rv
.
data
)[
'id'
]
==
release_sha1_hex
File Metadata
Details
Attached
Mime Type
text/x-python
Expires
Sat, Jun 21, 7:15 PM (2 w, 3 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3344876
Attached To
rDLDG Git loader
Event Timeline
Log In to Comment