示例#1
0
    def test_two_models(self):

        class MyModel2(Model):
            class Meta:
                storage = FooStorage

            pk1     = fields.IntField(primary_key=True)

        # MyModel.Meta.storage = JSONStorage
        # MyModel2.Meta.storage = FooStorage

        db = Database(models=[MyModel, MyModel2])

        self.assertEqual( JSONStorage, db.get_storage(MyModel).__class__ )
        self.assertEqual( FooStorage, db.get_storage(MyModel2).__class__ )
示例#2
0
    def test_5(self):
        "test overriding storage"

        class MyModel( Model ):
            class Meta:
                storage = FooStorage

            int_type = fields.IntField(primary_key=True)
            str_type = fields.StringField()
            date_type  = fields.DateTimeField()

        model = MyModel
        db = Database( models=[model], storage=JSONStorage, root_dir=curr_dir)

        self.assertEqual( db.get_storage(model), db.get_storage('MyModel') )
        self.assertEqual( FooStorage, db.get_storage(model).__class__ )

        self.assertTrue( inspect.isclass(FooStorage) )
        self.assertTrue( db.get_storage(model) )

        db.set_storage(MyModel, FooStorage)
        self.assertEqual( FooStorage, db.get_storage(model).__class__ )

        db.set_storage('MyModel', FooStorage)
        self.assertEqual( FooStorage, db.get_storage(model).__class__ )
示例#3
0
 def test_bad_load(self):
     db = Database(models=[MyModel])
     self.assertIsNone( db.get_storage(self.__class__) )