Changeset 725 for trunk/tests


Ignore:
Timestamp:
Jan 12, 2016, 10:32:32 AM (4 years ago)
Author:
cito
Message:

Improve implementation and test for pkey()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/tests/test_classic_dbwrapper.py

    r709 r725  
    559559    def testPkey(self):
    560560        query = self.db.query
    561         for n in range(4):
    562             query("drop table if exists pkeytest%d" % n)
    563         query("create table pkeytest0 ("
    564             "a smallint)")
    565         query("create table pkeytest1 ("
    566             "b smallint primary key)")
    567         query("create table pkeytest2 ("
    568             "c smallint, d smallint primary key)")
    569         query("create table pkeytest3 ("
    570             "e smallint, f smallint, g smallint, "
    571             "h smallint, i smallint, "
    572             "primary key (f,h))")
    573561        pkey = self.db.pkey
    574         self.assertRaises(KeyError, pkey, 'pkeytest0')
    575         self.assertEqual(pkey('pkeytest1'), 'b')
    576         self.assertEqual(pkey('pkeytest2'), 'd')
    577         self.assertEqual(pkey('pkeytest3'), frozenset('fh'))
    578         self.assertEqual(pkey('pkeytest0', 'none'), 'none')
    579         self.assertEqual(pkey('pkeytest0'), 'none')
    580         pkey(None, {'t': 'a', 'n.t': 'b'})
    581         self.assertEqual(pkey('t'), 'a')
    582         self.assertEqual(pkey('n.t'), 'b')
    583         self.assertRaises(KeyError, pkey, 'pkeytest0')
    584         for n in range(4):
    585             query("drop table pkeytest%d" % n)
     562        for t in ('pkeytest', 'primary key test'):
     563            for n in range(7):
     564                query('drop table if exists "%s%d"' % (t, n))
     565            query('create table "%s0" ('
     566                "a smallint)" % t)
     567            query('create table "%s1" ('
     568                "b smallint primary key)" % t)
     569            query('create table "%s2" ('
     570                "c smallint, d smallint primary key)" % t)
     571            query('create table "%s3" ('
     572                "e smallint, f smallint, g smallint, "
     573                "h smallint, i smallint, "
     574                "primary key (f, h))" % t)
     575            query('create table "%s4" ('
     576                "more_than_one_letter varchar primary key)" % t)
     577            query('create table "%s5" ('
     578                '"with space" date primary key)' % t)
     579            query('create table "%s6" ('
     580                'a_very_long_column_name varchar, '
     581                '"with space" date, '
     582                '"42" int, '
     583                "primary key (a_very_long_column_name, "
     584                '"with space", "42"))' % t)
     585            self.assertRaises(KeyError, pkey, '%s0' % t)
     586            self.assertEqual(pkey('%s1' % t), 'b')
     587            self.assertEqual(pkey('%s2' % t), 'd')
     588            r = pkey('%s3' % t)
     589            self.assertIsInstance(r, frozenset)
     590            self.assertEqual(r, frozenset('fh'))
     591            self.assertEqual(pkey('%s4' % t), 'more_than_one_letter')
     592            self.assertEqual(pkey('%s5' % t), 'with space')
     593            r = pkey('%s6' % t)
     594            self.assertIsInstance(r, frozenset)
     595            self.assertEqual(r, frozenset([
     596                'a_very_long_column_name', 'with space', '42']))
     597            self.assertEqual(pkey('%s0' % t, 'none'), 'none')
     598            self.assertEqual(pkey('%s0' % t), 'none')
     599            pkey(None, {'%s0' % t: 'a', 'public."%s1"' % t: 'b'})
     600            self.assertEqual(pkey('%s0' % t), 'a')
     601            self.assertEqual(pkey('%s1' % t), 'b')
     602            pkey(None, {})
     603            self.assertRaises(KeyError, pkey, '%s0' % t)
     604            for n in range(7):
     605                query('drop table "%s%d"' % (t, n))
    586606
    587607    def testGetDatabases(self):
Note: See TracChangeset for help on using the changeset viewer.