Пример #1
0
    def test_no_primary_key(self):
        tfile = tempfile.NamedTemporaryFile()

        class MyModel2( Model ):
            class Meta:
                filename = tfile.name

            int_type = fields.IntField(primary_key=True)

        db = Database( models=[MyModel2] )

        for i in range(3):
            MyModel2(int_type=i).save()

        db.store()
        self.assertTrue( os.path.getsize(tfile.name) )
        del db

        # need to add a auto increment for when there is no pk
        # and/or assert when model doesn't have pk
        # all records read/write to None/'' when there is no pk
        #print "fread",open(tfile.name,'r').read()

        db = Database( models=[MyModel2] )
        db.load()

        # not sure if this is a valid test, MyModel.objects is still around
        model = db.get_model('MyModel2')
        self.assertEqual( 3, len(model.objects) )
Пример #2
0
    def test_storage_instance(self):
        tfile = tempfile.NamedTemporaryFile(mode="w")

        db = Database(
            models=[AutoModel1, AutoModel2],
            storage=MultiStorage([AutoModel1, AutoModel2], tfile.name)
        )
        db.load()

        AutoModel1(f1="some text 1").save()
        AutoModel2(f1="some text 1").save()

        db.store()
        db = None

        AutoModel1.objects.clear()
        AutoModel2.objects.clear()

        db = Database(
            models=[AutoModel1, AutoModel2],
            storage=MultiStorage([AutoModel1, AutoModel2], tfile.name)
        )
        db.load()

        self.assertEqual("some text 1", AutoModel1.objects.get(f1="some text 1").f1)
        self.assertEqual("some text 1", AutoModel2.objects.get(f1="some text 1").f1)
Пример #3
0
    def test_6(self):
        "test saving/loading"

        tfile = tempfile.NamedTemporaryFile()

        class MyModel( Model ):
            class Meta:
                ordering = ['int_type','str_type','dt_type']
                filename = tfile.name

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

        db = Database( models=[MyModel] )
        man = MyModel.objects

        now = tznow()
        instances = [ MyModel(int_type=i, str_type='string', dt_type=now ) for i in range(3)]

        for inst in instances:
            man.save(inst)

        db.store()
        self.assertTrue( os.path.getsize(tfile.name) )
        del db

        # with open(tfile.name,'r') as f:
        #     print f.read()

        db = Database( models=[MyModel] )
        db.load()

        # not sure if this is a valid test, MyModel.objects is still around
        model = db.get_model('MyModel')
        self.assertEqual( 3, len(model.objects) )