@@ -26,6 +26,7 @@ def toggle_geodiff(enabled):
2626def mc ():
2727 return create_client (API_USER , USER_PWD )
2828
29+
2930@pytest .fixture (scope = 'function' )
3031def mc2 ():
3132 return create_client (API_USER2 , USER_PWD2 )
@@ -64,8 +65,13 @@ def test_login(mc):
6465
6566
6667def test_create_delete_project (mc ):
67- # create new (empty) project on server
6868 test_project = 'test_create_delete'
69+ project = API_USER + '/' + test_project
70+ project_dir = os .path .join (TMP_DIR , test_project )
71+ download_dir = os .path .join (TMP_DIR , 'download' , test_project )
72+
73+ cleanup (mc , project , [project_dir , download_dir ])
74+ # create new (empty) project on server
6975 mc .create_project (test_project )
7076 projects = mc .projects_list (flag = 'created' )
7177 assert any (p for p in projects if p ['name' ] == test_project and p ['namespace' ] == API_USER )
@@ -698,3 +704,35 @@ def test_download_versions(mc):
698704 # try to download not-existing version
699705 with pytest .raises (ClientError ):
700706 mc .download_project (project , project_dir_v3 , 'v3' )
707+
708+
709+ def test_paginated_project_list (mc ):
710+ """Test the new endpoint for projects list with pagination, ordering etc."""
711+ test_projects = dict ()
712+ for symb in "ABCDEF" :
713+ name = f"test_paginated_{ symb } "
714+ test_projects [name ] = f"{ API_USER } /{ name } "
715+
716+ for name , full_name in test_projects .items ():
717+ cleanup (mc , full_name , [])
718+ mc .create_project (name )
719+
720+ sorted_test_names = [n for n in sorted (test_projects .keys ())]
721+
722+ resp = mc .paginated_projects_list (
723+ flag = 'created' , name = "test_paginated" , page = 1 , per_page = 10 , order_params = "name_asc"
724+ )
725+ projects = resp ["projects" ]
726+ count = resp ["count" ]
727+ assert count == len (test_projects )
728+ assert len (projects ) == len (test_projects )
729+ for i , project in enumerate (projects ):
730+ assert project ["name" ] == sorted_test_names [i ]
731+
732+ resp = mc .paginated_projects_list (
733+ flag = 'created' , name = "test_paginated" , page = 2 , per_page = 2 , order_params = "name_asc"
734+ )
735+ projects = resp ["projects" ]
736+ assert len (projects ) == 2
737+ for i , project in enumerate (projects ):
738+ assert project ["name" ] == sorted_test_names [i + 2 ]
0 commit comments