40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from redmine_ticket_browse import build_lines, issue_line, parse_id_from_line
|
|
from redmine_tickets import build_parser, inject_default_sync_command
|
|
|
|
|
|
class BrowseHelpersTest(unittest.TestCase):
|
|
def test_lines(self):
|
|
issue = {
|
|
"id": 42,
|
|
"status": {"name": "New"},
|
|
"assigned_to": {"name": "Jason"},
|
|
"subject": "Foo\tbar\nbaz",
|
|
"_control_tags": ["spammy"],
|
|
}
|
|
line = issue_line(issue)
|
|
self.assertTrue(line.startswith("42\t"))
|
|
self.assertIn("Jason", line)
|
|
self.assertIn("spammy", line)
|
|
self.assertNotIn("\n", line)
|
|
self.assertEqual(42, parse_id_from_line(line))
|
|
self.assertEqual([line], build_lines([issue]))
|
|
|
|
def test_cli(self):
|
|
args = build_parser().parse_args(
|
|
inject_default_sync_command(
|
|
["browse", "--where", "assigned_to IS NULL", "--pager", "cat", "--once"]
|
|
)
|
|
)
|
|
self.assertEqual("browse", args.command)
|
|
self.assertTrue(args.once)
|
|
self.assertEqual("cat", args.pager)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|