def setUp(self): super(TestGetAPI, self).setUp() self.p1_history, self.p2_history, self.p3_history = [], [], [] self.t1 = datetime.utcfromtimestamp(10) p1 = UserTable(**self.p1) p3 = UserTable(**self.p3) with mock.patch('versionalchemy.models.datetime') as p: p.now.return_value = self.t1 self.session.add_all([p1, p3]) self.session.flush() self.p1_history.append(self._history(p1, self.t1, 0)) self.p3_history.append(self._history(p3, self.t1, 0)) self.t2 = datetime.utcfromtimestamp(20) p1.col1 = 'change1' p2 = UserTable(**self.p2) with mock.patch('versionalchemy.models.datetime') as p: p.now.return_value = self.t2 self.session.add_all([p1, p2]) self.session.flush() self.p1_history.append(self._history(p1, self.t2, 1)) self.p2_history.append(self._history(p2, self.t2, 0)) self.t3 = datetime.utcfromtimestamp(30) p1.col3 = False p1.col1 = 'change2' with mock.patch('versionalchemy.models.datetime') as p: p.now.return_value = self.t3 self.session.add(p1) self.session.flush() self.p1_history.append(self._history(p1, self.t3, 2)) self.t4 = datetime.utcfromtimestamp(40) p1.col2 = 15 p2.col2 = 12 with mock.patch('versionalchemy.models.datetime') as p: p.now.return_value = self.t4 self.session.add_all([p1, p2]) self.session.flush() self.p1_history.append(self._history(p1, self.t4, 3)) self.p2_history.append(self._history(p2, self.t4, 1))
def setUp(self): super(TestDeleteAPI, self).setUp() p1 = UserTable(**self.p1) p3 = UserTable(**self.p3) self.session.add_all([p1, p3]) self.session.flush() p1.col1 = 'change1' p2 = UserTable(**self.p2) self.session.add_all([p1, p2]) self.session.flush() p1.col3 = False p1.col1 = 'change2' self.session.add(p1) self.session.flush() p1.col2 = 15 p2.col2 = 12 self.session.add_all([p1, p2]) self.session.flush()
def test_multiple_product_updates(self): """ Update a product multiple times and ensure each one gets correctly versioned. """ p = UserTable(**self.p1) self._add_and_test_version(p, 0) p.col1 = 'new' p.col2 = -1 self._add_and_test_version(p, 1) p.col1 = 'third change' p.col2 = 139 p.col3 = False self._add_and_test_version(p, 2) self._verify_row( dict(self.p1, **{ 'col1': 'third change', 'col2': 139, 'col3': False, }), 1) self._verify_archive(self.p1, 0) self._verify_archive(dict(self.p1, **{ 'col1': 'new', 'col2': -1, }), 1) self._verify_archive(dict( self.p1, **{ 'col1': 'third change', 'col2': 139, 'col3': False, }), 2, log_id=p.va_id)