taskwarrior/test/tw-3527.test.py

39 lines
1.1 KiB
Python
Executable file

#!/usr/bin/env python3
import sys
import os
import unittest
import re
import json
import string
# Ensure python finds the local simpletap module
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
from basetest import Task, TestCase
class TestExport(TestCase):
def setUp(self):
self.t = Task()
# pretty arbitrary, just need several unique tasks
for letter in string.ascii_lowercase:
self.t(f"add test_task +{letter}")
self.t(f"+{letter} done")
def test_export_stability_for_multiple_id_0(self):
exports = [self.t("export")[1] for _ in range(2)]
json_lists = [json.loads(s.strip()) for s in exports]
# to rule out a typo causing two failed exports
self.assertEqual(len(json_lists[0]), len(string.ascii_lowercase))
# for better diff view
self.assertEqual(json_lists[0], json_lists[1])
# the real test
self.assertEqual(exports[0], exports[1])
if __name__ == "__main__":
from simpletap import TAPTestRunner
unittest.main(testRunner=TAPTestRunner())