1212
1313def test_call_through_functions () -> None :
1414 def fake_run_cypher (query : str , database : Optional [str ] = None ) -> DataFrame :
15- assert (
16- query
17- == "CALL gds.listProgress('foo') YIELD taskName, progress, status RETURN taskName, progress, status LIMIT 1"
18- )
15+ assert "CALL gds.listProgress('foo')" in query
1916 assert database == "database"
2017
2118 return DataFrame ([{"progress" : "n/a" , "taskName" : "Test task" , "status" : "RUNNING" }])
@@ -46,10 +43,7 @@ def fake_query() -> DataFrame:
4643
4744def test_uses_beta_endpoint () -> None :
4845 def fake_run_cypher (query : str , database : Optional [str ] = None ) -> DataFrame :
49- assert (
50- query
51- == "CALL gds.beta.listProgress('foo') YIELD taskName, progress, status RETURN taskName, progress, status LIMIT 1"
52- )
46+ assert "CALL gds.beta.listProgress('foo')" in query
5347 assert database == "database"
5448
5549 return DataFrame ([{"progress" : "n/a" , "taskName" : "Test task" , "status" : "RUNNING" }])
@@ -76,6 +70,33 @@ def simple_run_cypher(query: str, database: Optional[str] = None) -> DataFrame:
7670 assert isinstance (progress_provider , QueryProgressProvider )
7771
7872
73+ def test_uses_query_provider_with_task_description () -> None :
74+ server_version = ServerVersion (3 , 0 , 0 )
75+ detailed_progress = DataFrame (
76+ [
77+ {"progress" : "n/a" , "taskName" : "Test task" , "status" : "RUNNING" },
78+ {"progress" : "n/a" , "taskName" : " |-- root 1/1" , "status" : "RUNNING" },
79+ {"progress" : "n/a" , "taskName" : " |-- leaf" , "status" : "RUNNING" },
80+ {"progress" : "n/a" , "taskName" : "finished task" , "status" : "FINISHED" },
81+ {"progress" : "n/a" , "taskName" : "pending task" , "status" : "PENDING" },
82+ ]
83+ )
84+
85+ query_runner = CollectingQueryRunner (server_version , result_mock = {"gds.listProgress" : detailed_progress })
86+
87+ def simple_run_cypher (query : str , database : Optional [str ] = None ) -> DataFrame :
88+ return query_runner .run_cypher (query , db = database )
89+
90+ qpl = QueryProgressLogger (simple_run_cypher , lambda : server_version )
91+ progress_provider = qpl ._select_progress_provider ("test-job" )
92+ assert isinstance (progress_provider , QueryProgressProvider )
93+
94+ progress = progress_provider .root_task_with_progress ("test-job" , "database" )
95+
96+ assert progress .sub_tasks_description == "root 1/1::leaf"
97+ assert progress .task_name == "Test task"
98+
99+
79100def test_uses_static_store () -> None :
80101 def fake_run_cypher (query : str , database : Optional [str ] = None ) -> DataFrame :
81102 return DataFrame ([{"progress" : "n/a" , "taskName" : "Test task" , "status" : "RUNNING" }])
@@ -88,3 +109,4 @@ def fake_run_cypher(query: str, database: Optional[str] = None) -> DataFrame:
88109 task_with_volume = progress_provider .root_task_with_progress ("test-job" )
89110 assert task_with_volume .task_name == "Test task"
90111 assert task_with_volume .progress_percent == "n/a"
112+ assert task_with_volume .sub_tasks_description is None
0 commit comments