async def test_slab_guid_stor(self): with self.getTestDir() as dirn: path = os.path.join(dirn, 'slab.lmdb') async with await s_lmdbslab.Slab.anit(path) as slab: guidstor = s_lmdbslab.GuidStor(slab, 'guids') info0 = guidstor.gen('aaaa') info0.set('hehe', 20) self.eq(20, info0.get('hehe')) self.none(info0.get('haha')) info0.set('woot', {'woot': 1}) self.eq((('hehe', 20), ('woot', {'woot': 1})), info0.items()) self.eq({'woot': 1}, info0.get('woot')) self.eq({'woot': 1}, info0.pop('woot')) self.none(info0.get('woot')) self.none(info0.pop('woot')) self.true(info0.pop('woot', s_common.novalu) is s_common.novalu) # Sad path case self.raises(TypeError, info0.set, 'newp', {1, 2, 3}) async with await s_lmdbslab.Slab.anit(path) as slab: guidstor = s_lmdbslab.GuidStor(slab, 'guids') info1 = guidstor.gen('aaaa') self.eq(20, info1.get('hehe')) self.none(info1.pop('woot')) self.len(1, info1.items()) self.eq((('hehe', 20), ), info1.items())
async def _initCellHttp(self): self.httpds = [] self.sessstor = s_lmdbslab.GuidStor(self.slab, 'http:sess') async def fini(): for http in self.httpds: http.stop() self.onfini(fini) # Generate/Load a Cookie Secret secpath = os.path.join(self.dirn, 'cookie.secret') if not os.path.isfile(secpath): with s_common.genfile(secpath) as fd: fd.write(s_common.guid().encode('utf8')) with s_common.getfile(secpath) as fd: secret = fd.read().decode('utf8') opts = { 'cookie_secret': secret, 'websocket_ping_interval': 10 } self.wapp = t_web.Application(**opts) self._initCellHttpApis()
async def _initCellHttp(self): self.httpds = [] self.sessstor = s_lmdbslab.GuidStor(self.slab, 'http:sess') async def fini(): for http in self.httpds: http.stop() self.onfini(fini) # Generate/Load a Cookie Secret secpath = os.path.join(self.dirn, 'cookie.secret') if not os.path.isfile(secpath): with s_common.genfile(secpath) as fd: fd.write(s_common.guid().encode('utf8')) with s_common.getfile(secpath) as fd: secret = fd.read().decode('utf8') opts = {'cookie_secret': secret, 'websocket_ping_interval': 10} self.wapp = t_web.Application(**opts) self.addHttpApi('/api/v1/login', s_httpapi.LoginV1, {'cell': self}) self.addHttpApi('/api/v1/auth/users', s_httpapi.AuthUsersV1, {'cell': self}) self.addHttpApi('/api/v1/auth/roles', s_httpapi.AuthRolesV1, {'cell': self}) self.addHttpApi('/api/v1/auth/adduser', s_httpapi.AuthAddUserV1, {'cell': self}) self.addHttpApi('/api/v1/auth/addrole', s_httpapi.AuthAddRoleV1, {'cell': self}) self.addHttpApi('/api/v1/auth/delrole', s_httpapi.AuthDelRoleV1, {'cell': self}) self.addHttpApi('/api/v1/auth/user/(.*)', s_httpapi.AuthUserV1, {'cell': self}) self.addHttpApi('/api/v1/auth/role/(.*)', s_httpapi.AuthRoleV1, {'cell': self}) self.addHttpApi('/api/v1/auth/grant', s_httpapi.AuthGrantV1, {'cell': self}) self.addHttpApi('/api/v1/auth/revoke', s_httpapi.AuthRevokeV1, {'cell': self})