Commit 6fe68e3c authored by J. Fernando Sánchez's avatar J. Fernando Sánchez
Browse files

Fixes #3

parent 82496dc8
...@@ -112,6 +112,9 @@ class SenpyPlugin(Leaf): ...@@ -112,6 +112,9 @@ class SenpyPlugin(Leaf):
def id(self): def id(self):
return "{}_{}".format(self.name, self.version) return "{}_{}".format(self.name, self.version)
def __del__(self):
''' Destructor, to make sure all the resources are freed '''
self.deactivate()
class SentimentPlugin(SenpyPlugin): class SentimentPlugin(SenpyPlugin):
...@@ -139,8 +142,8 @@ class ShelfMixin(object): ...@@ -139,8 +142,8 @@ class ShelfMixin(object):
@sh.deleter @sh.deleter
def sh(self): def sh(self):
if hasattr(self, '_sh'): if os.path.isfile(self.shelf_file):
del(self._sh) os.remove(self.shelf_file)
@property @property
def shelf_file(self): def shelf_file(self):
......
...@@ -15,7 +15,7 @@ except AttributeError: ...@@ -15,7 +15,7 @@ except AttributeError:
install_reqs = [str(ir.req) for ir in install_reqs] install_reqs = [str(ir.req) for ir in install_reqs]
test_reqs = [str(ir.req) for ir in test_reqs] test_reqs = [str(ir.req) for ir in test_reqs]
VERSION = "0.4.11rc" VERSION = "0.4.11"
setup( setup(
name='senpy', name='senpy',
......
#!/bin/env python2
# -*- py-which-shell: "python2"; -*-
import os import os
import logging import logging
import shelve import shelve
...@@ -13,29 +15,56 @@ from senpy.models import Response, Entry ...@@ -13,29 +15,56 @@ from senpy.models import Response, Entry
from senpy.plugins import SenpyPlugin, ShelfMixin from senpy.plugins import SenpyPlugin, ShelfMixin
class ShelfTest(ShelfMixin, SenpyPlugin):
def test(self, key=None, value=None):
assert isinstance(self.sh, shelve.Shelf)
assert key in self.sh
print('Checking: sh[{}] == {}'.format(key, value))
print('SH[{}]: {}'.format(key, self.sh[key]))
assert self.sh[key] == value
class ModelsTest(TestCase): class ModelsTest(TestCase):
shelf_file = 'shelf_test.db'
def tearDown(self):
if os.path.isfile(self.shelf_file):
os.remove(self.shelf_file)
# def test_shelf(self): setUp = tearDown
# class ShelfTest(ShelfMixin):
# pass
# a = ShelfTest()
# print(type(a.sh))
# assert(False)
def test_shelf(self): def test_shelf(self):
class ShelfTest(ShelfMixin, SenpyPlugin): ''' A shelf is created and the value is stored '''
pass a = ShelfTest(info={'name': 'shelve',
a = ShelfTest({'name': 'shelve', 'version': 'test'}) 'version': 'test',
print(type(a.sh)) 'shelf_file': self.shelf_file})
a.context = "ohno" assert a.sh == {}
del a.context assert a.shelf_file == self.shelf_file
print(a)
a.sh['classifier'] = {'name': 'ohno'} a.sh['a'] = 'fromA'
assert a.name == 'shelve'
assert isinstance(a.sh, shelve.Shelf) a.test(key='a', value='fromA')
del(a)
assert os.path.isfile(self.shelf_file)
sh = shelve.open(self.shelf_file)
assert sh['a'] == 'fromA'
def test_two(self):
''' Reusing the values of a previous shelf '''
a = ShelfTest(info={'name': 'shelve',
'version': 'test',
'shelf_file': self.shelf_file})
print('Shelf file: %s' % a.shelf_file)
a.sh['a'] = 'fromA'
a.close() a.close()
b = ShelfTest({'name': 'shelve', 'version': 'test'})
assert b.name == 'shelve' b = ShelfTest(info={'name': 'shelve',
assert b.sh['classifier'] 'version': 'test',
assert b.sh['classifier']['name'] == 'ohno' 'shelf_file': self.shelf_file})
assert isinstance(b.sh, shelve.Shelf) b.test(key='a', value='fromA')
b.sh['a'] = 'fromB'
assert b.sh['a'] == 'fromB'
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment