def test_model_index(self): class Article(Model): name = TextField() timestamp = TimestampField() status = IntegerField() flags = IntegerField() aidx = ModelIndex( Article, (Article.name, Article.timestamp), ) self.assertSQL(aidx, ( 'CREATE INDEX IF NOT EXISTS "article_name_timestamp" ON "article" ' '("name", "timestamp")'), []) aidx = aidx.where(Article.status == 1) self.assertSQL(aidx, ( 'CREATE INDEX IF NOT EXISTS "article_name_timestamp" ON "article" ' '("name", "timestamp") ' 'WHERE ("status" = ?)'), [1]) aidx = ModelIndex(Article, (Article.timestamp.desc(), Article.flags.bin_and(4)), unique=True) self.assertSQL( aidx, ('CREATE UNIQUE INDEX IF NOT EXISTS "article_timestamp" ' 'ON "article" ("timestamp" DESC, ("flags" & ?))'), [4])
def test_model_index(self): class Article(Model): name = TextField() timestamp = TimestampField() status = IntegerField() flags = IntegerField() aidx = ModelIndex(Article, (Article.name, Article.timestamp),) self.assertSQL(aidx, ( 'CREATE INDEX IF NOT EXISTS "article_name_timestamp" ON "article" ' '("name", "timestamp")'), []) aidx = aidx.where(Article.status == 1) self.assertSQL(aidx, ( 'CREATE INDEX IF NOT EXISTS "article_name_timestamp" ON "article" ' '("name", "timestamp") ' 'WHERE ("status" = ?)'), [1]) aidx = ModelIndex(Article, (Article.timestamp.desc(), Article.flags.bin_and(4)), unique=True) self.assertSQL(aidx, ( 'CREATE UNIQUE INDEX IF NOT EXISTS "article_timestamp" ' 'ON "article" ("timestamp" DESC, ("flags" & ?))'), [4])