mirror of
				https://github.com/gsi-upm/senpy
				synced 2025-11-04 01:08:16 +00:00 
			
		
		
		
	Merge branch 'master' of github.com:gsi-upm/senpy into nacho
This commit is contained in:
		@@ -112,6 +112,9 @@ class SenpyPlugin(Leaf):
 | 
			
		||||
    def id(self):
 | 
			
		||||
        return "{}_{}".format(self.name, self.version)
 | 
			
		||||
 | 
			
		||||
    def __del__(self):
 | 
			
		||||
        ''' Destructor, to make sure all the resources are freed '''
 | 
			
		||||
        self.deactivate()
 | 
			
		||||
 | 
			
		||||
class SentimentPlugin(SenpyPlugin):
 | 
			
		||||
 | 
			
		||||
@@ -139,8 +142,8 @@ class ShelfMixin(object):
 | 
			
		||||
 | 
			
		||||
    @sh.deleter
 | 
			
		||||
    def sh(self):
 | 
			
		||||
        if hasattr(self, '_sh'):
 | 
			
		||||
            del(self._sh)
 | 
			
		||||
        if os.path.isfile(self.shelf_file):
 | 
			
		||||
            os.remove(self.shelf_file)
 | 
			
		||||
 | 
			
		||||
    @property
 | 
			
		||||
    def shelf_file(self):
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								setup.py
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								setup.py
									
									
									
									
									
								
							@@ -15,7 +15,7 @@ except AttributeError:
 | 
			
		||||
install_reqs = [str(ir.req) for ir in install_reqs]
 | 
			
		||||
test_reqs = [str(ir.req) for ir in test_reqs]
 | 
			
		||||
 | 
			
		||||
VERSION = "0.4.11rc"
 | 
			
		||||
VERSION = "0.4.11"
 | 
			
		||||
 | 
			
		||||
setup(
 | 
			
		||||
    name='senpy',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,5 @@
 | 
			
		||||
#!/bin/env python2
 | 
			
		||||
# -*- py-which-shell: "python2"; -*-
 | 
			
		||||
import os
 | 
			
		||||
import logging
 | 
			
		||||
import shelve
 | 
			
		||||
@@ -13,29 +15,56 @@ from senpy.models import Response, Entry
 | 
			
		||||
from senpy.plugins import SenpyPlugin, ShelfMixin
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class ModelsTest(TestCase):
 | 
			
		||||
class ShelfTest(ShelfMixin, SenpyPlugin):
 | 
			
		||||
 | 
			
		||||
    # def test_shelf(self):
 | 
			
		||||
    #     class ShelfTest(ShelfMixin):
 | 
			
		||||
    #         pass
 | 
			
		||||
    #     a = ShelfTest()
 | 
			
		||||
    #     print(type(a.sh))
 | 
			
		||||
    #     assert(False)
 | 
			
		||||
    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):
 | 
			
		||||
    shelf_file = 'shelf_test.db'
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def tearDown(self):
 | 
			
		||||
        if os.path.isfile(self.shelf_file):
 | 
			
		||||
            os.remove(self.shelf_file)
 | 
			
		||||
 | 
			
		||||
    setUp = tearDown
 | 
			
		||||
        
 | 
			
		||||
    def test_shelf(self):
 | 
			
		||||
        class ShelfTest(ShelfMixin, SenpyPlugin):
 | 
			
		||||
            pass
 | 
			
		||||
        a = ShelfTest({'name': 'shelve', 'version': 'test'})
 | 
			
		||||
        print(type(a.sh))
 | 
			
		||||
        a.context = "ohno"
 | 
			
		||||
        del a.context
 | 
			
		||||
        print(a)
 | 
			
		||||
        a.sh['classifier'] = {'name': 'ohno'}
 | 
			
		||||
        assert a.name == 'shelve'
 | 
			
		||||
        assert isinstance(a.sh, shelve.Shelf)
 | 
			
		||||
        ''' A shelf is created and the value is stored '''
 | 
			
		||||
        a = ShelfTest(info={'name': 'shelve',
 | 
			
		||||
                            'version': 'test',
 | 
			
		||||
                            'shelf_file': self.shelf_file})
 | 
			
		||||
        assert a.sh == {}
 | 
			
		||||
        assert a.shelf_file == self.shelf_file
 | 
			
		||||
 | 
			
		||||
        a.sh['a'] = 'fromA'
 | 
			
		||||
 | 
			
		||||
        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()
 | 
			
		||||
        b = ShelfTest({'name': 'shelve', 'version': 'test'})
 | 
			
		||||
        assert b.name == 'shelve'
 | 
			
		||||
        assert b.sh['classifier']
 | 
			
		||||
        assert b.sh['classifier']['name'] == 'ohno'
 | 
			
		||||
        assert isinstance(b.sh, shelve.Shelf)
 | 
			
		||||
 | 
			
		||||
        b = ShelfTest(info={'name': 'shelve',
 | 
			
		||||
                            'version': 'test',
 | 
			
		||||
                            'shelf_file': self.shelf_file})
 | 
			
		||||
        b.test(key='a', value='fromA')
 | 
			
		||||
        b.sh['a'] = 'fromB'
 | 
			
		||||
        assert b.sh['a'] == 'fromB'
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user