@@ -609,6 +609,72 @@ def test_datalines_select(self):
609
609
self .skipTest ("No datalines available for testing" )
610
610
self .assertIn ("Select dataline number" , result .stdout )
611
611
612
+ def test_query_programs_list (self ):
613
+ """Test query program listing"""
614
+ # First select an organization, team, and project
615
+ result = self .runner .invoke (app , ["orgs" , "list" , "--json" ])
616
+ self .assertEqual (result .exit_code , 0 )
617
+ orgs_data = json .loads (result .stdout )
618
+
619
+ if not orgs_data :
620
+ self .skipTest ("No organizations available for testing" )
621
+
622
+ # Set organization
623
+ org_id = orgs_data [0 ]["id" ]
624
+ result = self .runner .invoke (app , ["orgs" , "set" , org_id ])
625
+ self .assertEqual (result .exit_code , 0 )
626
+
627
+ # Get and set team
628
+ result = self .runner .invoke (app , ["teams" , "list" , "--json" ])
629
+ self .assertEqual (result .exit_code , 0 )
630
+ teams_data = json .loads (result .stdout )
631
+
632
+ if not teams_data :
633
+ self .skipTest ("No teams available for testing" )
634
+
635
+ team_id = teams_data [0 ]["id" ]
636
+ result = self .runner .invoke (app , ["teams" , "set" , team_id ])
637
+ self .assertEqual (result .exit_code , 0 )
638
+
639
+ # Get and set project
640
+ result = self .runner .invoke (app , ["projects" , "list" , "--json" ])
641
+ self .assertEqual (result .exit_code , 0 )
642
+ projects_data = json .loads (result .stdout )
643
+
644
+ if not projects_data :
645
+ self .skipTest ("No projects available for testing" )
646
+
647
+ project_id = projects_data [0 ]["id" ]
648
+ result = self .runner .invoke (app , ["projects" , "set" , project_id ])
649
+ self .assertEqual (result .exit_code , 0 )
650
+
651
+ # Test query programs list without project ID (using current project)
652
+ result = self .runner .invoke (app , ["query" , "list" ])
653
+ self .assertEqual (result .exit_code , 0 )
654
+ self .assertIn ("ID" , result .stdout )
655
+ self .assertIn ("Name" , result .stdout )
656
+ self .assertIn ("Published" , result .stdout )
657
+ self .assertIn ("Public" , result .stdout )
658
+ self .assertIn ("Question" , result .stdout )
659
+
660
+ # Test query programs list with explicit project ID
661
+ result = self .runner .invoke (app , ["query" , "list" , "--project-id" , project_id ])
662
+ self .assertEqual (result .exit_code , 0 )
663
+ self .assertIn ("ID" , result .stdout )
664
+ self .assertIn ("Name" , result .stdout )
665
+ self .assertIn ("Published" , result .stdout )
666
+ self .assertIn ("Public" , result .stdout )
667
+ self .assertIn ("Question" , result .stdout )
668
+
669
+ # Test with include_deleted flag
670
+ result = self .runner .invoke (app , ["query" , "list" , "--include-deleted" ])
671
+ self .assertEqual (result .exit_code , 0 )
672
+ self .assertIn ("ID" , result .stdout )
673
+ self .assertIn ("Name" , result .stdout )
674
+ self .assertIn ("Published" , result .stdout )
675
+ self .assertIn ("Public" , result .stdout )
676
+ self .assertIn ("Question" , result .stdout )
677
+
612
678
613
679
if __name__ == "__main__" :
614
680
unittest .main ()
0 commit comments