Merge branch 'master' into 2master
This commit is contained in:
		
						commit
						ec99c62348
					
				
					 3 changed files with 13 additions and 5 deletions
				
			
		|  | @ -2,6 +2,7 @@ | ||||||
| 
 | 
 | ||||||
| """Common utility stuff for the scopes.storage package.""" | """Common utility stuff for the scopes.storage package.""" | ||||||
| 
 | 
 | ||||||
|  | import base64 | ||||||
| from sqlalchemy import create_engine, MetaData, text | from sqlalchemy import create_engine, MetaData, text | ||||||
| from sqlalchemy.orm import scoped_session, sessionmaker | from sqlalchemy.orm import scoped_session, sessionmaker | ||||||
| import threading | import threading | ||||||
|  | @ -41,6 +42,7 @@ class Storage(object): | ||||||
|         self.containers[container.itemFactory.prefix] = container |         self.containers[container.itemFactory.prefix] = container | ||||||
| 
 | 
 | ||||||
|     def getItem(self, uid): |     def getItem(self, uid): | ||||||
|  |         uid = base64.urlsafe_b64decode(uid[1:]).decode() | ||||||
|         prefix, id = uid.split('-') |         prefix, id = uid.split('-') | ||||||
|         id = int(id) |         id = int(id) | ||||||
|         container = self.containers.get(prefix) |         container = self.containers.get(prefix) | ||||||
|  |  | ||||||
|  | @ -6,6 +6,7 @@ A track consists of a head (index data, metadata)  with a fixed set of fields an | ||||||
| data (payload) represented as a dict. | data (payload) represented as a dict. | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
|  | import base64 | ||||||
| from datetime import datetime | from datetime import datetime | ||||||
| from sqlalchemy import Table, Column, Index | from sqlalchemy import Table, Column, Index | ||||||
| from sqlalchemy import BigInteger, DateTime, Text, func | from sqlalchemy import BigInteger, DateTime, Text, func | ||||||
|  | @ -28,7 +29,7 @@ class Track(object): | ||||||
|             self.head[self.headFields[ix]] = k |             self.head[self.headFields[ix]] = k | ||||||
|         for k in self.headFields: |         for k in self.headFields: | ||||||
|             if self.head.get(k) is None: |             if self.head.get(k) is None: | ||||||
|                 self.heaad[k] = '' |                 self.head[k] = '' | ||||||
|             setattr(self, k, self.head[k]) |             setattr(self, k, self.head[k]) | ||||||
|         self.data = kw.get('data') or {} |         self.data = kw.get('data') or {} | ||||||
|         self.timeStamp = kw.get('timeStamp') |         self.timeStamp = kw.get('timeStamp') | ||||||
|  | @ -47,7 +48,9 @@ class Track(object): | ||||||
|     def uid(self): |     def uid(self): | ||||||
|         if self.trackId is None: |         if self.trackId is None: | ||||||
|             return None |             return None | ||||||
|         return '%s-%d' % (self.prefix, self.trackId) |         raw = ('%s-%d' % (self.prefix, self.trackId)).encode() | ||||||
|  |         return 'b' + base64.urlsafe_b64encode(raw).decode() | ||||||
|  |         #return '%s-%d' % (self.prefix, self.trackId) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @registerContainerClass | @registerContainerClass | ||||||
|  |  | ||||||
|  | @ -54,13 +54,16 @@ class Test(unittest.TestCase): | ||||||
|                             data=dict(activity='concept')) |                             data=dict(activity='concept')) | ||||||
|         trid02 = tracks.upsert(tr02) |         trid02 = tracks.upsert(tr02) | ||||||
|         self.assertEqual(trid02, 31) |         self.assertEqual(trid02, 31) | ||||||
|         self.assertEqual(tr02.uid, 'rec-31') |         self.assertEqual(tr02.uid, 'bcmVjLTMx') | ||||||
|  |         #self.assertEqual(tr02.uid, 'rec-31') | ||||||
|         tr02.trackId = trid01 |         tr02.trackId = trid01 | ||||||
|         trid021 = tracks.upsert(tr02) |         trid021 = tracks.upsert(tr02) | ||||||
|         self.assertEqual(trid021, trid01) |         self.assertEqual(trid021, trid01) | ||||||
|         self.assertEqual(tr02.uid, 'rec-' + str(trid01)) |         self.assertEqual(tr02.uid, 'bcmVjLTE=') | ||||||
|  |         #self.assertEqual(tr02.uid, 'rec-' + str(trid01)) | ||||||
| 
 | 
 | ||||||
|         tr03 = storage.getItem('rec-31') |         #tr03 = storage.getItem(b'bcmVjLTE=') | ||||||
|  |         tr03 = storage.getItem('bcmVjLTMx') | ||||||
|         self.assertEqual(tr03.trackId, 31) |         self.assertEqual(tr03.trackId, 31) | ||||||
| 
 | 
 | ||||||
|         n = tracks.remove(31) |         n = tracks.remove(31) | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue