Ejemplo n.º 1
0
    def test_insert(self):
        t1.insert().execute({u("méil"): 1, ue("\u6e2c\u8a66"): 5})
        t2.insert().execute({u("a"): 1, u("b"): 1})
        t3.insert().execute({
            ue("\u6e2c\u8a66_id"): 1,
            ue("unitable1_\u6e2c\u8a66"): 5,
            u("Unitéble2_b"): 1,
            ue("\u6e2c\u8a66_self"): 1,
        })

        assert t1.select().execute().fetchall() == [(1, 5)]
        assert t2.select().execute().fetchall() == [(1, 1)]
        assert t3.select().execute().fetchall() == [(1, 5, 1, 1)]
Ejemplo n.º 2
0
    def test_unicode(self):
        m = MetaData()
        t = Table(
            ue("\u6e2c\u8a66"), m, Column(ue("\u6e2c\u8a66_id"), Integer)
        )

        expr = select([t]).where(t.c[ue("\u6e2c\u8a66_id")] == 5)

        expr2 = serializer.loads(serializer.dumps(expr, -1), m)

        self.assert_compile(
            expr2,
            ue(
                'SELECT "\u6e2c\u8a66"."\u6e2c\u8a66_id" FROM "\u6e2c\u8a66" '
                'WHERE "\u6e2c\u8a66"."\u6e2c\u8a66_id" = :\u6e2c\u8a66_id_1'
            ),
            dialect="default",
        )
Ejemplo n.º 3
0
    def _assert_errorhandler(self, outconverter, has_errorhandler):
        data = ue("\uee2c\u9a66")  # this is u"\uee2c\u9a66"

        utf8_w_errors = data.encode("utf-16")

        if has_errorhandler:

            eq_(
                outconverter(utf8_w_errors),
                data.encode("utf-16").decode("utf-8", "ignore"),
            )
        else:
            assert_raises(UnicodeDecodeError, outconverter, utf8_w_errors)
Ejemplo n.º 4
0
    def test_repr(self):

        m = MetaData()
        t = Table(ue("\u6e2c\u8a66"), m, Column(ue("\u6e2c\u8a66_id"),
                                                Integer))

        if util.py2k:
            eq_(
                repr(t),
                ("Table('\\u6e2c\\u8a66', MetaData(bind=None), "
                 "Column('\\u6e2c\\u8a66_id', Integer(), "
                 "table=<\u6e2c\u8a66>), "
                 "schema=None)"),
            )
        else:
            eq_(
                repr(t),
                ("Table('測試', MetaData(bind=None), "
                 "Column('測試_id', Integer(), "
                 "table=<測試>), "
                 "schema=None)"),
            )
Ejemplo n.º 5
0
    def test_reflect(self):
        t1.insert().execute({u("méil"): 2, ue("\u6e2c\u8a66"): 7})
        t2.insert().execute({u("a"): 2, u("b"): 2})
        t3.insert().execute({
            ue("\u6e2c\u8a66_id"): 2,
            ue("unitable1_\u6e2c\u8a66"): 7,
            u("Unitéble2_b"): 2,
            ue("\u6e2c\u8a66_self"): 2,
        })

        meta = MetaData(testing.db)
        tt1 = Table(t1.name, meta, autoload=True)
        tt2 = Table(t2.name, meta, autoload=True)
        tt3 = Table(t3.name, meta, autoload=True)

        tt1.insert().execute({u("méil"): 1, ue("\u6e2c\u8a66"): 5})
        tt2.insert().execute({u("méil"): 1, ue("\u6e2c\u8a66"): 1})
        tt3.insert().execute({
            ue("\u6e2c\u8a66_id"): 1,
            ue("unitable1_\u6e2c\u8a66"): 5,
            u("Unitéble2_b"): 1,
            ue("\u6e2c\u8a66_self"): 1,
        })

        self.assert_(
            tt1.select(
                order_by=desc(u("méil"))).execute().fetchall() == [(2,
                                                                    7), (1,
                                                                         5)])
        self.assert_(
            tt2.select(
                order_by=desc(u("méil"))).execute().fetchall() == [(2,
                                                                    2), (1,
                                                                         1)])
        self.assert_(
            tt3.select(order_by=desc(ue(
                "\u6e2c\u8a66_id"))).execute().fetchall() == [(2, 7, 2,
                                                               2), (1, 5, 1,
                                                                    1)])
