| 286 | ) |
| 287 | |
| 288 | def _test_autoincrement(self, connection): |
| 289 | aitable = self.tables.aitable |
| 290 | |
| 291 | ids = set() |
| 292 | rs = connection.execute(aitable.insert(), int1=1) |
| 293 | last = rs.inserted_primary_key[0] |
| 294 | self.assert_(last) |
| 295 | self.assert_(last not in ids) |
| 296 | ids.add(last) |
| 297 | |
| 298 | rs = connection.execute(aitable.insert(), str1="row 2") |
| 299 | last = rs.inserted_primary_key[0] |
| 300 | self.assert_(last) |
| 301 | self.assert_(last not in ids) |
| 302 | ids.add(last) |
| 303 | |
| 304 | rs = connection.execute(aitable.insert(), int1=3, str1="row 3") |
| 305 | last = rs.inserted_primary_key[0] |
| 306 | self.assert_(last) |
| 307 | self.assert_(last not in ids) |
| 308 | ids.add(last) |
| 309 | |
| 310 | rs = connection.execute( |
| 311 | aitable.insert().values({"int1": func.length("four")}) |
| 312 | ) |
| 313 | last = rs.inserted_primary_key[0] |
| 314 | self.assert_(last) |
| 315 | self.assert_(last not in ids) |
| 316 | ids.add(last) |
| 317 | |
| 318 | eq_( |
| 319 | ids, |
| 320 | set( |
| 321 | range( |
| 322 | testing.db.dialect.default_sequence_base, |
| 323 | testing.db.dialect.default_sequence_base + 4, |
| 324 | ) |
| 325 | ), |
| 326 | ) |
| 327 | |
| 328 | eq_( |
| 329 | list(connection.execute(aitable.select().order_by(aitable.c.id))), |
| 330 | [ |
| 331 | (testing.db.dialect.default_sequence_base, 1, None), |
| 332 | (testing.db.dialect.default_sequence_base + 1, None, "row 2"), |
| 333 | (testing.db.dialect.default_sequence_base + 2, 3, "row 3"), |
| 334 | (testing.db.dialect.default_sequence_base + 3, 4, None), |
| 335 | ], |
| 336 | ) |
| 337 | |
| 338 | |
| 339 | class TableDeprecationTest(fixtures.TestBase): |