def test_restore_row_with_non_default_column(self): p = UserTable(**self.p1) self._add_and_test_version(p, 0) p = self.session.query(UserTable).get(p.id) first_version = p.va_id p.col1 = 'test' self.session.commit() p = self.session.query(UserTable).get(p.id) self.assertEqual(p.col1, 'test') self.assertEqual(p.va_id, first_version + 1, 'Version should be increased') self.addTestNoDefaultNoNullColumn() p = self.session.query(UserTable).get(p.id) with self.assertRaises(RestoreError): p.va_restore(self.session, first_version)
def test_restore_row_with_new_nullable_column_by_va_version(self): p = UserTable(**self.p1) self._add_and_test_version(p, 0) p = self.session.query(UserTable).get(p.id) log = self.session.query(ArchiveTable).get(p.va_id) first_va_version = log.va_version p.col1 = 'test' p.col2 = 10 self.session.commit() p = self.session.query(UserTable).get(p.id) self.assertEqual(p.col1, 'test') self.assertEqual(p.col2, 10) self.addTestNullableColumn() p = self.session.query(UserTable).get(p.id) p.va_restore(self.session, first_va_version) p = self.session.query(UserTable).get(p.id) self.assertEqual(p.col1, self.p1['col1']) self.assertEqual(p.col2, self.p1['col2']) self.assertEqual(p.test_column1, None)
def test_restore_row_with_new_nullable_column_by_va_id(self): p = UserTable(**self.p1) self._add_and_test_version(p, 0) p = self.session.query(UserTable).get(p.id) first_va_id = p.va_id p.col1 = 'test' p.col2 = 10 self.session.commit() p = self.session.query(UserTable).get(p.id) self.assertEqual(p.col1, 'test') self.assertEqual(p.col2, 10) self.assertEqual(p.va_id, first_va_id + 1, 'va_id should be increased') self.addTestNullableColumn() p = self.session.query(UserTable).get(p.id) p.va_restore(self.session, va_id=first_va_id) p = self.session.query(UserTable).get(p.id) self.assertEqual(p.col1, self.p1['col1']) self.assertEqual(p.col2, self.p1['col2']) self.assertEqual(p.test_column1, None) self.assertEqual(p.va_id, first_va_id + 2)