コード例 #1
0
    def test_create_table(self):
        class A(TestModel):
            cf = CharField(max_length=100, unique=True)
            df = DecimalField(
                max_digits=4,
                decimal_places=2,
                auto_round=True,
                unique=True)

        class CF(TestModel):
            a = ForeignKeyField(A, to_field='cf')

        class DF(TestModel):
            a = ForeignKeyField(A, to_field='df')

        cf_create, _ = compiler.create_table(CF)
        self.assertEqual(
            cf_create,
            'CREATE TABLE "cf" ('
            '"id" INTEGER NOT NULL PRIMARY KEY, '
            '"a_id" VARCHAR(100) NOT NULL, '
            'FOREIGN KEY ("a_id") REFERENCES "a" ("cf"))')

        df_create, _ = compiler.create_table(DF)
        self.assertEqual(
            df_create,
            'CREATE TABLE "df" ('
            '"id" INTEGER NOT NULL PRIMARY KEY, '
            '"a_id" DECIMAL(4, 2) NOT NULL, '
            'FOREIGN KEY ("a_id") REFERENCES "a" ("df"))')
コード例 #2
0
    def test_create_table_query(self):
        query, params = compiler.create_table(Snippet)
        self.assertEqual(
            query, 'CREATE TABLE "snippet" '
            '("id" INTEGER NOT NULL PRIMARY KEY, '
            '"code" TEXT NOT NULL, '
            '"language_id" INTEGER NOT NULL, '
            'FOREIGN KEY ("language_id") REFERENCES "language" ("id")'
            ')')

        query, params = compiler.create_table(Language)
        self.assertEqual(
            query, 'CREATE TABLE "language" '
            '("id" INTEGER NOT NULL PRIMARY KEY, '
            '"name" VARCHAR(255) NOT NULL, '
            '"selected_snippet_id" INTEGER)')
コード例 #3
0
ファイル: test_keys.py プロジェクト: knightliao/peewee
    def test_create_table_query(self):
        query, params = compiler.create_table(Snippet)
        self.assertEqual(
            query,
            'CREATE TABLE "snippet" '
            '("id" INTEGER NOT NULL PRIMARY KEY, '
            '"code" TEXT NOT NULL, '
            '"language_id" INTEGER NOT NULL, '
            'FOREIGN KEY ("language_id") REFERENCES "language" ("id")'
            ')')

        query, params = compiler.create_table(Language)
        self.assertEqual(
            query,
            'CREATE TABLE "language" '
            '("id" INTEGER NOT NULL PRIMARY KEY, '
            '"name" VARCHAR(255) NOT NULL, '
            '"selected_snippet_id" INTEGER)')
コード例 #4
0
 def test_create_table_query(self):
     query, params = compiler.create_table(TagPostThrough)
     self.assertEqual(
         query, 'CREATE TABLE "tagpostthrough" '
         '("tag_id" INTEGER NOT NULL, '
         '"post_id" INTEGER NOT NULL, '
         'PRIMARY KEY ("tag_id", "post_id"), '
         'FOREIGN KEY ("tag_id") REFERENCES "tag" ("id"), '
         'FOREIGN KEY ("post_id") REFERENCES "post" ("id")'
         ')')
コード例 #5
0
 def test_create_table_query(self):
     query, params = compiler.create_table(TagPostThrough)
     self.assertEqual(
         query, 'CREATE TABLE tagpostthrough '
         '(tag_id INTEGER NOT NULL, '
         'post_id INTEGER NOT NULL, '
         'PRIMARY KEY (tag_id, post_id), '
         'FOREIGN KEY (tag_id) REFERENCES tag (id), '
         'FOREIGN KEY (post_id) REFERENCES post (id)'
         ')')
コード例 #6
0
ファイル: test_keys.py プロジェクト: knightliao/peewee
 def test_create_table_query(self):
     query, params = compiler.create_table(TagPostThrough)
     self.assertEqual(
         query,
         'CREATE TABLE "tagpostthrough" '
         '("tag_id" INTEGER NOT NULL, '
         '"post_id" INTEGER NOT NULL, '
         'PRIMARY KEY ("tag_id", "post_id"), '
         'FOREIGN KEY ("tag_id") REFERENCES "tag" ("id"), '
         'FOREIGN KEY ("post_id") REFERENCES "post" ("id")'
         ')')
コード例 #7
0
ファイル: test_keys.py プロジェクト: keredson/peewee
 def test_create_table_query(self):
     query, params = compiler.create_table(TagPostThrough)
     self.assertEqual(
         query,
         'CREATE TABLE tagpostthrough '
         '(tag_id INTEGER NOT NULL, '
         'post_id INTEGER NOT NULL, '
         'PRIMARY KEY (tag_id, post_id), '
         'FOREIGN KEY (tag_id) REFERENCES tag (id), '
         'FOREIGN KEY (post_id) REFERENCES post (id)'
         ')')
コード例 #8
0
ファイル: test_keys.py プロジェクト: nad2000/peewee
    def test_composite_key_inheritance(self):
        db = database_initializer.get_in_memory_database()

        class Person(TestModel):
            first = TextField()
            last = TextField()
            class Meta:
                database = db
                primary_key = CompositeKey('first', 'last')

        class Employee(Person):
            title = TextField()

        self.assertTrue(Employee._meta.composite_key)
        primary_key = Employee._meta.primary_key
        self.assertTrue(isinstance(primary_key, CompositeKey))
        self.assertEqual(primary_key.field_names, ('first', 'last'))

        ddl, _ = compiler.create_table(Employee)
        self.assertEqual(ddl, (
            'CREATE TABLE "employee" ("first" TEXT NOT NULL, '
            '"last" TEXT NOT NULL, "title" TEXT NOT NULL, '
            'PRIMARY KEY ("first", "last"))'))
コード例 #9
0
    def test_composite_key_inheritance(self):
        db = database_initializer.get_in_memory_database()

        class Person(TestModel):
            first = TextField()
            last = TextField()

            class Meta:
                database = db
                primary_key = CompositeKey('first', 'last')

        class Employee(Person):
            title = TextField()

        self.assertTrue(Employee._meta.composite_key)
        primary_key = Employee._meta.primary_key
        self.assertTrue(isinstance(primary_key, CompositeKey))
        self.assertEqual(primary_key.field_names, ('first', 'last'))

        ddl, _ = compiler.create_table(Employee)
        self.assertEqual(ddl,
                         ('CREATE TABLE "employee" ("first" TEXT NOT NULL, '
                          '"last" TEXT NOT NULL, "title" TEXT NOT NULL, '
                          'PRIMARY KEY ("first", "last"))'))