commit 16a1c135720f4955214628fc2af7dd5876421b1c
parent 62b9e92f5aecf7463e602689753a6a65a6258338
Author: lash <dev@holbrook.no>
Date: Sun, 6 Nov 2022 13:17:32 +0000
Add shep, simple progression
Diffstat:
2 files changed, 47 insertions(+), 11 deletions(-)
diff --git a/piknik/basket.py b/piknik/basket.py
@@ -1,18 +1,32 @@
+import shep
class Basket:
-
- def __init__(self):
- self.issues = {
- 'default': [],
- }
+
+ def __init__(self, state_factory):
+ self.state = state_factory(default_state='backlog')
+ self.state.add('pending')
+ self.state.add('doing')
+ self.state.add('review')
+ self.state.add('finished')
+ self.state.add('blocked')
+ self.limit = self.state.FINISHED
self.issues_rev = {}
def add(self, issue):
- self.issues['default'].append(issue)
+ self.state.put(issue.id, contents=issue)
self.issues_rev[issue.id] = issue
def get(self, issue_id):
return self.issues_rev[issue_id]
+
+
+ def list(self, category=None):
+ if category == None:
+ category = self.state.BACKLOG
+ else:
+ category = self.state.from_name(category)
+ print('category {}'.format(category))
+ return self.state.list(category)
diff --git a/test/test_basic.py b/test/test_basic.py
@@ -1,4 +1,9 @@
import unittest
+import shep
+import logging
+
+logging.basicConfig(level=logging.DEBUG)
+logg = logging.getLogger()
from piknik import (
Basket,
@@ -6,15 +11,32 @@ from piknik import (
)
+def debug_out(self, k, v):
+ logg.debug('TRACE: {} {}'.format(k, v))
+
+
+def create_test_state(*args, **kwargs):
+ return shep.State(6, *args, event_callback=debug_out, **kwargs)
+
+
class TestBasic(unittest.TestCase):
- def test_init(self):
- b = Basket()
+ def setUp(self):
+ self.b = Basket(create_test_state)
+
+
+ def test_issue_basic(self):
o = Issue('The first issue')
- b.add(o)
- r = b.get(o.id)
+ self.b.add(o)
+ r = self.b.get(o.id)
self.assertEqual(r, o)
- pass
+
+
+ def test_progress(self):
+ o = Issue('The first issue')
+ self.b.add(o)
+ r = self.b.list('backlog')
+ self.assertEqual(len(r), 1)
if __name__ == '__main__':