Skip to content

Commit 3f408b8

Browse files
committed
test(cli_resources): add tests for querying programs list with various options to ensure functionality and coverage
1 parent cdc53c3 commit 3f408b8

File tree

1 file changed

+66
-0
lines changed

1 file changed

+66
-0
lines changed

tests/test_cli_resources.py

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -609,6 +609,72 @@ def test_datalines_select(self):
609609
self.skipTest("No datalines available for testing")
610610
self.assertIn("Select dataline number", result.stdout)
611611

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+
612678

613679
if __name__ == "__main__":
614680
unittest.main()

0 commit comments

Comments
 (0)