Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
疯人忠
Cvat
提交
c8207238
C
Cvat
项目概览
疯人忠
/
Cvat
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Cvat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c8207238
编写于
12月 01, 2021
作者:
D
Dmitry Kruchinin
提交者:
GitHub
12月 01, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
CVAT_server. Test for "Project updated time". (#3953)
上级
d861dc9c
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
74 addition
and
0 deletion
+74
-0
cvat/apps/engine/tests/test_rest_api.py
cvat/apps/engine/tests/test_rest_api.py
+74
-0
未找到文件。
cvat/apps/engine/tests/test_rest_api.py
浏览文件 @
c8207238
...
...
@@ -1349,6 +1349,7 @@ class ProjectUpdateLabelsAPITestCase(UpdateLabelsAPITestCase):
}]
}
self
.
_check_api_v1_project
(
data
)
class
ProjectListOfTasksAPITestCase
(
APITestCase
):
def
setUp
(
self
):
self
.
client
=
APIClient
()
...
...
@@ -1395,6 +1396,79 @@ class ProjectListOfTasksAPITestCase(APITestCase):
response
=
self
.
_run_api_v1_projects_id_tasks
(
None
,
project
.
id
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_401_UNAUTHORIZED
)
class
ProjectExportAPITestCase
(
APITestCase
):
def
setUp
(
self
):
self
.
client
=
APIClient
()
@
classmethod
def
setUpTestData
(
cls
):
create_db_users
(
cls
)
project_data
=
{
"name"
:
"Project for check tasks in a xml"
,
"owner"
:
cls
.
admin
,
"labels"
:
[{
"name"
:
"car"
}]
}
db_project
=
create_db_project
(
project_data
)
create_dummy_db_tasks
(
cls
,
db_project
)
cls
.
project
=
db_project
def
_run_api_v1_project_id_export
(
self
,
pid
,
user
,
annotation_format
=
""
):
with
ForceLogin
(
user
,
self
.
client
):
response
=
self
.
client
.
get
(
'/api/v1/projects/{}/annotations?format={}'
.
format
(
pid
,
annotation_format
),
format
=
"json"
)
return
response
def
_run_api_v1_tasks_id_delete
(
self
,
tid
,
user
):
with
ForceLogin
(
user
,
self
.
client
):
response
=
self
.
client
.
delete
(
'/api/v1/tasks/{}'
.
format
(
tid
),
format
=
"json"
)
return
response
def
_check_tasks_count
(
self
,
project
,
expected_result
):
tasks_id
=
[
task
.
id
for
task
in
project
.
tasks
.
all
()]
self
.
assertEqual
(
len
(
tasks_id
),
expected_result
)
def
_check_xml
(
self
,
pid
,
user
,
expected_result
):
annotation_format
=
"CVAT for images 1.1"
response
=
self
.
_run_api_v1_project_id_export
(
pid
,
user
,
annotation_format
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_202_ACCEPTED
)
response
=
self
.
_run_api_v1_project_id_export
(
pid
,
user
,
annotation_format
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_201_CREATED
)
annotation_format
=
"CVAT for images 1.1&action=download"
response
=
self
.
_run_api_v1_project_id_export
(
pid
,
user
,
annotation_format
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_200_OK
)
content
=
io
.
BytesIO
(
b
""
.
join
(
response
.
streaming_content
))
content
.
seek
(
0
)
with
tempfile
.
TemporaryDirectory
()
as
tmp_dir
:
zipfile
.
ZipFile
(
content
).
extractall
(
tmp_dir
)
xml
=
osp
.
join
(
tmp_dir
,
'annotations.xml'
)
self
.
assertTrue
(
xml
)
root
=
ET
.
parse
(
xml
).
getroot
()
tasks
=
root
.
findall
(
'meta/project/tasks/task/name'
)
self
.
assertEqual
(
len
(
tasks
),
expected_result
)
def
test_api_v1_projects_remove_task_export
(
self
):
project
=
self
.
project
pid
=
project
.
id
user
=
self
.
admin
self
.
_check_tasks_count
(
project
,
4
)
self
.
_check_xml
(
pid
,
user
,
4
)
tasks_id
=
[
task
.
id
for
task
in
project
.
tasks
.
all
()]
response
=
self
.
_run_api_v1_tasks_id_delete
(
tasks_id
[
0
],
self
.
admin
)
self
.
assertEqual
(
response
.
status_code
,
status
.
HTTP_204_NO_CONTENT
)
self
.
_check_tasks_count
(
project
,
3
)
self
.
_check_xml
(
pid
,
user
,
3
)
class
TaskListAPITestCase
(
APITestCase
):
def
setUp
(
self
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录