| 1046 | ) |
| 1047 | |
| 1048 | def test_autoincrement(self, connection): |
| 1049 | aitable = self.tables.aitable |
| 1050 | |
| 1051 | ids = set() |
| 1052 | rs = connection.execute(aitable.insert(), dict(int1=1)) |
| 1053 | last = rs.inserted_primary_key[0] |
| 1054 | self.assert_(last) |
| 1055 | self.assert_(last not in ids) |
| 1056 | ids.add(last) |
| 1057 | |
| 1058 | rs = connection.execute(aitable.insert(), dict(str1=class="st">"row 2")) |
| 1059 | last = rs.inserted_primary_key[0] |
| 1060 | self.assert_(last) |
| 1061 | self.assert_(last not in ids) |
| 1062 | ids.add(last) |
| 1063 | |
| 1064 | rs = connection.execute(aitable.insert(), dict(int1=3, str1=class="st">"row 3")) |
| 1065 | last = rs.inserted_primary_key[0] |
| 1066 | self.assert_(last) |
| 1067 | self.assert_(last not in ids) |
| 1068 | ids.add(last) |
| 1069 | |
| 1070 | rs = connection.execute( |
| 1071 | aitable.insert().values({class="st">"int1": func.length(class="st">"four")}) |
| 1072 | ) |
| 1073 | last = rs.inserted_primary_key[0] |
| 1074 | self.assert_(last) |
| 1075 | self.assert_(last not in ids) |
| 1076 | ids.add(last) |
| 1077 | |
| 1078 | eq_( |
| 1079 | ids, |
| 1080 | set( |
| 1081 | range( |
| 1082 | testing.db.dialect.default_sequence_base, |
| 1083 | testing.db.dialect.default_sequence_base + 4, |
| 1084 | ) |
| 1085 | ), |
| 1086 | ) |
| 1087 | |
| 1088 | eq_( |
| 1089 | list(connection.execute(aitable.select().order_by(aitable.c.id))), |
| 1090 | [ |
| 1091 | (testing.db.dialect.default_sequence_base, 1, None), |
| 1092 | (testing.db.dialect.default_sequence_base + 1, None, class="st">"row 2"), |
| 1093 | (testing.db.dialect.default_sequence_base + 2, 3, class="st">"row 3"), |
| 1094 | (testing.db.dialect.default_sequence_base + 3, 4, None), |
| 1095 | ], |
| 1096 | ) |
| 1097 | |
| 1098 | |
| 1099 | class AutoIncrementTest(fixtures.TestBase): |