mirror of
https://github.com/clearml/clearml-server
synced 2025-02-01 03:16:44 +00:00
66 lines
2.3 KiB
Python
66 lines
2.3 KiB
Python
from boltons.iterutils import first
|
|
|
|
from apiserver.tests.automated import TestService
|
|
|
|
|
|
class TestProjectsRetrieval(TestService):
|
|
def setUp(self, **kwargs):
|
|
super().setUp(version="2.13")
|
|
|
|
def test_active_user(self):
|
|
user = self.api.users.get_current_user().user.id
|
|
project1 = self.temp_project(name="Project retrieval1")
|
|
project2 = self.temp_project(name="Project retrieval2")
|
|
self.temp_task(project=project2)
|
|
|
|
projects = self.api.projects.get_all_ex().projects
|
|
self.assertTrue({project1, project2}.issubset({p.id for p in projects}))
|
|
|
|
projects = self.api.projects.get_all_ex(active_users=[user]).projects
|
|
ids = {p.id for p in projects}
|
|
self.assertFalse(project1 in ids)
|
|
self.assertTrue(project2 in ids)
|
|
|
|
def test_stats(self):
|
|
project = self.temp_project()
|
|
self.temp_task(project=project)
|
|
self.temp_task(project=project)
|
|
archived_task = self.temp_task(project=project)
|
|
self.api.tasks.archive(tasks=[archived_task])
|
|
|
|
p = self._get_project(project)
|
|
self.assertFalse("stats" in p)
|
|
|
|
p = self._get_project(project, include_stats=True)
|
|
self.assertFalse("archived" in p.stats)
|
|
self.assertTrue(p.stats.active.status_count.created, 2)
|
|
|
|
p = self._get_project(project, include_stats=True, stats_for_state=None)
|
|
self.assertTrue(p.stats.active.status_count.created, 2)
|
|
self.assertTrue(p.stats.archived.status_count.created, 1)
|
|
|
|
def _get_project(self, project, **kwargs):
|
|
projects = self.api.projects.get_all_ex(id=[project], **kwargs).projects
|
|
p = first(p for p in projects if p.id == project)
|
|
self.assertIsNotNone(p)
|
|
return p
|
|
|
|
def temp_project(self, **kwargs) -> str:
|
|
self.update_missing(
|
|
kwargs,
|
|
name="Test projects retrieval",
|
|
description="test",
|
|
delete_params=dict(force=True),
|
|
)
|
|
return self.create_temp("projects", **kwargs)
|
|
|
|
def temp_task(self, **kwargs) -> str:
|
|
self.update_missing(
|
|
kwargs,
|
|
type="testing",
|
|
name="test projects retrieval",
|
|
input=dict(view=dict()),
|
|
delete_params=dict(force=True),
|
|
)
|
|
return self.create_temp("tasks", **kwargs)
|