def test_version_concurrent_edit(self): """Test that a `StaleDataError` is thrown when trying to update a waypoint with an old version number. """ waypoint1 = Waypoint( waypoint_type="summit", elevation=2203, locales=[WaypointLocale(lang="en", title="A", description="abc")] ) # add the initial waypoint self.session.add(waypoint1) self.session.flush() self.session.expunge(waypoint1) version1 = waypoint1.version self.assertIsNotNone(version1) # change the waypoint waypoint2 = self.session.query(Waypoint).get(waypoint1.document_id) waypoint2.elevation = 1234 self.session.merge(waypoint2) self.session.flush() version2 = waypoint2.version self.assertNotEqual(version1, version2) self.assertNotEqual(waypoint1.version, waypoint2.version) self.assertNotEqual(waypoint1.elevation, waypoint2.elevation) # then try to update the waypoint again with the old version waypoint1.elevation = 2345 self.assertRaises(StaleDataError, self.session.merge, waypoint1)
def test_version_concurrent_edit(self): """Test that a `StaleDataError` is thrown when trying to update a waypoint with an old version number. """ waypoint1 = Waypoint( waypoint_type='summit', elevation=2203, locales=[ WaypointLocale( lang='en', title='A', description='abc') ] ) # add the initial waypoint self.session.add(waypoint1) self.session.flush() self.session.expunge(waypoint1) version1 = waypoint1.version self.assertIsNotNone(version1) # change the waypoint waypoint2 = self.session.query(Waypoint).get(waypoint1.document_id) waypoint2.elevation = 1234 self.session.merge(waypoint2) self.session.flush() version2 = waypoint2.version self.assertNotEqual(version1, version2) self.assertNotEqual(waypoint1.version, waypoint2.version) self.assertNotEqual(waypoint1.elevation, waypoint2.elevation) # then try to update the waypoint again with the old version waypoint1.elevation = 2345 self.assertRaises(StaleDataError, self.session.merge, waypoint1)
def test_version_is_incremented(self): waypoint = Waypoint( waypoint_type="summit", elevation=2203, locales=[WaypointLocale(lang="en", title="A", description="abc")] ) self.session.add(waypoint) self.session.flush() version1 = waypoint.version self.assertIsNotNone(version1) # make a change to the waypoint and check that the version changes # once the waypoint is persisted waypoint.elevation = 1234 self.session.merge(waypoint) self.session.flush() version2 = waypoint.version self.assertNotEqual(version1, version2)
def test_version_is_incremented(self): waypoint = Waypoint( document_id=1, waypoint_type='summit', elevation=2203, locales=[ WaypointLocale( id=2, culture='en', title='A', description='abc') ] ) self.session.add(waypoint) self.session.flush() version1 = waypoint.version self.assertIsNotNone(version1) # make a change to the waypoint and check that the version changes # once the waypoint is persisted waypoint.elevation = 1234 self.session.merge(waypoint) self.session.flush() version2 = waypoint.version self.assertNotEqual(version1, version2)
def test_version_is_incremented(self): waypoint = Waypoint( waypoint_type='summit', elevation=2203, locales=[ WaypointLocale( lang='en', title='A', description='abc') ] ) self.session.add(waypoint) self.session.flush() version1 = waypoint.version self.assertIsNotNone(version1) # make a change to the waypoint and check that the version changes # once the waypoint is persisted waypoint.elevation = 1234 self.session.merge(waypoint) self.session.flush() version2 = waypoint.version self.assertNotEqual(version1, version2)