fix: demo corpus follows the decided project pages - three states, seed with their items, fixtures re-recorded (#156)
CI / verify (push) Successful in 1m53s
Release / release (push) Successful in 36s

Files changed:
- CHANGES.md
- VERSION
- instructions/dev/tracker-testing.md
- kb/gtd/INDEX.md
- kb/gtd/technik/Aufgabenverwaltung mit Tracker-Anbindung.md
- kb/gtd/technik/Chemenu 8.0.0 - Installation und Windows.md
- kb/gtd/technik/Chemenu 8.0.0 freigeben.md
- kb/gtd/technik/Reproduktionslauf des Korpus.md
- kb/gtd/technik/Windows nativ unterstützen.md
- kb/index.md
- kb/log.md
- tools/chemenu/tests/fixtures/sp/MANIFEST.json
- tools/chemenu/tests/fixtures/sp/api/projects.json
- tools/chemenu/tests/fixtures/sp/api/tags.json
- tools/chemenu/tests/fixtures/sp/api/tasks.json
- tools/chemenu/tests/fixtures/sp/seed-backup.json
- tools/chemenu/tests/test_sp_recorded.py
This commit is contained in:
torben committed 2026-09-30 14:39:32 +02:00
1 parent dea98d4bc0
commit 40413f966d
17 files changed
+444 -135

No files matched your search

+1 -1
View File
@@ -2,6 +2,6 @@
"sp_version": "19.1.0",
"recorded": "2026-09-30",
"how": "Packaged Super Productivity (.deb) headless in the chemenu-sp-live image, seeded from seed-backup.json; api/*.json are the raw answers of GET /health, /projects, /tasks and /tags after creating four items and closing one through wikitool's own writer.",
"seed-backup.json": "A backup the app wrote itself, plus three projects ('Chemenu Live-Test', 'Chemenu 8.0.0 freigeben', 'Windows nativ unterstützen' as demo-2) and the tag 'waiting', cloned from entities the app produced.",
"seed-backup.json": "A backup the app wrote itself: the marker project 'Chemenu Live-Test' and the demo projects 'Chemenu 8.0.0 - Installation und Windows', 'Aufgabenverwaltung mit Tracker-Anbindung' and 'Reproduktionslauf des Korpus' (cloned from entities the app produced, as is the tag 'waiting'), with the demo items filed through wikitool's own writer. One edit after the app wrote it: the item for #160 moved from taskIds to backlogTaskIds, because the REST API cannot file a someday item.",
"refresh": "See instructions/dev/tracker-testing.md, section Refreshing the fixtures."
}
+63 -8
View File
@@ -27,7 +27,7 @@
"isHiddenFromMenu": false,
"noteIds": [],
"taskIds": [
"cbN7F3EMo67k9RrfMjS26",
"rFYj3EBI58h5KBrSvsuIi",
"KfvaOD_bl7mIn-Fq0W9NE"
],
"theme": {
@@ -74,9 +74,9 @@
"isHiddenFromMenu": false,
"noteIds": [],
"taskIds": [
"gwedT3TNeJm35AaKMj_Ov",
"dCf43Dr1Ei9Gc1DxysY5q",
"EBm18ZV1F1LrVV7hsauGu"
"yjW9DeaYw6TAcKhbljXU5",
"-O-cEDf4gQh6DLnew0Pob",
"peLK-RUVQ3WwmElnG2yo-"
],
"theme": {
"accent": "#ff4081",
@@ -111,7 +111,9 @@
"separateTasksBy": " | "
}
},
"backlogTaskIds": [],
"backlogTaskIds": [
"TS6eLbePmFdSDY_mVVivK"
],
"created": 1790745002886,
"doneOn": null,
"icon": null,
@@ -121,7 +123,16 @@
"isEnableBacklog": false,
"isHiddenFromMenu": false,
"noteIds": [],
"taskIds": [],
"taskIds": [
"zfnO_x5D6MGGE_5Sld05_",
"VVOKc7Gh30uHgK0pyg21j",
"vldEnWz9xhhLX7O95J1Lm",
"JeQlIUMcaTT6nAJxgsgMw",
"5kW4iZNRlCqc1U3KGs5p5",
"RwoyhNMn-Q8fPusBG5-2p",
"XpcF0OsJH83DsS3_jgylh",
"xyWPSKXLDklUBLha5Mini"
],
"theme": {
"accent": "#ff4081",
"backgroundImageBlur": 0,
@@ -136,7 +147,7 @@
"primary": "rgb(144, 187, 165)",
"warn": "#e11826"
},
"title": "Chemenu 8.0.0 freigeben"
"title": "Chemenu 8.0.0 - Installation und Windows"
},
{
"advancedCfg": {
@@ -180,7 +191,51 @@
"primary": "rgb(144, 187, 165)",
"warn": "#e11826"
},
"title": "Windows nativ unterst\u00fctzen"
"title": "Aufgabenverwaltung mit Tracker-Anbindung"
},
{
"advancedCfg": {
"worklogExportSettings": {
"cols": [
"DATE",
"START",
"END",
"TIME_CLOCK",
"TITLES_INCLUDING_SUB"
],
"groupBy": "DATE",
"roundEndTimeTo": null,
"roundStartTimeTo": null,
"roundWorkTimeTo": null,
"separateTasksBy": " | "
}
},
"backlogTaskIds": [],
"created": 1790745002886,
"doneOn": null,
"icon": null,
"id": "demo-3",
"isArchived": false,
"isDone": false,
"isEnableBacklog": false,
"isHiddenFromMenu": false,
"noteIds": [],
"taskIds": [],
"theme": {
"accent": "#ff4081",
"backgroundImageBlur": 0,
"backgroundImageDark": "",
"backgroundImageLight": null,
"backgroundOverlayOpacity": 20,
"hueAccent": "500",
"huePrimary": "500",
"hueWarn": "500",
"isAutoContrast": true,
"isDisableBackgroundTint": false,
"primary": "rgb(144, 187, 165)",
"warn": "#e11826"
},
"title": "Reproduktionslauf des Korpus"
}
],
"ok": true
+13 -4
View File
@@ -22,9 +22,17 @@
"icon": "wb_sunny",
"id": "TODAY",
"taskIds": [
"cbN7F3EMo67k9RrfMjS26",
"gwedT3TNeJm35AaKMj_Ov",
"EBm18ZV1F1LrVV7hsauGu",
"rFYj3EBI58h5KBrSvsuIi",
"yjW9DeaYw6TAcKhbljXU5",
"peLK-RUVQ3WwmElnG2yo-",
"TS6eLbePmFdSDY_mVVivK",
"VVOKc7Gh30uHgK0pyg21j",
"vldEnWz9xhhLX7O95J1Lm",
"JeQlIUMcaTT6nAJxgsgMw",
"5kW4iZNRlCqc1U3KGs5p5",
"RwoyhNMn-Q8fPusBG5-2p",
"XpcF0OsJH83DsS3_jgylh",
"xyWPSKXLDklUBLha5Mini",
"KfvaOD_bl7mIn-Fq0W9NE"
],
"theme": {
@@ -65,7 +73,8 @@
"icon": null,
"id": "tag-waiting",
"taskIds": [
"dCf43Dr1Ei9Gc1DxysY5q"
"-O-cEDf4gQh6DLnew0Pob",
"zfnO_x5D6MGGE_5Sld05_"
],
"theme": {
"accent": "#ff4081",
+134 -6
View File
@@ -16,9 +16,137 @@
},
{
"attachments": [],
"created": 1790764434509,
"created": 1790770434573,
"dueDay": "2026-09-30",
"id": "EBm18ZV1F1LrVV7hsauGu",
"id": "xyWPSKXLDklUBLha5Mini",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Preflight, Launcher und Tool-Pfade (#151)"
},
{
"attachments": [],
"created": 1790770434633,
"dueDay": "2026-09-30",
"id": "XpcF0OsJH83DsS3_jgylh",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Portabilit\u00e4t unter Windows (#152)"
},
{
"attachments": [],
"created": 1790770434680,
"dueDay": "2026-09-30",
"id": "RwoyhNMn-Q8fPusBG5-2p",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Installation auf den Release-Weg zuschneiden (#153)"
},
{
"attachments": [],
"created": 1790770434725,
"dueDay": "2026-09-30",
"id": "5kW4iZNRlCqc1U3KGs5p5",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Installationsanleitung an die Instruktionen koppeln (#154)"
},
{
"attachments": [],
"created": 1790770434999,
"dueDay": "2026-09-30",
"id": "JeQlIUMcaTT6nAJxgsgMw",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Bugreport-Sammler (#157)"
},
{
"attachments": [],
"created": 1790770435195,
"dueDay": "2026-09-30",
"id": "vldEnWz9xhhLX7O95J1Lm",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Pseudonymisierung f\u00fcr Bugreports (#158)"
},
{
"attachments": [],
"created": 1790770435236,
"dueDay": "2026-09-30",
"id": "VVOKc7Gh30uHgK0pyg21j",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "publish: Doppelz\u00e4hlung im Gate und Remote-Meldung (#159)"
},
{
"attachments": [],
"created": 1790770435290,
"dueDay": "2026-09-30",
"id": "TS6eLbePmFdSDY_mVVivK",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "MCP-Leseserver unter Windows (#160)"
},
{
"attachments": [],
"created": 1790770435339,
"dueDay": "2026-09-15",
"id": "zfnO_x5D6MGGE_5Sld05_",
"isDone": false,
"projectId": "demo-1",
"subTaskIds": [],
"tagIds": [
"tag-waiting"
],
"timeEstimate": 0,
"timeSpent": 0,
"timeSpentOnDay": {},
"title": "Pr\u00fcfpunkte T1\u2013T12 vom Betreiber"
},
{
"attachments": [],
"created": 1790770505375,
"dueDay": "2026-09-30",
"id": "peLK-RUVQ3WwmElnG2yo-",
"isDone": false,
"notes": "kb/gtd/technik/Chemenu Live-Test.md",
"projectId": "chemenu-live-test",
@@ -31,9 +159,9 @@
},
{
"attachments": [],
"created": 1790764434554,
"created": 1790770505576,
"dueDay": "2026-08-01",
"id": "dCf43Dr1Ei9Gc1DxysY5q",
"id": "-O-cEDf4gQh6DLnew0Pob",
"isDone": false,
"projectId": "chemenu-live-test",
"subTaskIds": [],
@@ -47,9 +175,9 @@
},
{
"attachments": [],
"created": 1790764434974,
"created": 1790770505656,
"dueDay": "2026-09-30",
"id": "cbN7F3EMo67k9RrfMjS26",
"id": "rFYj3EBI58h5KBrSvsuIi",
"isDone": false,
"projectId": "INBOX_PROJECT",
"subTaskIds": [],
+1 -1
View File
@@ -1 +1 @@
{"task": {"ids": ["KfvaOD_bl7mIn-Fq0W9NE"], "entities": {"KfvaOD_bl7mIn-Fq0W9NE": {"id": "KfvaOD_bl7mIn-Fq0W9NE", "subTaskIds": [], "timeSpentOnDay": {}, "timeSpent": 0, "timeEstimate": 0, "isDone": false, "title": "seed marker task", "tagIds": [], "created": 1790744930824, "attachments": [], "projectId": "INBOX_PROJECT", "dueDay": "2026-09-30"}}, "currentTaskId": null, "selectedTaskId": null, "taskDetailTargetPanel": null, "lastCurrentTaskId": null, "isDataLoaded": false, "dismissedCalendarAutoImportEventIdsByProvider": {}}, "project": {"ids": ["INBOX_PROJECT", "chemenu-live-test", "demo-1", "demo-2"], "entities": {"INBOX_PROJECT": {"isHiddenFromMenu": false, "isArchived": false, "isDone": false, "doneOn": null, "isEnableBacklog": false, "backlogTaskIds": [], "noteIds": [], "advancedCfg": {"worklogExportSettings": {"cols": ["DATE", "START", "END", "TIME_CLOCK", "TITLES_INCLUDING_SUB"], "roundWorkTimeTo": null, "roundStartTimeTo": null, "roundEndTimeTo": null, "separateTasksBy": " | ", "groupBy": "DATE"}}, "theme": {"isAutoContrast": true, "isDisableBackgroundTint": false, "primary": "rgb(144, 187, 165)", "huePrimary": "500", "accent": "#ff4081", "hueAccent": "500", "warn": "#e11826", "hueWarn": "500", "backgroundImageDark": "", "backgroundImageLight": null, "backgroundOverlayOpacity": 20, "backgroundImageBlur": 0}, "taskIds": ["KfvaOD_bl7mIn-Fq0W9NE"], "icon": "inbox", "id": "INBOX_PROJECT", "title": "Inbox"}, "chemenu-live-test": {"isHiddenFromMenu": false, "isArchived": false, "isDone": false, "doneOn": null, "isEnableBacklog": false, "backlogTaskIds": [], "noteIds": [], "advancedCfg": {"worklogExportSettings": {"cols": ["DATE", "START", "END", "TIME_CLOCK", "TITLES_INCLUDING_SUB"], "roundWorkTimeTo": null, "roundStartTimeTo": null, "roundEndTimeTo": null, "separateTasksBy": " | ", "groupBy": "DATE"}}, "theme": {"isAutoContrast": true, "isDisableBackgroundTint": false, "primary": "rgb(144, 187, 165)", "huePrimary": "500", "accent": "#ff4081", "hueAccent": "500", "warn": "#e11826", "hueWarn": "500", "backgroundImageDark": "", "backgroundImageLight": null, "backgroundOverlayOpacity": 20, "backgroundImageBlur": 0}, "taskIds": [], "icon": null, "id": "chemenu-live-test", "title": "Chemenu Live-Test", "created": 1790745002886}, "demo-1": {"isHiddenFromMenu": false, "isArchived": false, "isDone": false, "doneOn": null, "isEnableBacklog": false, "backlogTaskIds": [], "noteIds": [], "advancedCfg": {"worklogExportSettings": {"cols": ["DATE", "START", "END", "TIME_CLOCK", "TITLES_INCLUDING_SUB"], "roundWorkTimeTo": null, "roundStartTimeTo": null, "roundEndTimeTo": null, "separateTasksBy": " | ", "groupBy": "DATE"}}, "theme": {"isAutoContrast": true, "isDisableBackgroundTint": false, "primary": "rgb(144, 187, 165)", "huePrimary": "500", "accent": "#ff4081", "hueAccent": "500", "warn": "#e11826", "hueWarn": "500", "backgroundImageDark": "", "backgroundImageLight": null, "backgroundOverlayOpacity": 20, "backgroundImageBlur": 0}, "taskIds": [], "icon": null, "id": "demo-1", "title": "Chemenu 8.0.0 freigeben", "created": 1790745002886}, "demo-2": {"isHiddenFromMenu": false, "isArchived": false, "isDone": false, "doneOn": null, "isEnableBacklog": false, "backlogTaskIds": [], "noteIds": [], "advancedCfg": {"worklogExportSettings": {"cols": ["DATE", "START", "END", "TIME_CLOCK", "TITLES_INCLUDING_SUB"], "roundWorkTimeTo": null, "roundStartTimeTo": null, "roundEndTimeTo": null, "separateTasksBy": " | ", "groupBy": "DATE"}}, "theme": {"isAutoContrast": true, "isDisableBackgroundTint": false, "primary": "rgb(144, 187, 165)", "huePrimary": "500", "accent": "#ff4081", "hueAccent": "500", "warn": "#e11826", "hueWarn": "500", "backgroundImageDark": "", "backgroundImageLight": null, "backgroundOverlayOpacity": 20, "backgroundImageBlur": 0}, "taskIds": [], "icon": null, "id": "demo-2", "title": "Windows nativ unterst\u00fctzen", "created": 1790745002886}}}, "tag": {"ids": ["TODAY", "tag-waiting"], "entities": {"TODAY": {"color": null, "created": 1790744929943, "advancedCfg": {"worklogExportSettings": {"cols": ["DATE", "START", "END", "TIME_CLOCK", "TITLES_INCLUDING_SUB"], "roundWorkTimeTo": null, "roundStartTimeTo": null, "roundEndTimeTo": null, "separateTasksBy": " | ", "groupBy": "DATE"}}, "theme": {"isAutoContrast": true, "isDisableBackgroundTint": true, "primary": "#6495ED", "huePrimary": "400", "accent": "#ff4081", "hueAccent": "500", "warn": "#e11826", "hueWarn": "500", "backgroundImageDark": "", "backgroundImageLight": null, "backgroundOverlayOpacity": 20, "backgroundImageBlur": 0}, "taskIds": ["KfvaOD_bl7mIn-Fq0W9NE"], "icon": "wb_sunny", "id": "TODAY", "title": "Today"}, "tag-waiting": {"color": null, "created": 1790745002886, "advancedCfg": {"worklogExportSettings": {"cols": ["DATE", "START", "END", "TIME_CLOCK", "TITLES_INCLUDING_SUB"], "roundWorkTimeTo": null, "roundStartTimeTo": null, "roundEndTimeTo": null, "separateTasksBy": " | ", "groupBy": "DATE"}}, "theme": {"isAutoContrast": true, "isDisableBackgroundTint": trLine truncated
{"task":{"ids":["KfvaOD_bl7mIn-Fq0W9NE","xyWPSKXLDklUBLha5Mini","XpcF0OsJH83DsS3_jgylh","RwoyhNMn-Q8fPusBG5-2p","5kW4iZNRlCqc1U3KGs5p5","JeQlIUMcaTT6nAJxgsgMw","vldEnWz9xhhLX7O95J1Lm","VVOKc7Gh30uHgK0pyg21j","TS6eLbePmFdSDY_mVVivK","zfnO_x5D6MGGE_5Sld05_"],"entities":{"KfvaOD_bl7mIn-Fq0W9NE":{"id":"KfvaOD_bl7mIn-Fq0W9NE","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"seed marker task","tagIds":[],"created":1790744930824,"attachments":[],"projectId":"INBOX_PROJECT","dueDay":"2026-09-30"},"xyWPSKXLDklUBLha5Mini":{"id":"xyWPSKXLDklUBLha5Mini","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Preflight, Launcher und Tool-Pfade (#151)","tagIds":[],"created":1790770434573,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"XpcF0OsJH83DsS3_jgylh":{"id":"XpcF0OsJH83DsS3_jgylh","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Portabilität unter Windows (#152)","tagIds":[],"created":1790770434633,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"RwoyhNMn-Q8fPusBG5-2p":{"id":"RwoyhNMn-Q8fPusBG5-2p","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Installation auf den Release-Weg zuschneiden (#153)","tagIds":[],"created":1790770434680,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"5kW4iZNRlCqc1U3KGs5p5":{"id":"5kW4iZNRlCqc1U3KGs5p5","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Installationsanleitung an die Instruktionen koppeln (#154)","tagIds":[],"created":1790770434725,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"JeQlIUMcaTT6nAJxgsgMw":{"id":"JeQlIUMcaTT6nAJxgsgMw","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Bugreport-Sammler (#157)","tagIds":[],"created":1790770434999,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"vldEnWz9xhhLX7O95J1Lm":{"id":"vldEnWz9xhhLX7O95J1Lm","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Pseudonymisierung für Bugreports (#158)","tagIds":[],"created":1790770435195,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"VVOKc7Gh30uHgK0pyg21j":{"id":"VVOKc7Gh30uHgK0pyg21j","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"publish: Doppelzählung im Gate und Remote-Meldung (#159)","tagIds":[],"created":1790770435236,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"TS6eLbePmFdSDY_mVVivK":{"id":"TS6eLbePmFdSDY_mVVivK","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"MCP-Leseserver unter Windows (#160)","tagIds":[],"created":1790770435290,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-30"},"zfnO_x5D6MGGE_5Sld05_":{"id":"zfnO_x5D6MGGE_5Sld05_","subTaskIds":[],"timeSpentOnDay":{},"timeSpent":0,"timeEstimate":0,"isDone":false,"title":"Prüfpunkte T1–T12 vom Betreiber","tagIds":["tag-waiting"],"created":1790770435339,"attachments":[],"projectId":"demo-1","dueDay":"2026-09-15"}},"currentTaskId":null,"selectedTaskId":null,"taskDetailTargetPanel":null,"lastCurrentTaskId":null,"isDataLoaded":true,"dismissedCalendarAutoImportEventIdsByProvider":{}},"project":{"ids":["INBOX_PROJECT","chemenu-live-test","demo-1","demo-2","demo-3"],"entities":{"INBOX_PROJECT":{"isHiddenFromMenu":false,"isArchived":false,"isDone":false,"doneOn":null,"isEnableBacklog":false,"backlogTaskIds":[],"noteIds":[],"advancedCfg":{"worklogExportSettings":{"cols":["DATE","START","END","TIME_CLOCK","TITLES_INCLUDING_SUB"],"roundWorkTimeTo":null,"roundStartTimeTo":null,"roundEndTimeTo":null,"separateTasksBy":" | ","groupBy":"DATE"}},"theme":{"isAutoContrast":true,"isDisableBackgroundTint":false,"primary":"rgb(144, 187, 165)","huePrimary":"500","accent":"#ff4081","hueAccent":"500","warn":"#e11826","hueWarn":"500","backgroundImageDark":"","backgroundImageLight":null,"backgroundOverlayOpacity":20,"backgroundImageBlur":0},"taskIds":["KfvaOD_bl7mIn-Fq0W9NE"],"icon":"inbox","id":"INBOX_PROJECT","title":"Inbox"},"chemenu-live-test":{"isHiddenFromMenu":false,"isArchived":false,"isDone":false,"doneOn":null,"isEnableBacklog":false,"backlogTaskIds":[],"noteIds":[],"advancedCfg":{"worklogExportSettings":{"cols":["DATE","START","END","TIME_CLOCK","TITLES_INCLUDING_SUB"],"roundWorkTimeTo":null,"roundStartTimeTo":null,"roundEndTimeTo":null,"separateTasksBy":" | ","groupBy":"DATE"}},"theme":{"isAutoContrast":true,"isDisableBackgroundTint":false,"primary":"rgb(144, 187, 165)","huePrimary":"500","accent":"#ff4081","hueAccent":"500","warn":"#e11826","hueWarn":"500","backgroundImageDark":"","backgroundImageLight":null,"backgroundOverlayOpacity":20,"backgroundImageBlur":0},"taskIds":[],"icon":null,"id":"chemenu-live-test","title":"Chemenu Live-Test","created":1790745002886},"demo-1":{"isHiddenFromMenu":false,"isArchived":false,"isDone":false,"doneOn":null,"isEnableBacklog":false,"Line truncated
+20 -7
View File
@@ -22,6 +22,22 @@ from chemenu.tasks import superproductivity as sp
FIXTURES = Path(__file__).parent / "fixtures" / "sp"
MARKER = "Chemenu Live-Test"
DEMO_ACTIVE = "Chemenu 8.0.0 - Installation und Windows"
PROJECTS = {
MARKER, DEMO_ACTIVE, "Aufgabenverwaltung mit Tracker-Anbindung", "Reproduktionslauf des Korpus",
}
DEMO_WAITING = [("Prüfpunkte T1–T12 vom Betreiber", date(2026, 9, 15))]
DEMO_SOMEDAY = ["MCP-Leseserver unter Windows (#160)"]
def _assert_demo_projects(reader) -> None:
"""The seed's demo data, which the `kb/gtd/` pages of the same names join against."""
active = reader.open_items(DEMO_ACTIVE)
assert active.count == 8
assert [(w.title, w.follow_up_at) for w in active.waiting] == DEMO_WAITING
assert reader.open_items("Aufgabenverwaltung mit Tracker-Anbindung").count == 0
assert reader.open_items("Reproduktionslauf des Korpus").count == 0
assert [s.title for s in reader.someday_items()] == DEMO_SOMEDAY
def _recorded(name: str) -> bytes:
@@ -74,8 +90,7 @@ def test_the_api_reader_reads_the_apps_own_answers():
)
reader = sp.SuperProductivityApiReader(cfg)
names = {p.name for p in reader.projects()}
assert names == {MARKER, "Chemenu 8.0.0 freigeben", "Windows nativ unterstützen"}
assert {p.name for p in reader.projects()} == PROJECTS
items = reader.open_items(MARKER)
assert {i.title for i in items.items} == {
@@ -85,7 +100,7 @@ def test_the_api_reader_reads_the_apps_own_answers():
assert [(w.title, w.follow_up_at) for w in items.waiting] == [
("Recorded: warte auf Antwort", date(2026, 8, 1)),
]
assert reader.open_items("Windows nativ unterstützen").count == 0
_assert_demo_projects(reader)
assert sp.health(cfg) is True
@@ -106,8 +121,6 @@ def test_the_snapshot_reader_reads_a_backup_the_app_wrote(tmp_path):
cfg = sp.SuperProductivityConfig.from_dict({"access": "snapshot", "backups_dir": str(backups)})
reader = sp.SuperProductivityReader(cfg)
assert {p.name for p in reader.projects()} == {
MARKER, "Chemenu 8.0.0 freigeben", "Windows nativ unterstützen",
}
assert {p.name for p in reader.projects()} == PROJECTS
assert reader.open_items(MARKER).count == 0
assert reader.someday_items() == []
_assert_demo_projects(reader)