piknik

Unnamed repository; edit this file 'description' to name the repository.
Info | Log | Files | Refs | README | LICENSE

commit 16a1c135720f4955214628fc2af7dd5876421b1c
parent 62b9e92f5aecf7463e602689753a6a65a6258338
Author: lash <dev@holbrook.no>
Date:   Sun,  6 Nov 2022 13:17:32 +0000

Add shep, simple progression

Diffstat:
Mpiknik/basket.py | 26++++++++++++++++++++------
Mtest/test_basic.py | 32+++++++++++++++++++++++++++-----
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__':