From 1e2efa9c4fc5362578e6154d2c7da99ff17cf66f Mon Sep 17 00:00:00 2001 From: Florent Pigout Date: Fri, 14 Oct 2011 10:16:06 +0000 Subject: add db key required parameters x, y, duration, loop --- diff --git a/atoidejouer/db/story.py b/atoidejouer/db/story.py index fd937f5..ed7c40b 100644 --- a/atoidejouer/db/story.py +++ b/atoidejouer/db/story.py @@ -13,19 +13,26 @@ from atoidejouer.tools import storage class Key(object): - def __init__(self, id=None, name=None, type=None, time=-1, layer=-1, media=None): + def __init__(self, id=None, name=None, type=None, media=None, **kargs): + """ + """ self.id, self.name, self.type, self.media = id, name, type, media - self.time = 0 if time is None else time - self.layer = 0 if layer is None else layer + # ensure value if select row returns None value + for arg in ['time', 'layer', 'x', 'y', 'duration', 'loop']: + setattr(self, arg, kargs[arg] if arg in kargs and kargs[arg] else 0) def __repr__(self): - return "name=%s|type=%s|time=%s|layer=%s|media=%s"\ - % (self.name, self.type, self.time, self.layer, self.media) + return "%s|name=%s|type=%s|media=%s|time=%s|layer=%s|"\ + "x=%s|y=%s|dur=%s|loop=%s"\ + % (self.id, self.name, self.type, self.media, + self.time, self.layer, + self.x, self.y, + self.duration, self.loop) def __cmp__(self, other): return cmp( - (self.name, self.type, self.time, self.layer, self.media), - (other.name, other.type, other.time, other.layer, other.media) + (self.name, self.type, self.media, self.time, self.layer), + (other.name, other.type, self.media, other.time, other.layer) ) def create(self): @@ -33,15 +40,19 @@ class Key(object): "id integer primary key autoincrement not null,"\ "name text,"\ "type text,"\ + "media text,"\ "time integer,"\ "layer integer,"\ - "media text"\ + "x integer,"\ + "y integer,"\ + "duration integer,"\ + "loop integer"\ ")" def insert(self): columns = list() values = list() - for c in ['name', 'type', 'time', 'layer', 'media']: + for c in ['name', 'type', 'media', 'time', 'layer']: v = getattr(self, c) if v and v != -1: columns.append(c) diff --git a/tests/test_db_story.py b/tests/test_db_story.py index 08a8e71..941372d 100644 --- a/tests/test_db_story.py +++ b/tests/test_db_story.py @@ -24,14 +24,14 @@ class TestDBStory(unittest.TestCase): def test_add(self): # second row - key = story.Key(None, 'helo', 'image', 0, 1, 'helo.png') + key = story.Key(None, 'helo', 'image', 'helo.png') story.DB().add(key) all = [r for r in story.DB().all()] self.assertEqual(len(all), 1, "should have 1 row! found: %s" % len(all)) self.assertEqual(all[0], key, "not the same row: %s" % all[0]) # second row - key = story.Key(None, 'hola', 'image', 0, 2, 'hola.png') + key = story.Key(None, 'hola', 'image', 'hola.png') story.DB().add(key) all = [r for r in story.DB().all()] self.assertEqual(len(all), 2, @@ -39,7 +39,7 @@ class TestDBStory(unittest.TestCase): self.assertEqual(all[1], key, "not the same row: %s" % all[1]) def test_get(self): - key = story.Key(None, 'helo', 'image', 0, 1, 'helo.png') + key = story.Key(None, 'helo', 'image', 'helo.png') story.DB().add(key) all = [r for r in story.DB().get(story.Key(name='helo'))] self.assertEqual(len(all), 1, @@ -47,15 +47,15 @@ class TestDBStory(unittest.TestCase): self.assertEqual(all[0], key, "not the same row: %s" % all[0]) def test_update(self): - key = story.Key(None, 'helo', 'image', 0, 1, 'helo.png') + key = story.Key(None, 'helo', 'image', 'helo.png', layer=1) story.DB().add(key) all = [r for r in story.DB().all()] - key = story.Key(id=all[0].id, name='hola', layer=2, media='hola.png') + key = story.Key(id=all[0].id, name='hola', media='hola.png', layer=2) story.DB().update(key) all = [r for r in story.DB().all()] self.assertEqual(len(all), 1, "should have 1 row! found: %s" % len(all)) - exp_key = story.Key(None, 'hola', 'image', 0, 2, 'hola.png') + exp_key = story.Key(None, 'hola', 'image', 'hola.png', layer=2) self.assertEqual(all[0], exp_key, "not the same row: %s" % all[0]) def suite(): -- cgit v0.9.1