Example #1
0
class TestNamespace(DatabaseTest):

    def setup_method(self, method):
        super(TestNamespace, self).setup_method(method)
        self.model = DracoModel(self.database)
        self.schema = self.model.schema()
        self.schema.drop()
        self.schema.create()
        self.transaction = self.model.transaction()
        self.namespace = SessionNamespace('sessionid', 'myscope',
                                          self.transaction)

    def teardown_method(self, method):
        self.transaction.commit()
        self.schema.drop()
        super(TestNamespace, self).teardown_method(method)

    def test_simple(self):
        ns = self.namespace
        ns['key'] = 'value'
        ns.flush(); ns._load()
        assert ns['key'] == 'value'
 
    def test_types(self):
        ns = self.namespace
        data = []
        data.append(None)
        data.append(True)
        data.append(False)
        data.append(10)
        data.append(1000000000000000000L)
        data.append(3.1415)
        data.append('value')
        data.append((1,2,3))
        data.append([1,2,3])
        data.append({1:2, 3:4})
        data.append(datetime.timedelta())
        data.append(datetime.date.today())
        data.append(datetime.datetime.now())
        data.append(datetime.time())
        data.append(OldStyleClass())
        data.append(NewStyleClass())
        for i,val in enumerate(data):
            ns['key_%d' % i] = val
        ns.flush(); ns._load()
        for i,val in enumerate(data):
            assert ns['key_%d' % i] == val

    def test_binary(self):
        ns = self.namespace
        data = []
        for i in range(10):
            blob = random_data(random.randrange(100000))
            data.append(blob)
        for i,val in enumerate(data):
            ns['key_%d' % i] = val
        ns.flush(); ns._load()
        for i,val in enumerate(data):
            assert ns['key_%d' % i] == val
Example #2
0
 def run(self, opts, args, api):
     name, principal = args
     model = api.models.model(name)
     if not model:
         self.error('no such model: %s' % name)
         self.exit(1)
     model = DracoModel(api.database)
     schema = model.schema()
     group = opts.group
     execute = opts.database
     statements = schema.revoke(principal, group=group, execute=execute)
     if not execute:
         result = ';\n'.join(statements) + ';\n'
         self.write(result)
Example #3
0
 def setup_method(self, method):
     super(TestNamespace, self).setup_method(method)
     self.model = DracoModel(self.database)
     self.schema = self.model.schema()
     self.schema.drop()
     self.schema.create()
     self.transaction = self.model.transaction()
     self.namespace = SessionNamespace('sessionid', 'myscope',
                                       self.transaction)