Ejemplo n.º 6
0
 def test_convert_unicode(self):
     meta = self.metadata
     t1 = Table(
         "unitest_table",
         meta,
         Column("id", Integer, primary_key=True),
         Column("descr", mssql.MSText()),
     )
     meta.create_all()
     with testing.db.connect() as con:
         con.execute(
             ue(
                 "insert into unitest_table values ('abc \xc3\xa9 def')"
             ).encode("UTF-8")
         )
         r = con.execute(t1.select()).first()
         assert isinstance(
             r[1], util.text_type
         ), "%s is %s instead of unicode, working on %s" % (
             r[1],
             type(r[1]),
             meta.bind,
         )
         eq_(r[1], util.ue("abc \xc3\xa9 def"))
Ejemplo n.º 7
0
    def test_col_targeting(self):
        t1.insert().execute({u("méil"): 1, ue("\u6e2c\u8a66"): 5})
        t2.insert().execute({u("a"): 1, u("b"): 1})
        t3.insert().execute({
            ue("\u6e2c\u8a66_id"): 1,
            ue("unitable1_\u6e2c\u8a66"): 5,
            u("Unitéble2_b"): 1,
            ue("\u6e2c\u8a66_self"): 1,
        })

        row = t1.select().execute().first()
        eq_(row[t1.c[u("méil")]], 1)
        eq_(row[t1.c[ue("\u6e2c\u8a66")]], 5)

        row = t2.select().execute().first()
        eq_(row[t2.c[u("a")]], 1)
        eq_(row[t2.c[u("b")]], 1)

        row = t3.select().execute().first()
        eq_(row[t3.c[ue("\u6e2c\u8a66_id")]], 1)
        eq_(row[t3.c[ue("unitable1_\u6e2c\u8a66")]], 5)
        eq_(row[t3.c[u("Unitéble2_b")]], 1)
        eq_(row[t3.c[ue("\u6e2c\u8a66_self")]], 1)
Ejemplo n.º 8
0
    def setup_class(cls):
        global metadata, t1, t2, t3

        metadata = MetaData(testing.db)
        t1 = Table(
            u("unitable1"),
            metadata,
            Column(u("méil"), Integer, primary_key=True),
            Column(ue("\u6e2c\u8a66"), Integer),
            test_needs_fk=True,
        )
        t2 = Table(
            u("Unitéble2"),
            metadata,
            Column(u("méil"), Integer, primary_key=True, key="a"),
            Column(
                ue("\u6e2c\u8a66"),
                Integer,
                ForeignKey(u("unitable1.méil")),
                key="b",
            ),
            test_needs_fk=True,
        )

        # Few DBs support Unicode foreign keys
        if testing.against("sqlite"):
            t3 = Table(
                ue("\u6e2c\u8a66"),
                metadata,
                Column(
                    ue("\u6e2c\u8a66_id"),
                    Integer,
                    primary_key=True,
                    autoincrement=False,
                ),
                Column(
                    ue("unitable1_\u6e2c\u8a66"),
                    Integer,
                    ForeignKey(ue("unitable1.\u6e2c\u8a66")),
                ),
                Column(u("Unitéble2_b"), Integer,
                       ForeignKey(u("Unitéble2.b"))),
                Column(
                    ue("\u6e2c\u8a66_self"),
                    Integer,
                    ForeignKey(ue("\u6e2c\u8a66.\u6e2c\u8a66_id")),
                ),
                test_needs_fk=True,
            )
        else:
            t3 = Table(
                ue("\u6e2c\u8a66"),
                metadata,
                Column(
                    ue("\u6e2c\u8a66_id"),
                    Integer,
                    primary_key=True,
                    autoincrement=False,
                ),
                Column(ue("unitable1_\u6e2c\u8a66"), Integer),
                Column(u("Unitéble2_b"), Integer),
                Column(ue("\u6e2c\u8a66_self"), Integer),
                test_needs_fk=True,
            )
        metadata.create_all()